📄 protocol.c.bak
字号:
v_Set1302(szBuffer);
rtc_set_flag = FALSE;
//send reply
szreply[0] = 0x16;
szreply[1] = 0x00;
szreply[2] = 0x03;
szreply[3] = 0xA8;
szreply[4] = my_id_arr[0];
szreply[5] = my_id_arr[1];
szSum = 0x00;
for(nloop = 1; nloop < 6; nloop ++)
{
szSum += szreply[nloop];
}
szreply[6] = 0xFF - szSum;
SerialPortWrite(szreply, 7);
}
void ReadHistoryData()
{
unsigned char nyear, nmonth, nday;
unsigned int nOmbroDay = 0,
nOmbroCon = 0,
nOmbro10Max = 0,
nOmbro60Max = 0;
unsigned char n10Hour = 0,
n10Min = 0,
n60Hour = 0,
n60Min = 0;
char *pTemp;
char szsum;
unsigned int ntemp;
unsigned int nloop;
char szreply[40];
if(!validateID())
return;
nyear = PROTOCOL_TEMP[nSync + 6];
nmonth = PROTOCOL_TEMP[nSync + 7];
nday = PROTOCOL_TEMP[nSync + 8];
//#error "读历史数据"
szreply[0] = 0x16;
szreply[1] = 0x00;
szreply[2] = 0x12;
szreply[3] = 0xAA;
szreply[4] = my_id_arr[0];
szreply[5] = my_id_arr[1];
szreply[6] = nyear;
szreply[7] = nmonth;
szreply[8] = nday;
nOmbroDay *=2;
pTemp = (char*)&nOmbroDay;
szreply[9] = *(pTemp + 0);
szreply[10] = *(pTemp + 1);
nOmbroCon *=2;
pTemp = (char*)&nOmbroCon;
szreply[11] = *(pTemp + 0);
szreply[12] = *(pTemp + 1);
nOmbro10Max *=2;
pTemp = (char*)&nOmbro10Max;
szreply[13] = *(pTemp + 0);
szreply[14] = *(pTemp + 1);
szreply[15] = n10Hour;
szreply[16] = n10Min;
nOmbro60Max *=2;
pTemp = (char*)&nOmbro60Max;
szreply[17] = *(pTemp + 0);
szreply[18] = *(pTemp + 1);
szreply[19] = n60Hour;
szreply[20] = n60Min;
szsum = 0x00;
for (nloop = 1; nloop < 21; nloop ++)
{
szsum += szreply[nloop];
}
szreply[21] = 0xFF - szsum;
SerialPortWrite(szreply, 22);
}
void ConfirmMobilePhone()
{
char szreply[30];
if(!validateID())
return;
bMobilePhone = FALSE;
//#error " 清除手机设置上传标识"
}
void ConfirmAlarmValue()
{
if(!validateID())
return;
bAlarmValue = FALSE;
//#error "清除告警值上传标识"
}
void ConfirmAlarmData()
{
if(!validateID())
return;
bAlarmData = FALSE;
//#error "清除告警信息上传标识"
}
void uploadRealtimeData()
{
char szreply[30];
char szsum;
char nloop;
char *pTemp;
unsigned int nTemp;
unsigned int nmy_id;
char nyear = 0, nmonth = 0, nday = 0, nhour = 0, nmin = 0, nsec = 0;
nyear = CLK_YEAR;
nmonth = CLK_MONTH;
nday = CLK_DAY;
nhour = CLK_HOUR;
nmin = CLK_MIN;
nsec = CLK_SEC;
nmy_id = MY_ID;
pTemp = (char*)&nmy_id;
szreply[0] = 0x16;
szreply[1] = 0x00;
szreply[2] = 0x19;
szreply[3] = 0xC2;
szreply[4] = *(pTemp + 0);
szreply[5] = *(pTemp + 1);
szreply[6] = nyear;
szreply[7] = nmonth;
szreply[8] = nday;
szreply[9] = nhour;
szreply[10] = nmin;
szreply[11] = nsec;
nTemp = ombro_ten*2;
pTemp = (char*)&nTemp;
szreply[12] = *(pTemp + 0);
szreply[13] = *(pTemp + 1);
nTemp = ombro_hour*2;
pTemp = (char*)&nTemp;
szreply[14] = *(pTemp + 0);
szreply[15] = *(pTemp + 1);
nTemp = ombro_day*2;
pTemp = (char*)&nTemp;
szreply[16] = *(pTemp + 0);
szreply[17] = *(pTemp + 1);
nTemp = ombro_continue*2;
pTemp = (char*)&nTemp;
szreply[18] = *(pTemp + 0);
szreply[19] = *(pTemp + 1);
nTemp = ombro_ten_min_max*2;
pTemp = (char*)& nTemp;
szreply[20] = *(pTemp + 0);
szreply[21] = *(pTemp + 1);
nhour = ombro_ten_min_max_hr;
nmin = ombro_ten_min_max_min;
szreply[22] = nhour;
szreply[23] = nmin;
nTemp = ombro_hour_max*2;
pTemp = (char*)&nTemp;
szreply[24] = *(pTemp + 0);
szreply[25] = *(pTemp + 1);
nhour = ombro_hour_max_hr;
nmin = ombro_hour_max_min;
szreply[26] = nhour;
szreply[27] = nmin;
szsum = 0x00;
for (nloop = 1; nloop < 28; nloop ++)
{
szsum += szreply[nloop];
}
szreply[28] = 0xFF - szsum;
SerialPortWrite(szreply, 29);
}
void uploadAlarmData()
{
char szreply[35];
char szsum;
char nloop;
char *pTemp;
unsigned int nTemp;
unsigned int nmy_id;
char nyear = 0, nmonth = 0, nday = 0, nhour = 0, nmin = 0, nsec = 0;
//#error "生成告警类型 alarmtype "
nyear = CLK_YEAR;
nmonth = CLK_MONTH;
nday = CLK_DAY;
nhour = CLK_HOUR;
nmin = CLK_MIN;
nsec = CLK_SEC;
nmy_id = MY_ID;
pTemp = (char*)&nmy_id;
szreply[0] = 0x16;
szreply[1] = 0x00;
szreply[2] = 0x1A;
szreply[3] = 0xC4;
szreply[4] = *(pTemp + 0);
szreply[5] = *(pTemp + 1);
szreply[6] = nyear;
szreply[7] = nmonth;
szreply[8] = nday;
szreply[9] = nhour;
szreply[10] = nmin;
szreply[11] = nsec;
szreply[12] = alarm_status;
nTemp = ombro_ten*2;
pTemp = (char*)&nTemp;
szreply[13] = *(pTemp + 0);
szreply[14] = *(pTemp + 1);
nTemp = ombro_hour*2;
pTemp = (char*)&nTemp;
szreply[15] = *(pTemp + 0);
szreply[16] = *(pTemp + 1);
nTemp = ombro_day*2;
pTemp = (char*)&nTemp;
szreply[17] = *(pTemp + 0);
szreply[18] = *(pTemp + 1);
nTemp = ombro_continue*2;
pTemp = (char*)&nTemp;
szreply[19] = *(pTemp + 0);
szreply[20] = *(pTemp + 1);
nTemp = ombro_ten_min_max*2;
pTemp = (char*)& nTemp;
szreply[21] = *(pTemp + 0);
szreply[22] = *(pTemp + 1);
nhour = ombro_ten_min_max_hr;
nmin = ombro_ten_min_max_min;
szreply[23] = nhour;
szreply[24] = nmin;
nTemp = ombro_hour_max*2;
pTemp = (char*)&nTemp;
szreply[25] = *(pTemp + 0);
szreply[26] = *(pTemp + 1);
nhour = ombro_hour_max_hr;
nmin = ombro_hour_max_min;
szreply[27] = nhour;
szreply[28] = nmin;
szsum = 0x00;
for (nloop = 1; nloop < 29; nloop ++)
{
szsum += szreply[nloop];
}
szreply[29] = 0xFF - szsum;
SerialPortWrite(szreply, 30);
//#error "设置等待告警信息返回标识"
}
void uploadAlarmValue()
{
char szreply[30];
char szsum;
char nloop;
char *pTemp;
unsigned int nTemp;
unsigned int nmy_id;
nmy_id = MY_ID;
pTemp = (char*)&nmy_id;
szreply[0] = 0x16;
szreply[1] = 0x00;
szreply[2] = 0x15;
szreply[3] = 0xAE;
szreply[4] = *(pTemp + 0);
szreply[5] = *(pTemp + 1);
nTemp = (unsigned int)(g_lx0*10.0);
pTemp = (char*)& nTemp;
szreply[6] = *(pTemp + 0);
szreply[7] = *(pTemp + 1);
nTemp = (unsigned int)(g_lx1*10.0);
pTemp = (char*)& nTemp;
szreply[8] = *(pTemp + 0);
szreply[9] = *(pTemp + 1);
nTemp = (unsigned int)(g_l11*10.0);
pTemp = (char*)& nTemp;
szreply[10] = *(pTemp + 0);
szreply[11] = *(pTemp + 1);
nTemp = (unsigned int)(g_l12*10.0);
pTemp = (char*)& nTemp;
szreply[12] = *(pTemp + 0);
szreply[13] = *(pTemp + 1);
nTemp = (unsigned int)(g_l13*10.0);
pTemp = (char*)& nTemp;
szreply[14] = *(pTemp + 0);
szreply[15] = *(pTemp + 1);
nTemp = (unsigned int)(g_l22*10.0);
pTemp = (char*)& nTemp;
szreply[16] = *(pTemp + 0);
szreply[17] = *(pTemp + 1);
nTemp = (unsigned int)(g_l23*10.0);
pTemp = (char*)& nTemp;
szreply[18] = *(pTemp + 0);
szreply[19] = *(pTemp + 1);
nTemp = (unsigned int)(g_l32*10.0);
pTemp = (char*)& nTemp;
szreply[20] = *(pTemp + 0);
szreply[21] = *(pTemp + 1);
nTemp = (unsigned int)(g_l33*10.0);
pTemp = (char*)& nTemp;
szreply[22] = *(pTemp + 0);
szreply[23] = *(pTemp + 1);
szsum = 0x00;
for (nloop = 1; nloop < 24; nloop ++)
{
szsum += szreply[nloop];
}
szreply[24] = 0xFF - szsum;
SerialPortWrite(szreply, 25);
//#error "设置等待告警值返回标识"
}
void uploadMobile()
{
char szreply[25];
char szsum;
char nloop;
char *pTemp;
unsigned int nmy_id;
nmy_id = MY_ID;
pTemp = (char*)&nmy_id;
szreply[0] = 0x16;
szreply[1] = 0x00;
szreply[2] = 0x0E;
szreply[3] = 0xAC;
szreply[4] = *(pTemp + 0);
szreply[5] = *(pTemp + 1);
szreply[6] = MobilePhone[0];
szreply[7] = MobilePhone[1];
szreply[8] = MobilePhone[2];
szreply[9] = MobilePhone[3];
szreply[10] = MobilePhone[4];
szreply[11] = MobilePhone[5];
szreply[12] = MobilePhone[6];
szreply[13] = MobilePhone[7];
szreply[14] = MobilePhone[8];
szreply[15] = MobilePhone[9];
szreply[16] = MobilePhone[10];
szsum = 0x00;
for (nloop = 1; nloop < 17; nloop ++)
{
szsum += szreply[nloop];
}
szreply[17] = 0xFF - szsum;
SerialPortWrite(szreply, 18);
//#error "设置等待手机号码回传确认标识"
}
/* bcd to hex */
unsigned int bcd2hex(BYTE bdata)
{
unsigned int tmp;
tmp = (((unsigned int)(bdata >> 4) * 10) + (unsigned int)(bdata & 0x0f));
return tmp;
}
/* hex to bcd */
unsigned char hex2bcd(unsigned char hdata)
{
unsigned char bdata;
unsigned char tmp;
tmp = hdata % 100;
bdata=(unsigned char)((unsigned int)hdata) / 100 << 8;
bdata=(unsigned char)(bdata | tmp / 10 << 4);
bdata=(unsigned char)(bdata | tmp % 10);
return bdata;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -