BlackBox поддерживает все примитивные типы данных, дву/одно байтовые символы строк, битовые поля, обязательные и необязательные поля. Многомерные массивы этих типов данных с фиксированными и динамическими измерениями. Генерирует исходный код на следующих языках программирования JAVA, C#, C. Планируется поддержка SWIFT.
На данный момент, кодогенератор BlackBox построен как SaaS.
Для получения сгенерированного и оттестированного кода необходимо:
Создать спецификацию протокола. По сути это обычный исходник на java. Вот например как он выглядит для демо проекта управления с Android миганием светодиода на борде под STM8S103F3P6 через Bluetooth UART на HC 08. При написании спецификации необходимо к java проекту подключить набор аннотаций описывающих характеристики данных, а также, следуя[urlhttp://www.unirail.org/?lang=ru] небольшому набору правил[/url] описать пакеты, каналы, хосты, коммуникационные интерфейсы, топологию сети
Проверить, что спецификация успешно компилируется, и послать её исходник, в виде аттачмента письма на почтовый адрес OneBlackBoxPlease@outlook.com. Сервер периодически забирает присланные спецификации из этого ящика, проверяет их корректность. Генерирует заказанный в спецификации исходный код на требуемых языках программирования. После этого создается несколько тестов и исходники прогоняются через них. Если все тесты прошли успешно, то сгенерированный код, последний прошедший тест, а также пример использования заказанного API упаковывается в архив и высылается адресату. В случае обнаружения ошибки, отправитель уведомляется о возможной задержке и служба поддержки BlackBox разбирается с возникшим затруднением.
Тут можно найти пример высылаемого сгенерированного кода, а тут использование этого кода в выше упомянутом, демонстрационном проекте управления с андроида вспышками светодиода на демоплате собранной на STM8.
Используя BlackBox вы сможете с лёгкостью наладить связь не только между микроконтроллерами, мобильными устройствами но и обычными компьютерами. И что важно, с минимальными затратами времени и сил. Фактически код сгенерированный BlackBox может стать каркасом Вашего распределенного приложения. Программисту останется просто добавить обработчики на события приёма пакета, а также логику создания пакета, заполнения его данными и отправки его получателю.
BlackBox является достойной альтернативой популярному протоколу MavLink