Rust и APRS телеметрия — как у меня настроен Direwolf
Судя по онлайнам, стрим про моддинг Prison Architect как-то не особо зашел 🙂
На стриме я показывал как можно «взламывать» игры и другие приложения с помощью DLL-инъекций. Но с подобными инъекциями нюанс в том, что на каком-нибудь Python их написать не получится — нужно что-то низкоуровневое. То есть выбор был между C/C++ и Rust.
В итоге я выбрал Rust и он мне очень даже понравился. Что понравилось? Понятный синтаксис (в отличие от C/C++) и функциональщина. А если точнее, то понравилась обработка ошибок как в функциональных языках.
Если у вас был опыт со Scala, то вы понимаете, о чем я говорю 🙂 Но похожий синтаксис встречается и в JavaScript в виде промисов.
Из-за того, что стрим по Prison Architect особо никого не впечатлил, я не стал дальше развивать эту тему. Но мне очень хотелось еще что-нибудь написать на Rust 🙂
Вот я и написал маленькое приложение для Direwolf, с помощью которого в APRS передается системная телеметрия и информация об уровне входящего сигнала:
Если вдруг меня читают радиолюбители, которым интересен APRS, то возможно вас заинтересует и этот мини-проект 🙂 Исходники и бинарники под Raspberry Pi я выложил на GitHub. Там же рассказал как настроить Direwolf для отправки телеметрии в PBEACON.
Кстати, изначально телеметрия собиралась скриптом на Баше. Но на Баше писать неудобно, из-за этого я наделал багов и поэтому скрипт иногда подглючивал. Так что помимо просто желания пописать на Расте, у меня были и объективные причины все переделать.