ios socket传16进制参数

这段时间公司做一个项目 与智能硬件交互的项目,需要用socket 通过16进制参数进行交互;

构造遥控数据帧 AC 01 00 32 00 5E 0B 02 01 9F 以这种形式;

 unsigned char cmd_switch[10];

        cmd_switch[0]=(char)0xAC;//start

        cmd_switch[1]=(char)0x1;//num 随便填

        //device address begin

        cmd_switch[2]=(char)0x0;

        cmd_switch[3]=(char)0x32;

        cmd_switch[4]=(char)0x0;

        cmd_switch[5]=(char)0x5e;

        //device address end

        cmd_switch[6]=(char)0x0B;// command

        cmd_switch[7]=(char)0x02;//data length

        cmd_switch[8]=(char)0x01;//data

        cmd_switch[9]=(char)0x0;//校验位,先初始化

NSData *senddata = [NSData dataWithBytes: cmd_switch  length:10];

        NSLog(@"send电量页面 %@",senddata);

        [socket writeData:senddata withTimeout:-1 tag:0];


这是写死数据,如果需要通过变量进行动态获取数据怎么办 我的char[]怎么往里面拼呢。我之前还傻傻的将0x通过字符串与变量拼进去放到数组里面 其实不是的0x代表16进制;后来通过各种尝试 找到了方法:将传入的数据变成十进制数据 放到数组里  例如  char[5]=(char)0x5e;将0x5e变成十进制 5*16+14=94 就是对应的十进制  然后char[5]=94

然后通过NSData *senddata = [NSData dataWithBytes: cmd_switch  length:10];方法自动转换成16进制。至于原理 我现在还不知道 可能是进行自动转换;解决了我很大问题;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值