安卓中与硬件交互记录

工作场景:

安卓设备中需要通过软件,发送命令,将硬件设备中的滚轮,根据输入的数字,左移或者右移,调整到正确的位置。

硬件端的要求是:byte 8位数据,前两位设置为固定的命令数据,第三位作为负号位,0为正,1为负。后五位是输入的数字的二进制数据。

举个例子,我们限制输入的大小,-16到16。只能输入这个范围内的整数。

以输入15为例子。15的二进制数据为 0000 1111。

但是此处需要将这个二进制数据进行转化,转换为硬件方需要的数据。比如说前两位设置为11,

那么满足硬件的数据为:1100 1111.

那么比较关键点就是 0000 1111 到1100 1111的转换。这个时候,我们来看,主要有变化的是前三位,而且我们固定输入的数据大小,最后二进制表达 为1 0000 。那么此时我们可以采用或运算。

或运算的主要点就是只要有1 就是1  都是0才等于0 。

我采取的方案如下:1.输入的内容,保存输入的数字的绝对值,即正数值。2.保存一个布尔值 作为输入的内容是否是负数。方便在进行或运算的时候,调整为硬件需要的数据。

那么正数的情况下,需要进行或运算的二进制数据为 1100 0000 ,十进制数据为 192.

负数的情况下,需要进行或运算的二进制数据为 1110 0000,十进制数据为224。

与硬件通讯协议规定:命令为16进制的字符串,返回值也为16进制的字符串。

所以,在拿到符合硬件要求的数据之后,需要转化为16进制的字符串,拼接成相应的命令。

 

 拿到相应的十六进制字符串之后,获取byte数组,写入硬件即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值