我目前正在尝试为微处理器实现C#库(通过串口进行通信)。微处理器具有可写入的大量字段,所有字段都具有某种识别名称(例如,ChargingVoltage)。我正在使用的协议涉及发送字段的十六进制值,然后发送更新的数据。数据的长度及其所代表的类型因字段而异。
目前我的班级有100个左右的功能,看起来像
public void ChargingVoltage(UInt16 chargingVoltage)
{
_device.SendData
(
EField.ChargingVoltage,
BitConverter.GetBytes(chargingVoltage)
);
}
其中BitConverter.GetBytes()
是用于将Uint16
转换为Byte[]
的函数,但是当数据类型是字符串或某种位域时,此函数会有所不同。
函数名始终与enum成员的名称相同,该成员对应于字段的十六进制值,ChargingVoltage()
始终发送EField.ChargingVoltage
,在发送时转换为0x15
我使用visual studio宏来编写所有这些函数定义的事实告诉我,编写这个类可能有更好的方法,我只是不知道它是什么。任何帮助,将不胜感激。我希望我也没有把这个问题定得过于具体!
编辑:此库可能还需要从微处理器接收更新并存储接收到的ChargingVoltage
值,我根本无法使用这些功能。