繁体   English   中英

如何记录从 Arduino 的 C# 的串行 com 端口随机出现的特定变量数据

[英]How to log the particular variable data which comes randomly at serial com port in C# from Arduino

我正在开展一个项目,在该项目中,我在 Arduino 和 C# window 表单应用程序之间建立了串行通信。 当我向 Arduino 发送启动命令时,Arduino 开始旋转连接到它的伺服电机,并以连续的方式将角度 position 发送到 Z240AA2CEC4B29C56F3BEE520A。

Now while Arduino is sending the data to C#, I request a variable data stored in Arduino at a random time at the same serial port and I want to log that variable data in my c#.i can log whatever data is being received on serial port但我不能 select 并提取该特定变量。

有人可以帮我吗?

我就在这里说一下吧。 从 jdweng 停止的地方开始,您的消息还需要包含消息协议 state 信息。 包含此信息后,您将能够以任何顺序对任何消息进行反序列化,因为处理它所需的信息包含在消息中。

这是一个示例协议。

信息 -

  • 消息长度 - 2 个字节
  • 消息类型 - 2 个字节
  • MessageBody - n 字节

所以你的角度信息将由长度、类型和值三部分组成

角度消息

  • 消息长度 = 6
  • MessageType = (Int16)MessageTypes.Angle
  • MessageBody = (Int16)0-359

参数消息

  • MessageLength = 10 + 值的大小
  • MessageType = (Int16)MessageTypes.Parameter
  • 消息体 = {

    • (Int16)ParameterOperation.Updated,
    • (Int16)ParameterNumber,
    • (Int16)参数类型,
    • (Byte[])ParameterValue

    }

    使用此方案,您的消息包含处理它所需的所有信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM