Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Hostmodus einleiten Kategorie: Programmierung (von André H. - 28.08.2011 17:54)
Als Antwort auf Hostmodus einleiten von ChristianS - 24.08.2011 22:02
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, C-Control II Station, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.1
Hallo Christian,

> Wenn ich nun Daten via CC2-Tool übertrage, dann stürzt das Tool zu 70% ab ...

Welches Tool?
Das CC2Net.de-DL-Tool oder den Original-Lader von Conrad?
Ich denke Du meinst ersteres.

> ... und bleibt im
> Modus "Prüfe C-Control II" hängen. Nur ein manuelles Einleiten des Host-Modus an der Station
> funktioniert dann. Manchmal bekommt man durch einen Neustart des Tools und der Option
> "Host-Mode-Geschw. Korrektur" die Station wieder in den Betriebsmodus und man kann die
> Ã?bertragung erneut einleiten.

An dieser Position darf das Tool nicht stehenbleiben.
Wenn keine Antwort erfolgt, muÃ? die Meldung "C-Control II antwortet nicht..." erfolgen.
Es gibt nur wenige Gründe, warum es nicht zu einem Time-Out kommt:

- Dein Programm wurde nicht beendet, sondern sendet kontinuierlich Daten, da es sich
  in einem über RS232 erreichbaren Menü befindet. Die Host-LED leuchtet hier nicht.
  Wenn Du keine Host-LED hast, bitte nachrüsten. (Low-Current-LED + Vorwiderstand
  zwischen +5V und Host-Pin oder normale LED mit Transistor (siehe IDE-Hilfe zu OSOPT V3.0))
  Mehr dazu unten bei den Erläuterungen zu Deinem Thread.

- Du nutzt die lizensierte Version des CC2Net.de-DL-Tools, ohne vorher das Setup
  der Shareware ausgeführt zu haben. Es fehlen dann Steuerelemte oder haben eine
  zu alte Version. In diesem Fall bitte das Setup ausführen und anschlieÃ?end die
  Lizensierte Version wieder drüberkopieren. (Verzeichis vor dem Setup sichern.)

Wenn Du das ausschlieÃ?en kannst:
Welches Betriebssystem benutzt Du? Win7, Vista, WinXP, Win2k, Win98(SE), Win95 :-)
Vom Bild her würde ich auf Vista oder Win7 schätzen. 32 oder 64Bit?
Benutzt Du eine echte RS232 oder einen USB-Adapter?
Bei letzterem ggf. einen anderen Adapter testen.

Wenn das alles nichts hilft, kann ich mit Dir zusammen per Teamviewer draufschauen, um
das Problem zu analysieren.


>
> thread ComCom// Thread vom main-thread aus starten
> {
>   run 50;
>   loop
>   {
>  
>    wait hwcom.rxd();
>    data=hwcom.get();
>    if data==254
>      {
>       wait hwcom.rxd();
>       if hwcom.get()==254 quit 1;// Hostmode einleiten
>      }
>       if (data > 47) and (data < 58) //Gültigkeitsbereich Taste 0...9
>        {
>         if data == 48 {Init();}                           //48=0
>         ....
>         if data == 57 {mycalendar.Com();}                 //57=9
>        }
>       if (data==81) or (data==113)
>        hwcom.print("Ende...");
>       if data==13
>        com.Menue();
>       // ...
>    hwcom.flush();
>   }
> }


Eine Priorität von 50 ist i.d.R. für COM-Threads unnötig.
Du nutzt keinerlei Time-Outs. Mir springt if data==13 com.Menue(); ins Auge.
Wenn sich die Regelung in Deinem COM-Menü befindet, kann der Hostmode nicht eingeleitet werden.
Nutze zum Empfang von Daten vorzugsweise die Receive-Funktion.
Springe aus Menüs nach einer definierten Zeit ohne Aktivität in die Hauptschleife zurück.
�brigens kannst Du Deine Vergleiche übersichtlicher gestalten, wenn Du auf bestimmte
Tasten reagieren willst:
     if (data >= '0') and (data <= '9') //Gültigkeitsbereich Taste 0...9
oder
       if data == '0' Init();
So muÃ?t Du nicht erst vom ASCII-Code umdenken.

MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten:

Re: Hostmodus einleiten (von ChristianS - 29.08.2011 14:05)
    Re: Hostmodus einleiten (von André H. - 31.08.2011 7:54)