我目前正在研究一些C代码通过蓝牙转发CAN消息,反之亦然(μC的东西)。问题是,我的配对蓝牙设备使用'00'作为命令,而我的蓝牙库使用char []来缓存从BT接收到的字符串。这不可避免地终止字符串,因为它将该命令解释为NULL字符。而且,CAN帧中的任何空数据字节都会导致相同的问题。什么是最简单的方法来防止空字符终止我的字符串?
我可以通过将CAN消息存储在一个字节数组中,然后将一串字节和一个CR发送到BT模块来解决从CAN到BT的问题,但反过来说不是这样容易,因为BT库正在使用各种基于字符串的命令。
是否有一种简单的方法来防止NULL导致不必要的终止,或者我是否必须将整个库重写为合适的数据类型,以及哪种方法在此情况下效果最好?任何想法赞赏!
不使用C将是最好的,但使用一个理智的API库会很好。一个使用以null结尾的数组作为二进制流的lib只是很烂:( –
不幸的是,这不是一个选项,但我可以看到你的观点,我想BT库的原作者有其他想法 –