bullitufa
@bullitufa
электронщик программист (микроконтроллеры и PC)

Какой интерфейс (API) использовать для обмена по raw socket между сервером и железкой (stm32)?

Всем добра!

Есть сервер (PC, python) и клиент (на stm32) соединенные через ethernet. Общение через raw socket.
В основном данные (запросы) идут от сервера!
Подскажите, какое API лучше всего реализовать/использовать?
Требования простые:
1) простой парсинг команд на стороне железа: определение начала команды, команда, параметры, конец команды - на случай отправки команд в одном пакете. Т.е. чтоб можно было использование switch case :)
2) текстовые команды (что-то типа AT команд) (для удобства просмотра в wireshark)
3) не хотелось бы использовать сторонние библиотеки (от IoT, умных домов и т.д.) но если они дают некоторое преимущество, можно было бы и использовать
4) по минимуму ресурсов
5) и наверное главное, хотелось бы использовать "красивое" API, где всё "красиво")

Что посоветуете? AT команды или простой текст, а-ля " < START cmd='some_model' Height='3' Width='3' > "
Возможно Вы уже что-то подобное делали/реализовывали?
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 2
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Json уже не в моде?
Ответ написан
RiseOfDeath
@RiseOfDeath
Диванный эксперт.
AT команды, ИМХО не самый удобный формат - для человека читаемость плохая, а для контроллера - текст он и есть текст.

Варианта 1 - варианты на тему текстовых протоколов - JSON, SOAP и т.п. - SMT32 достаточно быстрая, чтобы парсить такое.
Вариант 2 - бинарный протокол - для работы с контроллером это рациональнее. (но если у вас есть большой запас по производительности, то нет смысла так этим заморачиваться).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы