单片机通过wifi将采集到传感器的数据传至上位机,单片机是每一秒发送一组数据,如“0xaa,0x55,‘采集到的数据1’,‘采集到的数据2’”
问:怎样才能接收数据并判断第一个是“0xaa“并且第二位是”0x55“时候将”采集到的数据1“和”采集到的数据2“拿出来并整合合,下一秒也是这样循环下去,我现在只能做到接收数据。
private byte[] m_receiveBuffer = new byte[1024];
sock.BeginReceive(m_receiveBuffer, 0, m_receiveBuffer.Length, 0, new AsyncCallback(ReceiveCallBack), null);
private void ReceiveCallBack(IAsyncResult ar)
{
try
{
int REnd = sock.EndReceive(ar);
string strReceiveData = m_receiveBuffer[0].ToString("X2");
this.HandleMessage(strReceiveData);
sock.BeginReceive(m_receiveBuffer, 0, m_receiveBuffer.Length, 0, new AsyncCallback(ReceiveCallBack), null);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
}
private void HandleMessage(string message)
{
message = message.Replace("\0", "");
if (!string.IsNullOrEmpty(message))
{
label6.Text = message;
}
}
已解决,不过还需要优化,比如延时问题
这个代码只是接收这一部分,剪切出来有点奇怪,希望各位不要介意
希望有人回答啊。。。。。
message = message.Replace("/0", "");
别的不看了,但是这明显斜杠写反了。
我想问题是由于单片机一次发送一个字节,一直不断发送,不断刷新buffer,所以label6.Text显示的就只是一个当前数据,怎么处理呢?