写TCP UDP以及串口通信时,整型数组转字符串数组发送的便捷操作

串口通信和udp/tcp通信,发送接口函数都是发送字符串,但是你看串口的发送函数ser.write(serial_msg);,serial_msg是这个std::string &serial_msg字符串类型,但是我实际用的时候比如write(tmpdatacb1, 132),tmpdatacb1是个整型数组,但是这么编译使用也没有问题,可以这么理解,这个串口或者udp发送函数输入参数其实是字符数组的指针,也就是一个地址而已,所以相应参数你写的是字符数组名还是整型数组名,它地址应该都是一样的,或者代表的意义是一样的,比如这个udp的sendto函数,它传入字符数组的首地址的时候,还需要传入字符数组的长度,应该就是把这个地址后面这个长度的内的字节都取出来,那么理论上我地址写整型数组的首地址,长度写整型数组的长度,它取出的字节内容应该是一样的。于是我这么改了下xianfei_protocol.cpp里面的发期望欧拉角指令时候的sendto,ret = sendto(sockfd, setAngleChar, 73, 0, (struct sockaddr*)&sock_addr, sizeof(sock_addr));改为ret = sendto(sockfd, setAngleUint8, 72, 0, (struct sockaddr*)&sock_addr, sizeof(sock_addr));,注意长度由73改为了72,因为字符串数组一般末尾还会加上个"\0",所以长度会多1,这么改完编译,没有问题,运行,也控制了吊舱转动到指定角度了,看来我的理解是OK的,这么我以后可能不用专门再把整型数组转为一个二进制相同的转义字符串数组了,现在是用reinterpret_cast函数转的,以前我还更麻烦,手动写个转义字符数组出来。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值