Re: Serielle Schnittstelle V24 Kategorie: Programmierung (von nitraM - 9.03.2010 13:23) | ||
Als Antwort auf Re: Serielle Schnittstelle V24 von Torsten - 8.03.2010 21:15 | ||
| ||
Hallo Torsten in dem Modul global speichert Rene alle Variablen, um darau zuzugreifen... Das ist nichts fertiges, sondertn selbst geschrieben... nitraM > Hallo Rene, > besten Dank zunächst! > > Weitere Frage: "global.watchdog1=1;" > Was ist das? Bekomme immer Fehlermeldung unknown identifier "global". > Kann kein Modul finden, das passt. > > Danke und mfG > Torsten > > ----------------------------------------------------------------------- > > > > > > Hallo Torsten, > > > > anbei mein funktionierendes Beispiel, vergleiche mit deinem und ändere entsprechend ab. > > Ich sende immer 10 stellige Datensätze vom PC zur Control, im nachfolgenden Emfangsthread > > werden diese dann aufbereitet, bzw. anderen Programmteilen zur Verfügung gestellt. > > > > > > im Main Thread so ähnlich > > > > hwcom.init();hwcom.setspeed(6); > > > > > > > > im Emfangsthread dann so: > > > > > > /****************************************************************************** > > Eingsdaten erfassung vom Server > > ******************************************************************************/ > > > > thread ein232 > > { > > > > // Varis definieren und setzen ------------------------------------------------- > > int Befehl; > > string s,b,l; > > > > Befehl=0; > > s=" ";b=" ";l=" "; > > > > > > > > loop > > { > > global.watchdog1=1;hwcom.flush(); > > > > s=" ";b=" ";l=" "; > > > > wait hwcom.rxd(); > > hwcom.receive(s,10,50); > > > > > > > > // nur gültige Datensätze in die Verarbeitung schicken +++++++++++++++++++++++++ > > // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > > > > b="AD" ; if strx.compsel(s,b,2,0) { // wenn am Anfang ein "AD" ist > > b="E" ; if strx.compsel(s,b,1,9) { // wenn an letzter Stelle ein "E" ist > > > > > > stports.togLED(5); // Anzeige RS232 Empfang an LED 5 ---------------- > > > > > > > > // Rolladen Befehle / Datensätze ----------------------------------------- > > b="200" ; if strx.compsel(s,b,3,2) { // Datensätze mit 200 ----------- > > strx.mid(s,l,5,4); // Befehlsnummer in String l > > global.BeRo=strx.getNum(l); // String l in Integer umwandeln > > continue;} > > > > > > // Für Control Keller ------------------------------------------------ > > b="22" ; if strx.compsel(s,b,2,2) { // Datensätze mit 22 ------------ > > global.BeCa=2;global.DaCa2=s ;continue;} > > > > > > // Für Control Heizung ------------------------------------------------ > > b="23" ; if strx.compsel(s,b,2,2) { // Datensätze mit 23 ------------ > > global.BeCa=1;global.DaCa=s ;continue;} > > > > > > // Für Control Haus --------------------------------------------------- > > b="24" ; if strx.compsel(s,b,2,2) { // Datensätze mit 24 ------------ > > global.BeAn=1;global.DaAn=s ;continue;} > > > > > > > > // Licht Befehle / Datensätze ----------------------------------------- > > b="250" ; if strx.compsel(s,b,3,2) { // Datensätze mit 250 ----------- > > strx.mid(s,l,5,4); // Befehlsnummer in String l > > global.BeLi=strx.getNum(l); // String l in Integer umwandeln > > continue;} > > > > > > // Funktions Befehle / Datensätze ------------------------------------- > > b="260" ; if strx.compsel(s,b,3,2) { // Datensätze mit 260 ----------- > > strx.mid(s,l,5,4); // Befehlsnummer in String l > > global.BeFu=strx.getNum(l); // String l in Integer umwandeln > > continue;} > > > > > > > > > > > > > > > > // System Befehle ----------------------------------------------------- > > b="9990001"; // Watchdog für RS 232 auf Controlseite > > if strx.compsel(s,b,7,2) {global.watchdog1=1;continue;} > > > > b="9990002"; // Watchdog für I²C Bus auf Controlseite > > if strx.compsel(s,b,7,2) {i2c.init();sleep 150;i2c.stop();continue;} > > > > > > b="9990003"; // Software Reset des Systems > > if strx.compsel(s,b,7,2) { > > quit -1;continue;} > > > > b="9990004"; // Hostmodus einleiten > > if strx.compsel(s,b,7,2) { > > quit 63;continue;} > > > > > > > > > > > > }} // Ende Abarbeitung gültiger Datensätze +++++++++++++++++++++++++++++++++++++ > > // +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > > > > > > > > // Anzeige ungültiger Datensätze > > // lcdext.clear();lcdext.print(""); > > // lcdext.line(2);lcdext.print(s); > > > > > > }} > > > > | ||
Antwort schreiben Antworten: |