Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Предложение Генератор исходного кода обработки бинарного протокола BlackBox

Тема в разделе "Другие проекты", создана пользователем cheblin, 10 янв 2018.

  1. cheblin

    cheblin Новичок

    Сообщения:
    6
    Симпатии:
    0
    BlackBox генерирует исходный код на следующих языках программирования JAVA, C#, C. Планируется поддержка SWIFT.

    На данный момент, кодогенератор BlackBox построен как SaaS. Для получения сгенерированного кода необходимо:

    Создать спецификацию протокола. По сути это обычный исходник на java. Вот например как он выглядит для демо проекта управления с Android миганием светодиода на борде под STM8S103F3P6 через Bluetooth. При написании спецификации необходимо в java проект подключить набор аннотаций описывающих характеристики данных, а также, следуя небольшому набору правил описать пакеты, каналы, хосты, коммуникационные интерфейсы, топологию сети

    Проверить, что спецификация успешно компилируется, и послать её исходник, в виде аттачмента письма на почтовый адрес OneBlackBoxPlease@outlook.com . Сервер периодически забирает присланные спецификации из этого ящика, проверяет их корректность. Генерирует заказанный в спецификации исходный код на требуемых языках программирования. После этого создается несколько тестов и исходники прогоняются через них. Если все тесты прошли успешно, то сгенерированный код, последний прошедший тест, а также пример использования заказанного API упаковывается в архив и высылается адресату. В случае обнаружения ошибки, отправитель уведомляется о возможной задержке и служба поддержки BlackBox разбирается с возникшим затруднением.

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

    Используя BlackBox вы сможете с лёгкостью наладить связь не только между микроконтроллерами, мобильными устройствами но и обычными компьютерами. И что важно, с минимальными затратами времени и сил. Фактически код сгенерированный BlackBox может стать каркасом Вашего распределенного приложения. Программисту останется просто добавить обработчики на события приёма пакета, а также логику создания пакета, заполнения его данными и отправки его получателю.
     
  2. Юрий Ботов

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.052
    Симпатии:
    175
    :) вот блинк на наивном ассемблере stm8s:
    Код (Text):
    1.  
    2. include stm8s003._
    3. //
    4. // classical 'blink' 30 bytes code length
    5. // no external quarz, use hsi
    6. //
    7.  
    8. //003
    9. define gpio    gpioa
    10. define led    3
    11.  
    12. define stackInit(stackponter) x=stackponter;sp=x
    13. define gpioAsOutput(port,pin) portddr#pin=#1;portcr1#pin=#1
    14.  
    15. // interrupt vectors
    16. interrupt reset@0x8000: (f32) {0x82000000+start}     // set reset vector to start of flash
    17. // other interrupt vectors no needed for primitive blink
    18.  
    19. // delay procedure
    20. delay60k: x = #65530                       // 65530 tacts delay
    21.        delay60local: x--;  if z==0 delay60local;  ret
    22.  
    23. // main block
    24. start:                                                     // default entry point (see interrupt vectors in stm8s._)
    25.         stackInit(#ramend)                  // initialise stack pointer (it is assembler!!!)
    26.         gpioAsOutput(gpio,led)           // for output    
    27.  
    28. loop:   call near delay60k                // delay
    29.     ! gpio odr#led                                // invert led
    30.     go near loop                                   // next...
    31.  
    Если убрать комментарии и дефайны вставить в код (они тут просто для демонстрации)... код будет короче чем его "формальное описание" и при этом нагляднее... нет, адептам java, конечно, Java - нагляднее.
     
  3. cheblin

    cheblin Новичок

    Сообщения:
    6
    Симпатии:
    0
    вот тут статья по теме

    только не зацикливайтесь на выносе интерфейсов, как это со всеми происходит.

    ключевое это генератор исходного кода обработки бинарного протокола BlackBox. там очень много ссылок. и на исходники.

    останутся вопросы?
    велкам!
     
  4. Юрий Ботов

    Юрий Ботов Moderator Команда форума

    Сообщения:
    1.052
    Симпатии:
    175
    Да уж понял увидев полную статью на geektimes... не моя тема
     

Поделиться этой страницей