mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-23 18:56:38 +00:00
Merge pull request #9874 from gemu2015/sml_update
sml add optional 2 modbus stop bits
This commit is contained in:
commit
d5de857a3c
@ -86,6 +86,7 @@ struct METER_DESC {
|
|||||||
char *txmem;
|
char *txmem;
|
||||||
uint8_t index;
|
uint8_t index;
|
||||||
uint8_t max_index;
|
uint8_t max_index;
|
||||||
|
uint8_t sopt;
|
||||||
};
|
};
|
||||||
|
|
||||||
// this descriptor method is no longer supported
|
// this descriptor method is no longer supported
|
||||||
@ -2012,7 +2013,14 @@ dddef_exit:
|
|||||||
if (*lp!=',') goto next_line;
|
if (*lp!=',') goto next_line;
|
||||||
lp++;
|
lp++;
|
||||||
script_meter_desc[index].type=*lp;
|
script_meter_desc[index].type=*lp;
|
||||||
lp+=2;
|
lp++;
|
||||||
|
if (*lp!=',') {
|
||||||
|
script_meter_desc[index].sopt=*lp&7;
|
||||||
|
lp++;
|
||||||
|
} else {
|
||||||
|
script_meter_desc[index].sopt=0;
|
||||||
|
}
|
||||||
|
lp++;
|
||||||
script_meter_desc[index].flag=strtol(lp,&lp,10);
|
script_meter_desc[index].flag=strtol(lp,&lp,10);
|
||||||
if (*lp!=',') goto next_line;
|
if (*lp!=',') goto next_line;
|
||||||
lp++;
|
lp++;
|
||||||
@ -2180,20 +2188,24 @@ init10:
|
|||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ESP32
|
SerialConfig smode = SERIAL_8N1;
|
||||||
if (meter_desc_p[meters].type=='M') {
|
if (meter_desc_p[meters].sopt == 2) {
|
||||||
meter_ss[meters]->begin(meter_desc_p[meters].params, SERIAL_8E1,meter_desc_p[meters].srcpin,meter_desc_p[meters].trxpin);
|
smode = SERIAL_8N2;
|
||||||
} else {
|
|
||||||
meter_ss[meters]->begin(meter_desc_p[meters].params,SERIAL_8N1,meter_desc_p[meters].srcpin,meter_desc_p[meters].trxpin);
|
|
||||||
}
|
}
|
||||||
|
if (meter_desc_p[meters].type=='M') {
|
||||||
|
smode = SERIAL_8E1;
|
||||||
|
if (meter_desc_p[meters].sopt == 2) {
|
||||||
|
smode = SERIAL_8E2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#ifdef ESP32
|
||||||
|
meter_ss[meters]->begin(meter_desc_p[meters].params, smode, meter_desc_p[meters].srcpin, meter_desc_p[meters].trxpin);
|
||||||
#else
|
#else
|
||||||
if (meter_ss[meters]->begin(meter_desc_p[meters].params)) {
|
if (meter_ss[meters]->begin(meter_desc_p[meters].params)) {
|
||||||
meter_ss[meters]->flush();
|
meter_ss[meters]->flush();
|
||||||
}
|
}
|
||||||
if (meter_ss[meters]->hardwareSerial()) {
|
if (meter_ss[meters]->hardwareSerial()) {
|
||||||
if (meter_desc_p[meters].type=='M') {
|
Serial.begin(meter_desc_p[meters].params, smode);
|
||||||
Serial.begin(meter_desc_p[meters].params, SERIAL_8E1);
|
|
||||||
}
|
|
||||||
ClaimSerial();
|
ClaimSerial();
|
||||||
//Serial.setRxBufferSize(512);
|
//Serial.setRxBufferSize(512);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user