|
20.02.2018, 12:41
#39604737
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
|
|
|
|
https://github.com/cheblin/BlackBox] BlackBox - мультиязычный ( JAVA, C#, C ) генератор исходного кода обработки бинарного протокола распределенного приложения.
Если вам необходим максимально оптимизированный протокол с богатым набором типов данных, структур и полей - BlackBox Ваш выбор.
- Что необходимо чтобы получить исходники Вашего распределенного приложения?
-
описать протокол обмена, пакеты, каналы, хосты, коммуникационные интерфейсы, топологию сети и указать языки( JAVA, C#, C ) на которых вам нужен исходный код.
-
вот к примеру так выглядит файл описания для демо проекта управления с Android миганием светодиода на борде под STM8S103F3P6 через Bluetooth UART на HC 08.
-
-
файл описания - это обычный JAVA файл. Для его создания необходимо скачать и подключить к проекту аннотации описания данных и следовать небольшому набору правил
-
-
-
После окончания проверить, что спецификация успешно компилируется, и послать её исходник, в виде аттачмента письма, на почтовый адрес OneBlackBoxPlease@outlook.com .
-
Сервер периодически забирает присланные спецификации,
-
проверяет их корректность.
-
Генерирует заказанный в спецификации исходный код на требуемых языках программирования.
-
После этого создает несколько тестов и исходники прогоняются через них.
-
Если все тесты прошли успешно, то сгенерированный код, последний прошедший тест, а также пример использования заказанного API упаковывается в архив и высылается адресату.
-
В случае обнаружения ошибки, отправитель уведомляется о возможной задержке и служба поддержки BlackBox разбирается с возникшим затруднением.
-
-
BlackBox и в качестве демонстрации его возможностей по сравнению с MAVLink , успешно закончил и выложил проект конвертации информации о пакетах обмена из формата MAVLink в формат BlackBox.
Все прекрасно работает, все тесты пройдены.
Насколько сложным может быть протокол? - предлагаю оценить по объему сгенерированного по этой спецификации кода на JAVA
Более 12 000 строк кода.
Кодогенератор генерирует это практически мгновенно... и без ошибочно.
В основном время тратится на генерирование исходников тестов сгенерированного кода, их компиляцию, и прогон.
Подробнее можно прочитать тут.
|
|
|