我目前正在研究一些C代碼通過藍牙轉發CAN消息,反之亦然(μC的東西)。問題是,我的配對藍牙設備使用'00'作爲命令,而我的藍牙庫使用char []來緩存從BT接收到的字符串。這不可避免地終止字符串,因爲它將該命令解釋爲NULL字符。而且,CAN幀中的任何空數據字節都會導致相同的問題。什麼是最簡單的方法來防止空字符終止我的字符串?
我可以通過將CAN消息存儲在一個字節數組中,然後將一串字節和一個CR發送到BT模塊來解決從CAN到BT的問題,但反過來說不是這樣容易,因爲BT庫正在使用各種基於字符串的命令。
是否有一種簡單的方法來防止NULL導致不必要的終止,或者我是否必須將整個庫重寫爲合適的數據類型,以及哪種方法在此情況下效果最好?任何想法讚賞!
不使用C將是最好的,但使用一個理智的API庫會很好。一個使用以null結尾的數組作爲二進制流的lib只是很爛:( –
不幸的是,這不是一個選項,但我可以看到你的觀點,我想BT庫的原作者有其他想法 –