Было бы неплохо порекомендовать авторам ПО SIM900 ввести
в наборе команд относящихся к "TCP/IP application toolkit"
команду противоположную AT+CIPRXGET=3,... -- то-есть
чтоб AT+CIPSEND, или другая команда, позволяла передавать
данные не в бинарном виде, а в HEX (по-аналогии с CIPRXGET=3).
И, кроме того, неплохо было бы иметь возможность непосредственного
приёма данных (без AT+CIPRXGET=1) тоже в HEX. Точно также, например,
как сообщение +CUSD содержит в себе данные в HEX. А не как сейчас
сделано, когда данные передаются в бинарном виде (+IPD<длин>:данные...)
Сейчас практически невозможно надёжно разделить поток данных и команд
модему, если данные передаются в бинарном виде (нет возможности отличить
сообщения модема от принятых данных). Если не использовать AT+CIPRXGET
или AT+CIPMODE=1. Что неудобно. Но в "прозрачном режиме" (AT+CIPMODE=1)
трудно работать с некоторыми UDP-протоколами (например, TFTP), потому,
что нет информации о размере данных в пакете. A при отправке данных в
бинарном виде (AT+CIPSEND сейчас подразумевает только этот вариант) тоже
возникают трудности с уже имеющимся ПО, лучше HEX (строки в языке C и код 0).