mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-26 20:26:32 +00:00
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;
|
len=0;
|
||||||
goto exit;
|
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
|
#endif
|
||||||
break;
|
break;
|
||||||
case 't':
|
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) {
|
void SetDBGLed(uint8_t srcpin, uint8_t ledpin) {
|
||||||
pinMode(ledpin, OUTPUT);
|
pinMode(ledpin, OUTPUT);
|
||||||
if (digitalRead(srcpin)) {
|
if (digitalRead(srcpin)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user