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