gps.cpp
来自「一个完整的RTU程序源码,用DOS平台,支持16串口,在天津港用的很多,8个规约」· C++ 代码 · 共 56 行
CPP
56 行
#include "class.h"
#include "extern.h"
void CGps::initial(INT8U portno)
{
myportno = portno; //set current port no
tbbz = 0;
}
void CGps::deal()
{
char * sp;
char sp_buf[3];
sclock clk;
sp_buf[2]=0;sp=&sp_buf[0];
INT16U rece_len = get_com_rece_num(myportno);
if (tbbz == 0) {
if (rece_len < 4) return;
get_com_rece_nbytes(recbuf, 4, myportno);
if (recbuf[0] == 'B' && recbuf[1] == 'J' &&
recbuf[2] == 'T' && recbuf[3] == ',') {
tbbz = 1;
}
else del_com_rece_one(myportno);
}
else {
if (rece_len >= 17) {
read_com_rece_nbytes(recbuf, 17, myportno);
draw_rece_message(myportno, recbuf, 17, POLL_RECE_COLOR);
sp_buf[0] = recbuf[4];
sp_buf[1] = recbuf[5];
clk.year = (INT8U)atoi(sp) + 2000;
sp_buf[0] = recbuf[6];
sp_buf[1] = recbuf[7];
clk.month = (INT8U)atoi(sp);
sp_buf[0] = recbuf[8];
sp_buf[1] = recbuf[9];
clk.day = (INT8U)atoi(sp);
sp_buf[0] = recbuf[11];
sp_buf[1] = recbuf[12];
clk.hour = (INT8U)atoi(sp);
sp_buf[0] = recbuf[13];
sp_buf[1] = recbuf[14];
clk.minute = (INT8U)atoi(sp);
sp_buf[0] = recbuf[15];
sp_buf[1] = recbuf[16];
clk.second = (INT8U)atoi(sp);
clk.msecond = 5;
SetClock(&clk);
tbbz = 0;
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?