mirror of https://github.com/arendst/Tasmota.git
sml fix obis dump mode
This commit is contained in:
parent
e90f67bbbb
commit
62cda21cec
|
@ -847,13 +847,15 @@ uint8_t Serial_peek() {
|
||||||
return meter_ss[num-1]->peek();
|
return meter_ss[num-1]->peek();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint8_t sml_logindex;
|
||||||
|
|
||||||
void Dump2log(void) {
|
void Dump2log(void) {
|
||||||
|
|
||||||
int16_t index=0,hcnt=0;
|
int16_t index=0,hcnt=0;
|
||||||
uint32_t d_lastms;
|
uint32_t d_lastms;
|
||||||
uint8_t dchars[16];
|
uint8_t dchars[16];
|
||||||
|
|
||||||
if (!SML_SAVAILABLE) return;
|
//if (!SML_SAVAILABLE) return;
|
||||||
|
|
||||||
if (dump2log&8) {
|
if (dump2log&8) {
|
||||||
// combo mode
|
// combo mode
|
||||||
|
@ -898,7 +900,25 @@ uint8_t dchars[16];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
//while (SML_SAVAILABLE) {
|
if (meter_desc_p[(dump2log&7)-1].type=='o') {
|
||||||
|
// obis
|
||||||
|
while (SML_SAVAILABLE) {
|
||||||
|
char c=SML_SREAD&0x7f;
|
||||||
|
if (c=='\n' || c=='\r') {
|
||||||
|
log_data[sml_logindex]=0;
|
||||||
|
AddLog(LOG_LEVEL_INFO);
|
||||||
|
sml_logindex=2;
|
||||||
|
log_data[0]=':';
|
||||||
|
log_data[1]=' ';
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
log_data[sml_logindex]=c;
|
||||||
|
if (sml_logindex<sizeof(log_data)-2) {
|
||||||
|
sml_logindex++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//while (SML_SAVAILABLE) {
|
||||||
index=0;
|
index=0;
|
||||||
log_data[index]=':';
|
log_data[index]=':';
|
||||||
index++;
|
index++;
|
||||||
|
@ -907,45 +927,36 @@ uint8_t dchars[16];
|
||||||
d_lastms=millis();
|
d_lastms=millis();
|
||||||
while ((millis()-d_lastms)<40) {
|
while ((millis()-d_lastms)<40) {
|
||||||
if (SML_SAVAILABLE) {
|
if (SML_SAVAILABLE) {
|
||||||
if (meter_desc_p[(dump2log&7)-1].type=='o') {
|
unsigned char c;
|
||||||
// obis
|
if (meter_desc_p[(dump2log&7)-1].type=='e') {
|
||||||
char c=SML_SREAD&0x7f;
|
// ebus
|
||||||
if (c=='\n' || c=='\r') break;
|
c=SML_SREAD;
|
||||||
log_data[index]=c;
|
sprintf(&log_data[index],"%02x ",c);
|
||||||
index++;
|
index+=3;
|
||||||
|
if (c==EBUS_SYNC) break;
|
||||||
} else {
|
} else {
|
||||||
unsigned char c;
|
// sml
|
||||||
if (meter_desc_p[(dump2log&7)-1].type=='e') {
|
if (sml_start==0x77) {
|
||||||
// ebus
|
sml_start=0;
|
||||||
c=SML_SREAD;
|
|
||||||
sprintf(&log_data[index],"%02x ",c);
|
|
||||||
index+=3;
|
|
||||||
if (c==EBUS_SYNC) break;
|
|
||||||
} else {
|
} else {
|
||||||
// sml
|
c=SML_SPEAK;
|
||||||
if (sml_start==0x77) {
|
if (c==0x77) {
|
||||||
sml_start=0;
|
sml_start=c;
|
||||||
} else {
|
break;
|
||||||
c=SML_SPEAK;
|
|
||||||
if (c==0x77) {
|
|
||||||
sml_start=c;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
c=SML_SREAD;
|
|
||||||
sprintf(&log_data[index],"%02x ",c);
|
|
||||||
index+=3;
|
|
||||||
}
|
}
|
||||||
|
c=SML_SREAD;
|
||||||
|
sprintf(&log_data[index],"%02x ",c);
|
||||||
|
index+=3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (index>0) {
|
if (index>2) {
|
||||||
log_data[index]=0;
|
log_data[index]=0;
|
||||||
AddLog(LOG_LEVEL_INFO);
|
AddLog(LOG_LEVEL_INFO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// skip sml entries
|
// skip sml entries
|
||||||
|
@ -1750,6 +1761,7 @@ void SML_Show(boolean json) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
#ifdef USE_DOMOTICZ
|
#ifdef USE_DOMOTICZ
|
||||||
if (json && !tele_period) {
|
if (json && !tele_period) {
|
||||||
char str[16];
|
char str[16];
|
||||||
|
@ -1761,6 +1773,7 @@ void SML_Show(boolean json) {
|
||||||
DomoticzSensor(DZ_CURRENT, str); // Current
|
DomoticzSensor(DZ_CURRENT, str); // Current
|
||||||
}
|
}
|
||||||
#endif // USE_DOMOTICZ
|
#endif // USE_DOMOTICZ
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
struct SML_COUNTER {
|
struct SML_COUNTER {
|
||||||
|
|
Loading…
Reference in New Issue