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

    В продолжение темы, где читатели сконцентрировавшись исключительно на теме интерфейса (хулиганы кнопок и энкодеров лишают), совершенно упустили, что предложение вынести интерфейс с микроконтроллера на мобильник или компьютер всего лишь один, из многочисленных вариантов применения кодогенератора 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,
    создать свой оптимальный формат выгрузки информации в файл, с последующим чтением.

    И, конечно же… перенести интерфейс управления микроконтроллером на сторону оператора.
    Поделиться публикацией
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 2
    • 0
      перечитал ту тему и эту.
      Хммм… я правильно понимаю, что у вас там внутри универсальная двунаправленная пересылка данных спрятана — из устройства на мобильник и обратно (а для показометров это или нет — это уже дело пятое)?

      А у вас есть варианты, чтобы скачать только один универсальный «плеер», а подключать в него крутилки\стрелки\кнопки динамически — при спаривании с очередным изделием?
      • 0
        Универсального «плеера» нет. Каждый раз уникальный «плеер» создается кодогенератором под ваши задачи. На стороне сервера… а там целая вселенная, на SCALA под это развернута.

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

      Самое читаемое