我想做个功能:当上位机接收一个来自下位机发送一个数据包时,在上位机的一个label上显示数据内容:设置如下
void DataCallBack(byte[] CallbackDataValue)
{
/*数据回传回调函数
* 当有数据从下位机到达上位机后,将执行到此函数
* CallbackDataValue[0]为类型位
* CallbackDataValue[1]为命令位
* CallbackDataValue[2]为数据位
* 包头包尾已经去掉
*
* 协议说明
* 0x03 雷达
* 0x89 拍照
* 0x60 电量
* 0x61 湿度
* 0x62 辐射
* 0x63 温度
*
* 数据位不允许超过10,步长1
*
*/
foreach (byte b in CallbackDataValue)
{
builder.Append(b.ToString("X2") + " ");
}
DelegateUI(builder.ToString());
builder.Clear();
label15.Text = "yifei";
label17.Text = "yifei";
//label17.Text = CallbackDataValue[2].ToString();
if (CallbackDataValue[0] == 0x03)
{
this.Invoke((EventHandler)(delegate
{
try
{
if (Int32.Parse(CallbackDataValue[1].ToString()) == 0)//雷达数据:弧度值
{
x_data = 0;
}
else
{
x_data = Int32.Parse(CallbackDataValue[1].ToString());
}
if (Int32.Parse(CallbackDataValue[2].ToString()) == 0)//雷达数据:距离值
{
y_data = 0;
}
else
{
y_data = Int32.Parse(CallbackDataValue[2].ToString());
}
RobotEngine2.WR_DEBUG("RADER", "x_data is:" + x_data.ToString() + ";++y_data is :" + y_data.ToString());
}
catch
{
x_data = 0;
y_data = 0;
}
if (RadarStatus)
{
GetTarget(x_data, y_data);
}
}));
}
else if (CallbackDataValue[0] == 0x99)
{
//标志位为0x99
//CallbackDataValue[1]即为数据内容。
//请自行拓展
// label15.Text = CallbackDataValue[1].ToString();
// label17.Text = CallbackDataValue[2].ToString();
}
else
{
RobotEngine2.WR_DEBUG("DATACALLBACK", "+++++++DATACALLBACK NOTHING+++++++++");
}
}
但并不能显示字符“yifei”!请大家帮忙找找是什么原因
|