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 | ||
| ||
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) |