You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
352 lines
13 KiB
352 lines
13 KiB
|
|
void parsmsg()
|
|
{
|
|
//int tkom1=0;//температура
|
|
//int hkom1=0;//влажность
|
|
//int batkom1=0;
|
|
//String timekom1;//время прихода данных комната1
|
|
|
|
//int tkom2=0;
|
|
//int hkom2=0;
|
|
//int batkom2=0;
|
|
//String timekom2;
|
|
|
|
//int tkor=0;
|
|
//int hkor=0;
|
|
//int batkor=0;
|
|
//String timekor;
|
|
|
|
//int tbal=0;
|
|
//int hbal=0;
|
|
//int batbal=0;
|
|
//String timebal;
|
|
|
|
//String timebal;
|
|
//t1+138c347v524h5 балкон
|
|
//t2+243c401v528h моя комната
|
|
// t3+230c357v469h зал
|
|
// t5+230c357v469h коридор
|
|
//9d+088h866s00v улица восток
|
|
//timeul1
|
|
//tul1
|
|
//hul1
|
|
//osv1
|
|
//char msg[16];принятое сообщение
|
|
int tdat;//температура
|
|
int hdat;//влажность
|
|
int vdat;//напряж батареи датчика
|
|
int zndat;
|
|
int osv;
|
|
char token9[] = "9d";//улица
|
|
char token11[] = "t1";//датчики
|
|
char token12[] = "t2";//датчики
|
|
char token13[] = "t3";//датчики
|
|
char token14[] = "t4";//датчики
|
|
char token15[] = "t5";//датчики
|
|
|
|
int n=0;
|
|
int p=0;
|
|
boolean chet=0;
|
|
char c ;
|
|
|
|
//***************************
|
|
for (int j=0 ; j<15 ;j++)
|
|
{ c=msg[j];//принятая с премника перемнная
|
|
|
|
|
|
if (p==9)
|
|
{ if (c==token9[1]){p=99;}//данные с ул датчика восток
|
|
else{
|
|
p=0;}
|
|
}
|
|
if (p==101)//cравнение второго символа на соответствие t 1
|
|
{ if (c==token11[1]){p=111;}
|
|
|
|
}
|
|
if (p==101)//cравнение второго символа на соответствие t 2
|
|
{ if (c==token12[1]){p=112;}
|
|
|
|
}
|
|
if (p==101)//cравнение второго символа на соответствие t 3
|
|
{ if (c==token13[1]){p=113;}
|
|
|
|
}
|
|
if (p==101)//cравнение второго символа на соответствие t 4
|
|
{ if (c==token14[1]){p=114;}
|
|
|
|
}
|
|
if (p==101)//cравнение второго символа на соответствие t 5
|
|
{ if (c==token15[1]){p=115;}
|
|
else{
|
|
p=0;}
|
|
}
|
|
//*************************************************
|
|
if (p==99)
|
|
{// myFile.print(c);//d+237h895s05v
|
|
nt=2;
|
|
timeul1=timeserv;//время получения данных
|
|
n++;
|
|
if (n==2){
|
|
if (c==45){zndat=1;//-
|
|
}//znak
|
|
else
|
|
{zndat=2;//+
|
|
}
|
|
}
|
|
if (n==3) {tdat=(c-48)*100;} //температура
|
|
if (n==4){tdat=(c-48)*10+tdat;}
|
|
if (n==5){
|
|
tdat=(c-48)+tdat;
|
|
|
|
if(zndat==1){tul1="-"+String (tdat/10)+"."+String (tdat%10); //температура знак -230 -23.0
|
|
}
|
|
else
|
|
{tul1=String (tdat/10)+"."+String (tdat%10); //температура без знака +230 +23.0
|
|
}
|
|
}
|
|
if (n==7){hdat=(c-48)*100;}//влажность
|
|
if (n==8){hdat=(c-48)*10+hdat;}
|
|
if (n==9){
|
|
hdat=(c-48)+hdat;
|
|
hul1=String (hdat/10)+"."+String (hdat%10); //влажность 866 86.6%
|
|
}
|
|
if (n==11){osv=10*(c-48);}//освещенность
|
|
if (n==12)
|
|
{osv=osv+(c-48);
|
|
if(osv>99){osv=99;}
|
|
osv1=String (osv)+"%";
|
|
}//sun
|
|
// hourdu=t.hour;//время прихода данных час
|
|
// mindu=t.min;//мин
|
|
|
|
}
|
|
//*****************************************
|
|
|
|
//*****************датчики температуры переносные***********************
|
|
//************************T1****************************************************
|
|
if (p==111) //выделение данных из принятой строки
|
|
{ timebal=timeserv;//время получения данных
|
|
nt=3;
|
|
//byte ntdat;номер датчика
|
|
//byte zndat;знак температуры 0+
|
|
//int tdat;температура
|
|
//int hdat;влажность
|
|
//int vdat;напряж батареи датчика
|
|
n++;
|
|
if (n==2){
|
|
if (c==45){zndat=1;//-
|
|
}//znak
|
|
else
|
|
{zndat=0;//+
|
|
}
|
|
}
|
|
if (n==3) {tdat=(c-48)*100;} //температура
|
|
if (n==4){tdat=(c-48)*10+tdat;}
|
|
if (n==5)
|
|
{tdat=(c-48)+tdat;
|
|
tbal=String (tdat/10)+"."+String (tdat%10); //температура без знака +230 +23.0
|
|
}
|
|
|
|
if (n==7){vdat=(c-48)*100;}//напряж батареи датчика
|
|
if (n==8){vdat=(c-48)*10+vdat;}
|
|
if (n==9)
|
|
{vdat=(c-48)+vdat;
|
|
batbal=String (vdat/100)+"."+String (vdat%100);//батарея 357v 3.75в
|
|
}
|
|
if (n==11){hdat=(c-48)*100;}//влажность
|
|
if (n==12)
|
|
{hdat=(c-48)*10+hdat;
|
|
}
|
|
if (n==13)
|
|
{hdat=(c-48)+hdat;
|
|
hbal=String (hdat/10)+"."+String (hdat%10); //влажность 866 86.6%
|
|
}
|
|
|
|
}
|
|
//**************************************** T2
|
|
if (p==112) //выделение данных из принятой строки
|
|
{timekom2=timeserv;//время получения данных
|
|
nt=4;
|
|
n++;
|
|
if (n==2){
|
|
if (c==45){zndat=1;//-
|
|
}//znak
|
|
else
|
|
{zndat=0;//+
|
|
}
|
|
}
|
|
if (n==3) {tdat=(c-48)*100;} //температура
|
|
if (n==4){tdat=(c-48)*10+tdat;}
|
|
if (n==5)
|
|
{tdat=(c-48)+tdat;
|
|
tkom2=String (tdat/10)+"."+String (tdat%10); //температура без знака +230 +23.0
|
|
}
|
|
|
|
if (n==7){vdat=(c-48)*100;}//напряж батареи датчика
|
|
if (n==8){vdat=(c-48)*10+vdat;}
|
|
if (n==9)
|
|
{vdat=(c-48)+vdat;
|
|
batkom2=String (vdat/100)+"."+String (vdat%100);//батарея 357v 3.75в
|
|
}
|
|
if (n==11){hdat=(c-48)*100;}//влажность
|
|
if (n==12)
|
|
{hdat=(c-48)*10+hdat;
|
|
}
|
|
if (n==13)
|
|
{hdat=(c-48)+hdat;
|
|
hkom2=String (hdat/10)+"."+String (hdat%10); //влажность 866 86.6%
|
|
}
|
|
|
|
}
|
|
//****************************************
|
|
//**************************************** T3
|
|
if (p==113) //выделение данных из принятой строки
|
|
{// myFile.print(c);//t2+103c375v299h9
|
|
nt=5;
|
|
timekom1=timeserv;//время получения данных
|
|
n++;
|
|
if (n==2){
|
|
if (c==45){zndat=1;//-
|
|
}//znak
|
|
else
|
|
{zndat=0;//+
|
|
}
|
|
}
|
|
if (n==3) {tdat=(c-48)*100;} //температура
|
|
if (n==4){tdat=(c-48)*10+tdat;}
|
|
if (n==5)
|
|
{tdat=(c-48)+tdat;
|
|
tkom1=String (tdat/10)+"."+String (tdat%10); //температура без знака +230 +23.0
|
|
}
|
|
|
|
|
|
|
|
if (n==7){vdat=(c-48)*100;}//напряж батареи датчика
|
|
if (n==8){vdat=(c-48)*10+vdat;}
|
|
if (n==9)
|
|
{vdat=(c-48)+vdat;
|
|
batkom1=String (vdat/100)+"."+String (vdat%100);//батарея 357v 3.75в
|
|
}
|
|
if (n==11){hdat=(c-48)*100;}//влажность
|
|
if (n==12)
|
|
{hdat=(c-48)*10+hdat;
|
|
}
|
|
if (n==13)
|
|
{hdat=(c-48)+hdat;
|
|
hkom1=String (hdat/10)+"."+String (hdat%10); //влажность 866 86.6%
|
|
}
|
|
|
|
}
|
|
//**************************************** T4 ****************************
|
|
/* if (p==114) //выделение данных из принятой строки
|
|
{// myFile.print(c);//t1+103c375v299h9
|
|
ntdat=4;
|
|
if(chet==0)
|
|
{ if( hourd4==t.hour)
|
|
{fh=1;
|
|
}
|
|
else
|
|
{fh=0;
|
|
}
|
|
chet=1;
|
|
}
|
|
hourd4=t.hour;
|
|
mind4=t.min;
|
|
//byte ntdat;номер датчика
|
|
//byte zndat;знак температуры 0+
|
|
//int tdat;температура
|
|
//int hdat;влажность
|
|
//int vdat;напряж батареи датчика
|
|
n++;
|
|
if (n==2){
|
|
if (c==45){zndat=1;//-
|
|
}//znak
|
|
else
|
|
{zndat=0;//+
|
|
}
|
|
}
|
|
if (n==3) {tdat=(c-48)*100;} //температура
|
|
if (n==4){tdat=(c-48)*10+tdat;}
|
|
if (n==5)
|
|
{tdat=(c-48)+tdat;
|
|
for (int u =22 ; u >= 0; u = u--)
|
|
{
|
|
t4[u+1]=t4[u];
|
|
}
|
|
if(zndat==1)//-
|
|
{t14=tdat+1000;
|
|
t4[0]=t14;
|
|
}
|
|
else
|
|
{t14=tdat;
|
|
t4[0]=t14;
|
|
}
|
|
}
|
|
|
|
if (n==7){vdat=(c-48)*100;}//напряж батареи датчика
|
|
if (n==8){vdat=(c-48)*10+vdat;}
|
|
if (n==9)
|
|
{vdat=(c-48)+vdat;
|
|
bat[3]=vdat;
|
|
}
|
|
if (n==11){hdat=(c-48)*100;}//влажность
|
|
if (n==12)
|
|
{hdat=(c-48)*10+hdat;
|
|
for (int u =22 ; u >= 0; u = u--)
|
|
{
|
|
h4[u+1]=h4[u];
|
|
}
|
|
h4[0]=hdat;
|
|
|
|
}
|
|
if (n==13)
|
|
{hdat=(c-48)+hdat;
|
|
h14=hdat;
|
|
}
|
|
|
|
}*/
|
|
//**************************************** T5
|
|
if (p==115) //выделение данных из принятой строки
|
|
{// myFile.print(c);//t2+103c375v299h9
|
|
timekor=timeserv;//время получения данных
|
|
nt=7;
|
|
n++;
|
|
if (n==2){
|
|
if (c==45){zndat=1;//-
|
|
}//znak
|
|
else
|
|
{zndat=0;//+
|
|
}
|
|
}
|
|
if (n==3) {tdat=(c-48)*100;} //температура
|
|
if (n==4){tdat=(c-48)*10+tdat;}
|
|
if (n==5)
|
|
{tdat=(c-48)+tdat;
|
|
tkor=String (tdat/10)+"."+String (tdat%10); //температура без знака +230 +23.0
|
|
}
|
|
|
|
if (n==7){vdat=(c-48)*100;}//напряж батареи датчика
|
|
if (n==8){vdat=(c-48)*10+vdat;}
|
|
if (n==9)
|
|
{vdat=(c-48)+vdat;
|
|
batkor=String (vdat/100)+"."+String (vdat%100);//батарея 357v 3.75в
|
|
}
|
|
if (n==11){hdat=(c-48)*100;}//влажность
|
|
if (n==12)
|
|
{hdat=(c-48)*10+hdat;
|
|
}
|
|
if (n==13)
|
|
{hdat=(c-48)+hdat;
|
|
hkor=String (hdat/10)+"."+String (hdat%10); //влажность 866 86.6%
|
|
}
|
|
|
|
}
|
|
//*******************************************************************************
|
|
|
|
if ((c==token9[0])&&(p==0)){p=9;}
|
|
if ((c==token11[0])&&(p==0)){p=101;}//cравнение первого символа на соответствие t
|
|
}//for
|
|
//*************************************************
|
|
|
|
|
|
}//void pars
|
|
|