При поиске опций сериализации-десериализации я наткнулся на nanopb, предназначенный для 32-битных контроллеров, которые используют буферы протокола Google.
Когда мне стало любопытно попробовать это для связи mqtt по модему gsm, я Я понял, что нет никакого способа, которым я мог бы позволить механизму кодирования nanopb знать, как обрабатывать escape-символы / специальные символы, такие как CTRL + Z, потому что все они кодируются в шестнадцатеричном формате. (Например, CTRL + Z в шестнадцатеричном формате будет 0x1A), а модемы gsm используют 0x1A в качестве символа завершения сообщения. Следовательно, при отправке закодированного сообщения nanopb через AT-команды модему модем интерпретирует закодированное сообщение, содержащее 0x1A, как CTRL + Z, чего не должно быть.
Возможно ли в этом случае использовать nanopb? Или я что-то не так делаю?