====== 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); }