使用VC中的mscomm控件接收GPS星历信息,编程有关问题
使用VC中的mscomm控件接收GPS星历信息,编程问题
我的接收程序,要求接收并显示16进制数据:
接收到的数据显得杂乱无章,请问for循环中的语句对么?或该怎么修改?
另有人知道接收星历信息应该在接收缓冲区超过多少个字符接收一次么?
谢谢了!
------解决方案--------------------
strtemp.Format(_T("%02x "), rxdata + k);
m_recievestar += strtemp;
这样就可以按01 02 03 ab 1a格式显示,至于含义得根据GPS的协议知道,包括星历都要根据协议才能知道
我的接收程序,要求接收并显示16进制数据:
VARIANT variant_inp;
COleSafeArray safearray_inp;
long len,k;
byte rxdata[2048];
CString strtemp;
if(m_MSComm.get_CommEvent() == 2)
{
variant_inp = m_MSComm.get_Input();
safearray_inp = variant_inp;
len = safearray_inp.GetOneDimSize();
for(k = 0; k < len; k++)
{
safearray_inp.GetElement(&k, rxdata + k);
strtemp.Format(_T("%x"), rxdata + k);
m_recievestar += strtemp;
}
CString temp=_T("\r\n");
m_recievestar += temp;
}
UpdateData(FALSE);
接收到的数据显得杂乱无章,请问for循环中的语句对么?或该怎么修改?
另有人知道接收星历信息应该在接收缓冲区超过多少个字符接收一次么?
谢谢了!
GPS
VC
mscomm
接收数据
------解决方案--------------------
strtemp.Format(_T("%02x "), rxdata + k);
m_recievestar += strtemp;
这样就可以按01 02 03 ab 1a格式显示,至于含义得根据GPS的协议知道,包括星历都要根据协议才能知道