Так и не найдя описания функции
pdataX++
Навтыкал "как понимаю"
int gr_v; //сеть напряжение
int gr_f; //сеть частота
int out_v; //выход напряжение
int out_f; //выход частота
int out_va; //мощность VA
int out_w; //мощность W
int load; //нагрузка
int bus_v; // xz
int bat_v; //батарея напряжение
int ch_i; //ток заряда
int cap; //емкость
int temp; //температура
int pv_i; //ток панели
int pv_v; //напряжение панели
int scc_v; //SCC напряжение
int dis_i; //ток разряда
void ICACHE_FLASH_ATTR
startfunc(){
// выполняется один раз при старте модуля.
}
void ICACHE_FLASH_ATTR
timerfunc(uint32_t timersrc) {
// выполнение кода каждую 1 секунду
if(timersrc%10==0){
// отравка QPIGS<crc><cr>
uint8_t send_buf[] = {0x51,0x50,0x49,0x47,0x53,0xB7,0xA9,0x0D};
uart0_tx_buffer(send_buf,8);
//
char *pdata0 = rxbufbr;
pdata0++;
char *pdata1 = NULL;
pdata1 = (char *)os_strstr(pdata0, " ");
if (pdata1 != NULL) { // нашло пробел.
char testdata[10];
memset(testdata,0,10);
uint8_t len=pdata1-pdata0;
if (len>9) len=9;
os_memcpy(&testdata, pdata0, len);
gr_v=chartoatoi(testdata); // ошибка компилятора , без опции UPS Monitor
valdes[0]=gr_v;
pdata1++;
pdata1++;
char *pdata2 = NULL;
pdata2 = (char *)os_strstr(pdata1, " ");
if (pdata1 != NULL) { // нашло пробел.
memset(testdata,0,10);
os_memcpy(&testdata, pdata1, pdata2-pdata1);
gr_f=chartoatoi(testdata);
pdata2++;
pdata2++;
char *pdata3 = NULL;
pdata3 = (char *)os_strstr(pdata2, " ");
if (pdata3 != NULL) { // нашло пробел.
memset(testdata,0,10);
os_memcpy(&testdata, pdata2, pdata3-pdata2);
out_v=chartoatoi(testdata);
pdata3++;
pdata3++;
char *pdata4 = NULL;
pdata4 = (char *)os_strstr(pdata3, " ");
if (pdata4 != NULL) { // нашло пробел.
memset(testdata,0,10);
os_memcpy(&testdata, pdata3, pdata4-pdata3);
out_f=chartoatoi(testdata);
pdata4++;
pdata4++;
char *pdata5 = NULL;
pdata5 = (char *)os_strstr(pdata4, " ");
if (pdata5 != NULL) { // нашло пробел.
memset(testdata,0,10);
os_memcpy(&testdata, pdata4, pdata5-pdata4);
out_va=chartoatoi(testdata);
pdata5++;
pdata5++;
char *pdata6 = NULL;
pdata6 = (char *)os_strstr(pdata5, " ");
if (pdata5 != NULL) { // нашло пробел.
memset(testdata,0,10);
os_memcpy(&testdata, pdata5, pdata6-pdata5);
out_w=chartoatoi(testdata);
}
}
}
}
}
}
}
}
void webfunc(char *pbuf) {
os_sprintf(HTTPBUFF, rxbufbr); // вывод данных на главной модуля
os_sprintf(HTTPBUFF, "<br> Сеть напр. %s",strtofl(gr_v));
os_sprintf(HTTPBUFF, "<br> Сеть частота %s",strtofl(gr_f));
os_sprintf(HTTPBUFF, "<br> Выход напр. %s",strtofl(out_v));
os_sprintf(HTTPBUFF, "<br> Выход частота %s",strtofl(out_f));
os_sprintf(HTTPBUFF, "<br> Мощность VA %s",strtofl(out_va));
os_sprintf(HTTPBUFF, "<br> Мощность W %s",strtofl(out_w));
}
Сработало
На главной
(220.1 50.3 220.3 50.2 3000 2525 090 111 54.24 100 111 2222 8888
Сеть напр. 220.1
Сеть частота 50.3
Выход напр. 220.3
Выход частота 50.2
Мощность VA 3000.0
Мощность W 2525.0
Попробовал отправить на FlyHUB через valdes , пришло, надо будет только из int преобразовать в что-то удобоваримое (strtofl не сработал).
Кстати
strtofl тоже что-то не гуглится