Merge pull request #9874 from gemu2015/sml_update

sml add optional 2 modbus stop bits
This commit is contained in:
Theo Arends 2020-11-15 16:22:23 +01:00 committed by GitHub
commit d5de857a3c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

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