BlackBox- генератор исходного кода (JAVA, C#, C) обработки бинарного протокола Вашего распределенного приложения +12


В продолжение темы, где читатели сконцентрировавшись исключительно на теме интерфейса (хулиганы кнопок и энкодеров лишают), совершенно упустили, что предложение вынести интерфейс с микроконтроллера на мобильник или компьютер всего лишь один, из многочисленных вариантов применения кодогенератора BlackBox. Прошло некоторое время, проект развивается и самое время написать исключительно о самом кодогенераторе.

Напомню, что кодогенератор BlackBox генерирует исходный код (JAVA, C#, C) обработки протокола обмена, согласно описанию пользователя, в предопределенном формате. Это обычный JAVA файл для, редактирования которого к JAVA проекту нужно подключить набор аннотаций описания данных и следовать небольшому набору правил.

Описав протокол обмена, пакеты, каналы, хосты, коммуникационные интерфейсы, топологию сети и указав языки(JAVA, C#, C) на которых вам нужен исходный код, проверяем, что ошибок нет и файл успешно компилируется.

После чего отправляем исходник в виде аттачмента письма, на почтовый адрес OneBlackBoxPlease@outlook.com.

Сервер периодически забирает присланные спецификации, проверяет их корректность.
Генерирует заказанный в спецификации исходный код, на требуемых языках программирования.
После чего, создает несколько тестов и исходники прогоняются через них.

Если все тесты прошли успешно, то сгенерированный код, последний прошедший тест, а также пример использования заказанного API упаковывается в архив и высылается адресату.

В случае обнаружения ошибки, отправитель уведомляется о возможной задержке, а служба поддержки BlackBox разбирается с возникшим затруднением.

Содержимое высылаемого архива может, например, выглядеть так.



И вот недавно, для подтверждения зрелости и в качестве демонстрации возможностей BlackBox, был создан проект конвертации информации о пакетах широко известного протокола управления беспилотными устройствами MAVLink в формат BlackBox.

В MAVLink описание протокола происходит в XML формате. В формате BlackBox этот файл выглядит так.

Конечно BlackBox имеет существенно большее, по сравнению с MAVLink, разнообразие типов данных, поэтому проект демонстрирует только часть возможностей BlackBox. Подробнее о проекте конвертации можно прочитать тут.

Результат проекта подтвердил — BlackBox легко может заменить MAVLink. Все тесты пройдены успешно, все прекрасно работает. Но, для того чтобы, в контексте MAVLink, воспользоваться всеми возможностями BlackBox, придется пересматривать описание протокола.



Итоги:

Если Вы в процессе написания своего распределенного приложения, задумались о протоколе обмена, Вас не устраивает производительность уже используемого протокола или надоело выискивать ошибки и страдать при расширении протокола — попробуйте BlackBox.

Помимо очевидного применения в распределенных приложениях, с BlackBox Вы легко сможете например: написать свой протокол к SQLite, на любом из языков JAVA, C#, C,
создать свой оптимальный формат выгрузки информации в файл, с последующим чтением.

И, конечно же… перенести интерфейс управления микроконтроллером на сторону оператора.




К сожалению, не доступен сервер mySQL