本手册是为火车雷达使用手册. 适用的软件版本为Ver605版本,支持雷达倾角校正。
1.数据通讯协议:RS232C,8 比特数据,1比特停止位,无校验位。
2.速度测量输出:
拜特 定义
BYTE 1 : FFH
BYTE 2: 目标速度低位
BYTE 3: 目标速度高位
BYTE 4: 0D
BYTE 5: **
BYTE 6: **
目标速度 =(目标速度高位*128 +目标速度低位)/100.
BYTE 5和BYTE 6是工程师所要了解的信息,客户无需知道。
3.雷达发送接收时十六进制数据
FF 00 00 0D 01 6B
FF 00 00 0D
FF 00 00 0D 01 77
FF 00 00 0D
FF 00 00 0D 02 77
FF 1E 00 0D 01 51
FF 1E 00 0D
FF 1D 00 0D 01 67
FF 1D 00 0D
FF 00 00 0D 02 5B
FF 00 00 0D
解析代码:
typedef vector<BYTE> ByteArray; //定义容器数组
void CMSComDlg::OnComm()
{
// TODO: Add your control notification handler code here
static ByteArray g_RecvByteAry;
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len, k;
BYTE recvData;
int tmpSpeed;
float fspeed;
int counter=0;
CString fmt;
if (m_Comm.GetCommEvent() == 2)
{
variant_inp = m_Comm.GetInput();
safearray_inp = variant_inp;
len = safearray_inp.GetOneDimSize();
for (k=0; k<len; k++)//接收数据
{
safearray_inp.GetElement(&k, &recvData);
if (recvData == 0xff)
{
counter = 0;
g_RecvByteAry.clear();
}
g_RecvByteAry.push_back(recvData);
counter++;
if (counter == 4 && g_RecvByteAry[3] == 0x0D)
{
tmpSpeed = 0 ;
tmpSpeed |= g_RecvByteAry[2];
tmpSpeed *= 128;
tmpSpeed += g_RecvByteAry[1];
tmpSpeed *= 100;
tmpSpeed /= 36;
m_Receive.Format("Current Radar speed [%d] mm/s", tmpSpeed);
UpdateData(FALSE);
CLogMessage(LOG_DEBUG, "雷达速度:[%d] mm/s !\n",tmpSpeed);
}
}
}
}