Re: Modemspezialist gesucht klappt noch nicht Kategorie: Sonstige Hardware (von Manfred - 9.05.2006 9:30) | ||
Als Antwort auf Re: Modemspezialist gesucht klappt noch nicht von Martin - 6.05.2006 12:48 | ||
| ||
Hallo Martin! Wie es aussieht wird der Connect-String noch immer nicht erkannt. Ich sehe da 2 Lösungsansätze: 1. Du versuchst es mit meiner Routine, die ist etwas robuster weil das Connect an irgendeiner Stelle stehen kann: function waitconnect() returns byte {byte data[25];string searchfor; wait hwcom.rxd(); hwcom.receive(data,25,1200); searchfor="CONNECT"; if strx.InStr(0,data,searchfor,25,7)!=-1 {hwcom.flush(); return 255;} else {hwcom.flush(); return 0;} } 2. Du Schreibst die Conect-Meldung des Modems aufs Display - ich habe die Meldungen in den Code eingebaut. Eventuell musst du die Syntax etwas korrigieren (z.B ";"), und ich hoffe das "Connect nicht erkannt" ist an der richtigen Stelle (bei if waitconnect {...} else {hier!}) - ich habe hier kein CC2 IDE zum prüfen. Falls es zu schnell geht ein paar sleeps einbauen. Zeile 1 ist der Status des CC2 Zeile 2 ist der Status des Modems Zeile 3 ist die Connect-Meldung des Modems Zeile 4 ist die Connect-Meldung, die sich der CC2 erwartet Bei Unterschieden in den ersten 9 Zeichen ist es klar, das nichts erkannt wird. Leider verhalten sich die Modems recht unterschiedlich in dieser Hinsicht, eine manuelle Anpassung ist da manchmal notwendig. function waitconnect()returns byte//Wartet auf die "CONNECT"-Meldung vom Modem {string s; s=13+10+"CONNECT"; wait hwcom.rxd(); hwcom.receive(in,30,1000); hwcom.flush(); rblcd.delline(4); rblcd.delline(4); rblcd.line(3);rblcd.print(in); rblcd.line(4);rblcd.print(s); return strx.InStr(0,in,s,str.length(in),9)>=0;// } thread onlineCounter {byte Second; Second=system.second(); wait Second != system.second(); online=online+1; } //------------------------------------------------------------------------------ thread main {byte second, len; rblcd.line(1);rblcd.print("INIT Senden "); rblcd.init(); modem.init(5,255,255);//Modem initialisieren 7 =38400 5= 9600 rblcd.line(2);rblcd.print("INIT OK "); for len=0 ... 3 { counter[len]=0; } in=""; loop {rblcd.line(1);rblcd.print("auf Ring Warten "); wait hwcom.rxd(); rblcd.line(2);rblcd.zahl2(system.second());//Test 3 len=hwcom.receive(in,30,1000); k2="RING"; if strx.InStr(0,in,k2,len,4)!=-1 //Modem abheben lassen bei "RING"-Meldung { k2="ATA"+13+10; hwcom.send(k2,str.length(k2)); rblcd.line(2);rblcd.print("Ring erkannt "); rblcd.line(1);rblcd.print("auf Connect warten "); if waitconnect() // Auf "CONNECT"-Meldung warten { rblcd.line(1);rblcd.print("Connect erkannt "); online =0; run onlineCounter; menu(); loop { if second!=system.second() {second=system.second();printtime();printOnline();} if hwcom.rxd() {byte get; get=hwcom.get(); if get=='1' subPorts(); if get=='2' subCounter(); if get=='3' subGetAD(); if get=='4' subGetFRQ(); if get=='T' or get=='t' setTimeDate(); if get=='E' or get=='e' { if subEnd() { modem.commandmode(); modem.hangup(); reset onlineCounter; break; } } menu(); } } } //connect else { rblcd.line(1);rblcd.print("Connect nicht erkannt "); sleep 5000; } } //ring } //loop } //thread viel Glück! Manfred | ||
Antwort schreiben Antworten: Re: Modemspezialist gesucht klappt noch nicht (von martin - 10.05.2006 20:16) Re: Modemspezialist gesucht klappt noch nicht (von Manfred - 15.05.2006 10:05) Re: Modemspezialist (von Martin - 16.05.2006 12:24) |