这4行程序什么意思,我怎么觉得多余那

[复制链接]
3726|8
 楼主| tingtang 发表于 2010-3-15 12:10 | 显示全部楼层 |阅读模式
是一个串口通信,这是校验的一部分
c2=m_chChecksum & 0x0f; c1=((m_chChecksum >> 4) & 0x0f);
if (c1 < 10) c1+= '0'; else c1 += 'A' - 10;
if (c2 < 10) c2+= '0'; else c2 += 'A' - 10;

什么意思?

if (c1 < 10) c1+= '0'; else c1 += 'A' - 10;
if (c2 < 10) c2+= '0'; else c2 += 'A' - 10;

这是干什么的不是已经校验完了吗?
liao_fangxing 发表于 2010-3-15 16:33 | 显示全部楼层
那里检验完了??
PS:  就贴了这么几行程序 看不出是想干啥
high 发表于 2010-3-16 15:11 | 显示全部楼层
看意思 是要转成可显示字符。显示出16进制
 楼主| tingtang 发表于 2010-3-17 10:27 | 显示全部楼层
2# liao_fangxing


这是采数据

void CSerialPortTestDlg::OnButtonSend()
{
// TODO: Add your control notification handler code here
if(!m_bSerialPortOpened) //检查串口是否打开
{
  AfxMessageBox("串口没有打开");
  return;
}
UpdateData(TRUE); //读入编辑框中的数据
CString strSend=""; //要发送的NEMA字符串
//以下读入9个开关的设置状态
for(int i=1;i<=9;i++)
{
  if(GetSwitchStatus(i))
   strSend+='1';
  else
   strSend+='0';
}
CString strTemp;
strTemp.Format("%02d",m_unEditPosition);
strSend+=strTemp;
strTemp.Format("%03d",m_unEditVelocity);
strSend+=strTemp;
SendNMEAData(strSend);
}


下面是我要问的
void CSerialPortTestDlg::SendNMEAData(CString &strData)
{
char checksum=0,cr=13,ln=10;
    char c1,c2; //2个 半Bype 校验值
for(int i=0;i<strData.GetLength();i++)
  checksum = checksum^strData;
    c2=checksum & 0x0F; c1=((checksum >> 4) & 0x0F);
    if (c1 < 10) c1+= '0'; else c1 += 'A' - 10;
    if (c2 < 10) c2+= '0'; else c2 += 'A' - 10;
CString strNMEAData;
//加上包头,尾和校验值和回车换行符
strNMEAData='$'+strData+"*"+c1+c2+cr+ln;
//以下几行程序关不通用,在自己的程序中注意修改
m_SerialPort.WriteToPort((LPCTSTR)strNMEAData);
m_strEditSendMsg.Format("发送的数据包为:%s",strNMEAData);
UpdateData(FALSE);  //在发送显示编辑框中显示发送的数据包
}
 楼主| tingtang 发表于 2010-3-17 10:30 | 显示全部楼层
m_unEditPosition

m_unEditVelocity都是十进制的

假如说采完是10011100023098,这个23098和前面的0或者1异或是什么那?????????????????
ejack 发表于 2010-3-26 12:49 | 显示全部楼层
LZ,人家3L已经跟你解释得那么清楚了
ejack 发表于 2010-3-26 12:54 | 显示全部楼层
//加上包头,尾和校验值和回车换行符

而且注释里面也写明了
牛牛特工 发表于 2010-3-26 17:11 | 显示全部楼层
流金岁月 发表于 2010-3-28 21:06 | 显示全部楼层
ASCII转化
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

147

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部