⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gps.cpp

📁 一个完整的RTU程序源码,用DOS平台,支持16串口,在天津港用的很多,8个规约103,modbus,cdt,1801,u4f
💻 CPP
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -