mirror of https://github.com/arendst/Tasmota.git
Merge pull request #7663 from gemu2015/sml_update
Sml script dynamic baudrate and serial transmit support
This commit is contained in:
commit
3b5a73429b
|
@ -1714,6 +1714,30 @@ chknext:
|
|||
len=0;
|
||||
goto exit;
|
||||
}
|
||||
#endif
|
||||
#ifdef USE_SML_SCRIPT_CMD
|
||||
if (!strncmp(vname,"sml(",4)) {
|
||||
lp+=4;
|
||||
float fvar1;
|
||||
lp=GetNumericResult(lp,OPER_EQU,&fvar1,0);
|
||||
SCRIPT_SKIP_SPACES
|
||||
float fvar2;
|
||||
lp=GetNumericResult(lp,OPER_EQU,&fvar2,0);
|
||||
SCRIPT_SKIP_SPACES
|
||||
if (fvar2==0) {
|
||||
float fvar3;
|
||||
lp=GetNumericResult(lp,OPER_EQU,&fvar3,0);
|
||||
fvar=SML_SetBaud(fvar1,fvar3);
|
||||
} else {
|
||||
char str[SCRIPT_MAXSSIZE];
|
||||
lp=GetStringResult(lp,OPER_EQU,str,0);
|
||||
fvar=SML_Write(fvar1,str);
|
||||
}
|
||||
lp++;
|
||||
fvar=0;
|
||||
len=0;
|
||||
goto exit;
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
case 't':
|
||||
|
|
|
@ -2109,6 +2109,32 @@ init10:
|
|||
}
|
||||
|
||||
|
||||
#ifdef USE_SML_SCRIPT_CMD
|
||||
uint32_t SML_SetBaud(uint32_t meter, uint32_t br) {
|
||||
if (meter<1 || meter>meters_used) return 0;
|
||||
meter--;
|
||||
if (!meter_ss[meter]) return 0;
|
||||
if (meter_ss[meter]->begin(br)) {
|
||||
meter_ss[meter]->flush();
|
||||
}
|
||||
if (meter_ss[meter]->hardwareSerial()) {
|
||||
if (meter_desc_p[meter].type=='M') {
|
||||
Serial.begin(br, SERIAL_8E1);
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
uint32_t SML_Write(uint32_t meter,char *hstr) {
|
||||
if (meter<1 || meter>meters_used) return 0;
|
||||
meter--;
|
||||
if (!meter_ss[meter]) return 0;
|
||||
SML_Send_Seq(meter,hstr);
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
void SetDBGLed(uint8_t srcpin, uint8_t ledpin) {
|
||||
pinMode(ledpin, OUTPUT);
|
||||
if (digitalRead(srcpin)) {
|
||||
|
|
Loading…
Reference in New Issue