定义OnComm函数如下,接收字符数据即开始执行,判断为哪什么数据,若是GPGGA的信息将会显示在接收文本框中。
界面图片
- /*------------------------------------------------------
- * OnComm函数实现
- * 触发条件:当输入缓冲区有字符时,有消息触发
- * 执行结果:字符接收,并显示在文本框m_strEditReceiveMsg
- *------------------------------------------------------*/
- #define CR 0x0D //定义回车
- #define LF 0x0A //定义换行
- LONG CReadGPSView::OnComm(WPARAM ch, LPARAM port)
- {
- /*------------------------------------------------------
- * 声明变量:静态变量连续接收字符并保存
- * 普通变量
- *------------------------------------------------------*/
- static char checkSum = 0;//异或交验
- static int count = 0;
- static unsigned char buf[20];
- static char chigh,clow;//用于交验,计算半
- static int flag = -1;//用于标记“接收阶段”
- /*------------------------------------------------------
- * 判断接受信息(只接收GPGGA信息)
- * $GPGGA,135105.000,3605.1204,N,12022.0206,E,1,03,8.5,
- * 53.0,M,-3.2,M,,0000*7B
- *------------------------------------------------------*/
- switch(ch)
- {
- //包首
- case '$':
- checkSum = 0;//开始计算checksum交验值
- flag = 0;
- m_strPortRxData.Empty();
- m_strPortRxData += ch;//接受字符 <