Oldalforrás megtekintése Korábbi változatok Hivatkozások Exportálás PDF-be Share on ... Google+ Twitter LinkedIn Facebook Pinterest Telegram Text Com A Text Com a Hayes modemparancsok mintájára egy szöveges kommunikációnyelv, ahol a parancsok és a válaszok is kódolt szöveges formában kerülnek átvitelre. Ez az egész egyenlőre csak egy kísérlet, amit alap-automizálási megoldásokhoz próbálok összerakni. Alapformátuma: {művelet}:{egység}:{mód}:{állapot} Példák: CMD:SW01:AUT (AUT/MAN/LOC/ERR) // Az első relékimenet automatikába kapcsolása QUE:SW01 // az első relékimenet állapotának a lekérdezése QUE:? // az elérhető egységek lekérdezése STA:SW01:AUT:ON (AUT/MAN/LOC/ERR) (ON/OFF/NN) // az első relékimenet állapotának a jelentése: auto/on {művelet} NOP: helykitöltés CMD: parancs QUE: lekérdezés STA: állapot #define _NOP 0 #define _CMD 1 #define _QUE 2 #define _STA 3 {egység} QUE:? // az elérhető egységek lekérdezése Erre a válasz valami ilyesmi: STA:SW01:RELAY12V:DIGI_AUT:Relé kimenet szelep 1 STA:SW01:RELAY12V:DIGI_AUT:Relé kimenet szelep 1 STA:ME01:DSTEMP:A1_OUT:Folyadékhőmérséklet °C STA:ME02:DSTEMP:A1_OUT:Levegő hőmérséklet °C STA:ME03:APRES:A1_OUT:Levegő nyomása mbar {mód} NNN: helykitöltés AUT: automatikus mód MAN: (távoli) manuális mód LOC: helyi (manuális) mód ERR: módhiba #define _NNN 10 #define _AUT 11 #define _MAN 12 #define _LOC 13 #define _ERR 19 {állapot} NN: helykitöltés ON: be OF: ki SB: standby ER: állapothiba #define _NN 20 #define _ON 21 #define _OF 22 #define _SB 23 #define _ER 29 #define _NOP 0 #define _CMD 1 #define _QUE 2 #define _STA 3 #define _NNN 10 #define _AUT 11 #define _MAN 12 #define _LOC 13 #define _ERR 19 #define _NN 20 #define _ON 21 #define _OF 22 #define _SB 23 #define _ER 29 String readit = "CMD:SW01:AUT"; String it, it2; int income, unit, mod, posStart, posEnd; void setup() { Serial.begin(9600); // put your setup code here, to run once: } void loop() { // read and ident command posStart = 0; posEnd = readit.indexOf(":"); it = readit.substring(posStart, posEnd); readit = readit.substring(posEnd+1); if (it = "CMD") { // command mod = _CMD; } else if (it = "QUE") { // question mod = _QUE; } else if (it = "STA") { // status mod = _STA; } else { mod = _NOP; // problem } // read and ident unit posStart = 0; posEnd = readit.indexOf(":"); it2 = readit.substring(posStart, posEnd); // read and ident MODE if (it = "CMD") { // command mod = _CMD; } else if (it = "QUE") { // question mod = _QUE; } else if (it = "STA") { // status mod = _STA; } else { mod = _NOP; // problem } Serial.print("it: "); Serial.println(readit); delay(2000); }