C#取值问题

算数鬼才 2020-04-13 11:52:34
最近在使用TCP通讯获取到一组客户端数据,是电位器,用来读取圈数,比如第一圈得到数据是 30,30,30,31,第二圈:30,30,30,32,第三圈:30,30,30,33.。。。。第二十 ,30,30,32,30,,请问dalao怎么才能把这4个十六进制数的后一个数提取出来并组合成一个十进制数啊
...全文
37 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2020-04-13
  • 打赏
  • 举报
回复
ps:modbus其实有成品库用的,在nuget上搜索modbus可以看到一堆,你自己挑一个觉得ok的就行 另外如果想保持服务器的通用性,可以选dotnetty,在做个modbus解码器就可以 https://www.cnblogs.com/victorbu/p/10370890.html,这是dotnetty modbus解码器的玩法
wanghui0380 2020-04-13
  • 打赏
  • 举报
回复
  byte[] data=new byte[]{0x30,0x34,0x28,0xff}; //我随便写得,正常情况,mobus本身给你的就是byte [],而且mobus本身协议就应该是 功能号,地址,长度 数据,校验。也就是其实你拿到byte[]后,如果校验成功,就可以直接从第3位读的
           int res= BitConverter.ToInt32(data, 0); //我上面随便写的数据,我就直接从0读了
算数鬼才 2020-04-13
  • 打赏
  • 举报
回复
引用 1 楼 wanghui0380 的回复:
bitconvert.int32(byte[]) 就好 都读线圈了,估计是modbus把,可以直接使用mobus库的
确实是modbus ,刚开始学着怎么用是可以直接根据协议里的的字段码直接获取到吗
wanghui0380 2020-04-13
  • 打赏
  • 举报
回复
bitconvert.int32(byte[]) 就好 都读线圈了,估计是modbus把,可以直接使用mobus库的

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧