13771165220
级别: 家园常客
精华主题: 0
发帖数量: 323 个
工控威望: 553 点
下载积分: 1601 分
在线时间: 85(小时)
注册时间: 2017-11-27
最后登录: 2024-11-13
查看13771165220的 主题 / 回贴
楼主  发表于: 2021-08-24 19:48
比如发送的数据是ASC码     #1,0,30000,1000,AB
比如这串数字意思是  
#:打头字母
1:站号
0:该站电机号
30000:电机定位地址
1000:电机定位速度
AB:校验码
其中的”,“是间隔符号也是一个ASC码
返回数据先不管。
现在有这样的问题,我需要在触摸屏控制定位地址和定位速度。
但是如果我速度输入3000的话就比原来的30000少一个ASC字符,这样包括后面发送的指令数据地址都相当于左移了一位而且和校验都不一样了。
个人感觉还需去判断输入的数据转为ASC后占几个字符,感觉处理起来后续就比较麻烦。就算让人家直接输入ASC当数据也是比较麻烦。有谁有这方面的经验分享一下,大概思路也可以。
万分感激。
gxtmdb82164
级别: 论坛先锋
精华主题: 0
发帖数量: 751 个
工控威望: 1129 点
下载积分: 361 分
在线时间: 590(小时)
注册时间: 2019-09-22
最后登录: 2024-11-13
查看gxtmdb82164的 主题 / 回贴
1楼  发表于: 2021-08-25 15:26
前导0不就行了,非字典化通信协议里面,字段定长是最基本的要求
楼主留言:
是的,用PC测试了一下,前导0可以的。现在思路固定发送8个字符当数据。不足前填0.