BlackBox: генератор исходников обработки бинарного протокола

Наше хобби — конструировать и программировать.
Демонстрация готовых роботов и устройств построенных своими руками.

Re: BlackBox: генератор исходников обработки бинарного прото

Сообщение Romikgy » 16 янв 2018, 23:08

cheblin писал(а):
Romikgy писал(а):ИМХО у вас проблема в том что вы пришли ( и кичитесь этим , что не есть хорошо...) с Явы (Андроида) , в андрюше почти нет ограничений по производительности и размеру памяти , то же и по си шарпу...


да, програмирую одинакого хорошо на многих языках програмирования. мой любимый SCALA. создание кодогенераторов - это другой уровень програмирования, требуется глубокие знания не одного, а нескольких языков, и знание предмета.
давайте без теорий, откройте код по ссылке, и предметно критикуйте. я только за.
более того... готов платить за хорошие предложения по улучшению кода. готовы?

Romikgy писал(а): Может ваш вариант и хорош , в качестве "правильности" кода и он безопасен и перепроверен много раз... но быстродействие по сравнению с си вариантом будет проигрывать ... а с асмом ...
PS любые задачи можно решить на любых языках и процессорах , вопрос лишь в целесообразности ... запустили даже линукс на z80 ... только смысл в этом?


вот этого я ваще не понял. к чему этот поток сознания? а?

не вы один знаете много языков...
по поводу генерации кода думаю стоило бы посмотреть в сторону LLVM , у них достаточный опыт ...
если вы не понимаете о чем с вами общаются... это показывает ваш уровень ... и язвление не добавляет вам хороших оценок... имхо
die Wahrheit ist irgendwo da draußen
Аватара пользователя
Romikgy
 
Сообщения: 750
Зарегистрирован: 15 ноя 2009, 13:37
Откуда: Porto Franco "Odessa"

Re: BlackBox: генератор исходников обработки бинарного прото

Сообщение cheblin » 17 янв 2018, 03:24

setar писал(а):мне одному кажется что коллега MQTT разрабатывает ?

MQTT? на 8 битных контроллерах? через UART? фантастика!
MQTT только для таких жиробасов которые в TCP/IP умеют. типа ESP8266

А BlackBox - это инструмент, с помошью которого каждый, сам себе может создать свой MQTT с блэкджеком... :good:
Ничего лишнего, вне зависимости от масштаба участвующих сторон, передаем через любые доступные каналы коммуникации (UART,SPI....) только такие данные которые требуются, в сжатом виде.
BlackBox: генератор исходных кодов (C,C#, JAVA) обработки высоко-оптимизированного, бинарного протокола обмена, по спецификации.
Аватара пользователя
cheblin
 
Сообщения: 46
Зарегистрирован: 12 янв 2018, 15:02
Откуда: Пекин, Китай
Skype: china_it_support
прог. языки: SCALA, JAVA, C, C#, DART...
ФИО: Чикирев Сергей

Re: BlackBox: генератор исходников обработки бинарного прото

Сообщение Angel71 » 17 янв 2018, 06:10

168я/328я мега не жиробасы, они даже на фоне копеечных stm32f030f4 очень сильно попроще. тем не менее стеки tcp/ip под них есть. легковесный uip упоминал, он и на ардуине вполне работает https://github.com/ntruchsess/arduino_uip. для mqtt под ардуино уно в выдаче много чего мелькает, т.е. вроде что-то есть. вот первая попавшаяся http://sources.shawacademy.com/dartzon/TinyMQTT. не пользовался, так что на сколько легковесная/урезанная, на сколько нормально реализовано, понятия не имею.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18

Re: BlackBox: генератор исходников обработки бинарного прото

Сообщение cheblin » 17 янв 2018, 12:18

Angel71 писал(а):168я/328я мега не жиробасы, они даже


не жиробасы - это восьмибитные контроллеры.
STM8 например.

на большой летательной пепеятке.
или технологическая линия, десяток датчиков, два десятка исполнительных устройств. раскидано это все на площади 300 кв. метров.
всюду теже 8 битники типа ибо их мощи хватает выше крыши, связь наладили где то SPI, где то UART, теперь задача наладить коммуникацию. ну и что делать? в ручную код писать? я это проходил и не раз. в итоге появился BlackBox, который себя прекрасно показал. делюсь. не хочешь не бери
BlackBox: генератор исходных кодов (C,C#, JAVA) обработки высоко-оптимизированного, бинарного протокола обмена, по спецификации.
Аватара пользователя
cheblin
 
Сообщения: 46
Зарегистрирован: 12 янв 2018, 15:02
Откуда: Пекин, Китай
Skype: china_it_support
прог. языки: SCALA, JAVA, C, C#, DART...
ФИО: Чикирев Сергей

Re: BlackBox: генератор исходников обработки бинарного прото

Сообщение setar » 17 янв 2018, 14:03

взять генератор прошивок souliss использующий бинарный протокол MaCaco
Аватара пользователя
setar
Site Admin
 
Сообщения: 10989
Зарегистрирован: 04 окт 2004, 12:58
Откуда: St.Petersburg
Skype: taranenko.sergey
ФИО: Сергей Тараненко

Re: BlackBox: генератор исходников обработки бинарного прото

Сообщение cheblin » 17 янв 2018, 16:02

setar писал(а):взять генератор прошивок souliss использующий бинарный протокол MaCaco

O! хоть что-то интересное!

большое спасибо ценное сообшение, очень интересный проект.

чем он интересен?
тем, что он бы просто не появился, если бы в то время был бы BlackBox. :)
а своим существованием он подтверждает, наличие проблемы, необходимаости её решать и благодарной аудитории. (кстати надо будет им накидать ссылок на BlackBox.)

имея BlackBox пацаны сели бы и забацали MaCaco за 5 минут. и даже бы назнания этому проекту не дали, настолько бы всё было просто.

а в итоге что мы имеем? сели пацаны и договорились. давайте зададим один фиксированный пакет и условимся как мы будем его использовать в завистмомти от его id. этакое can...

но с пакетами фиксированной, предопределенной длинны возникает жуткий оверхед при передачи данных. хотя при том малом объеме передаваемых данных, на котороое это все расчитвно, этим можно и принебрегать.

удивил объём кода. при таких скромных планах, он слишком велик. мой код значительно скромнее. и это при кодогенерации!

========================================

в любом случае setar Вам большое человеческое спасибо. за наводку, потрачу пару вечеров на разборку

потыкаю палочкой goto ненавистников :D

какой ужастный стиль!!!

читаем тут
This is a small implementation of the IP and TCP protocols (as well as
some basic ICMP stuff). The implementation couples the IP, TCP and the
application layers very tightly. To keep the size of the compiled code
down, this code also features heavy usage of the goto statement.


64 goto :ROFL:

Angel71, давай оправдывайся :Bravo:
BlackBox: генератор исходных кодов (C,C#, JAVA) обработки высоко-оптимизированного, бинарного протокола обмена, по спецификации.
Аватара пользователя
cheblin
 
Сообщения: 46
Зарегистрирован: 12 янв 2018, 15:02
Откуда: Пекин, Китай
Skype: china_it_support
прог. языки: SCALA, JAVA, C, C#, DART...
ФИО: Чикирев Сергей

Re: BlackBox: генератор исходников обработки бинарного прото

Сообщение Angel71 » 18 янв 2018, 01:26

cheblin писал(а):на большой летательной пепеятке.
или технологическая линия, десяток датчиков, два десятка исполнительных устройств. раскидано это все на площади 300 кв. метров.
всюду теже 8 битники типа ибо их мощи хватает выше крыши, связь наладили где то SPI, где то UART, теперь задача наладить коммуникацию. ну и что делать? в ручную код писать? я это проходил и не раз. в итоге появился BlackBox, который себя прекрасно показал. делюсь. не хочешь не бери

пром контроллеры, скада и вперёд. а в твоём примере это называется сначала делает, потом огребает и после этого всё-равно не думает. шучу, почти. если серьёзно, всё зависит от обстакановки и что лучше, некий простенький самопал или более-менее нормальная промавтоматика, это уже не для сферических притягиваний за уши.

завязывай с дикими надписями большими буквами.

ты путаешь "нельзя, никогда и ни при каких обстоятельствах. по тому, что нельзя" и "считается плохим стилем".
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18

Re: BlackBox: генератор исходников обработки бинарного прото

Сообщение cheblin » 18 янв 2018, 06:11

Angel71 писал(а):пром контроллеры, скада и вперёд.

у меня есть вариант получше. купить готовую продукцию. ну нафиг все эти сложности: технологические линии, контроллеры.

Angel71 писал(а):ты путаешь "нельзя, никогда и ни при каких обстоятельствах. по тому, что нельзя" и "считается плохим стилем".

пложой стиль - писать о плохом стиле, найдя в коде пару goto.
BlackBox: генератор исходных кодов (C,C#, JAVA) обработки высоко-оптимизированного, бинарного протокола обмена, по спецификации.
Аватара пользователя
cheblin
 
Сообщения: 46
Зарегистрирован: 12 янв 2018, 15:02
Откуда: Пекин, Китай
Skype: china_it_support
прог. языки: SCALA, JAVA, C, C#, DART...
ФИО: Чикирев Сергей

Re: BlackBox: генератор исходников обработки бинарного прото

Сообщение Angel71 » 18 янв 2018, 06:51

вариант получше это производство без производства. круто!
а что поделаешь, если генератор выдаёт код "лучше не видеть, что под капотом"?
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18

Re: BlackBox: генератор исходников обработки бинарного прото

Сообщение cheblin » 18 янв 2018, 10:19

Angel71 писал(а):генератор выдаёт код "лучше не видеть, что под капотом"?

побольше конкретики бы не помешало.
//=========================================
кстати так и не услышал объяснения по поводу наличия goto в С#. В момент проектирования C# у его создателей перед глазами был

С с goto,
JAVA без goto,
нытьё "экспердов" насколько плохо использоваать goto

и в итоге в C# goto есть.

объяснения типа архитекторы C# тупые не катит....
моё мнение по goto простое. дело не в самих конструкциях языка, а в "прокладке между клавой и сиденьем"

говорить обстрактно о том, что использование goto плохой стиль - глупость.
допустимо говорить только о неуместном использовании goto в конкретном месте.
это относится к любым языковым конструкциям. многоуровневый if вместо switch, безумные макросы и проч.
BlackBox: генератор исходных кодов (C,C#, JAVA) обработки высоко-оптимизированного, бинарного протокола обмена, по спецификации.
Аватара пользователя
cheblin
 
Сообщения: 46
Зарегистрирован: 12 янв 2018, 15:02
Откуда: Пекин, Китай
Skype: china_it_support
прог. языки: SCALA, JAVA, C, C#, DART...
ФИО: Чикирев Сергей

Re: BlackBox: генератор исходников обработки бинарного прото

Сообщение Angel71 » 18 янв 2018, 13:27

и не говори, твой проект и побольше конкретики пока слабо совместимы. одна документация чего стоит. а как почитаешь, что в обсуждениях на различных ресурсах, так кроме чуть-чуть про саас, описание и прочее, а в основном вообще о птичках.
наверно написать что-то надо было про шарп, прежде чем что-то ожидать, не? или про него было что-то в ссылках?
в экосистеме дотнета много чего есть, чего можно было и не делать. есть вещи, которых очень сильно не хватает, но их нет, по крайней мере пока. и что с того? посчитали, что goto нужно реализовать, реализовали. может это они ради того, что бы с делфи быстрей и активней начали переходить. или в ранних версиях индусы оутсорсили, которым goto очень нужен был, хотя бы для увеличения количества кода. накой гадать? хочешь узнать, почему разработчики сделали так, а не иначе, у них и спроси. из тех программ, чей код изучал за последнии годы, goto не припомню ни разу - даже там, где его в принципе можно было впихнуть. есть куча подходов, как можно и без него - тот же yield иногда активно используется.
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18

Re: BlackBox: генератор исходников обработки бинарного прото

Сообщение cheblin » 18 янв 2018, 13:57

Angel71 писал(а):в экосистеме дотнета много чего есть, чего можно было и не делать. есть вещи, которых очень сильно не хватает, но их нет, по крайней мере пока. и что с того? посчитали, что goto нужно реализовать, реализовали. может это они ради того, что бы с делфи быстрей и активней начали переходить. или в ранних версиях индусы оутсорсили, которым goto очень нужен был, хотя бы для увеличения количества кода.

понятно, тупые.... вариант, что они знают поболее тебя, даже не рассматривается. :good:

Angel71 писал(а): из тех программ, чей код изучал за последнии годы, goto не припомню ни разу - даже там, где его в принципе можно было впихнуть. есть куча подходов, как можно и без него - тот же yield иногда активно используется.

только взял боец гитару - сразу видно гармонист! :ROFL:

в С# в конструкции switch проваливаться сквозь ветки и прыгать без goto невозможно.
не, ну если в С# програмировать одной мышкой, то да, goto не встретится.
BlackBox: генератор исходных кодов (C,C#, JAVA) обработки высоко-оптимизированного, бинарного протокола обмена, по спецификации.
Аватара пользователя
cheblin
 
Сообщения: 46
Зарегистрирован: 12 янв 2018, 15:02
Откуда: Пекин, Китай
Skype: china_it_support
прог. языки: SCALA, JAVA, C, C#, DART...
ФИО: Чикирев Сергей

Re: BlackBox: генератор исходников обработки бинарного прото

Сообщение Angel71 » 18 янв 2018, 14:06

"индусский код" из примера
Код: Выделить всё
case 1:
  cost += 25;
break;
case 2:
  cost += 25;
  goto case 1;
case 3:
  cost += 50;
   goto case 1;

немного пределываем
Код: Выделить всё
case 1:
  cost += 25;
break;
case 2:
  cost += 50;
break;
case 3:
  cost += 75;
break;

и вообще, нормальное описание коробочки, уход от саас и конфигурирование протокола не на яп будет? или игнорировать твою тему?
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18

Re: BlackBox: генератор исходников обработки бинарного прото

Сообщение cheblin » 18 янв 2018, 15:06

игнорируй конечно. заранее спасибо
BlackBox: генератор исходных кодов (C,C#, JAVA) обработки высоко-оптимизированного, бинарного протокола обмена, по спецификации.
Аватара пользователя
cheblin
 
Сообщения: 46
Зарегистрирован: 12 янв 2018, 15:02
Откуда: Пекин, Китай
Skype: china_it_support
прог. языки: SCALA, JAVA, C, C#, DART...
ФИО: Чикирев Сергей

Re: BlackBox: генератор исходников обработки бинарного прото

Сообщение Aseris » 20 янв 2018, 01:59

По поводу goto и динмической алокации памяти.

goto очень плохо обрабатываются анализаторами кода. а вобще чиайте MISRA. 3-5 лет назад не все С компиляторы коректно с ним работали в сложных конструкциях. И лично мое, я пинаю за goto и больше одного return в функции больно джуниоров ногами. Ибо делать ревю кода с подобными конструкциями дорого по времени и черевато ошибками при расширении кода.

Динамическое использование памяти ето ад для тестов.

Обьясняю задача A хочет динамически 100 байт B - 200, C - 300, heap - 500.
a+b - ok , a+b - ok a+b+c - hard fault. А динамический анализ памяти очень нетривиальная задача для сложных систем.

Обычно выделяются статически буферы.

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

Добавлено спустя 4 минуты 19 секунд:
Re: BlackBox: генератор исходников обработки бинарного протокола
P.S. к наличию goto в языках - поросенок тоже дом построил из соломы :) и он даже некоторое время стоял
Аватара пользователя
Aseris
 
Сообщения: 1142
Зарегистрирован: 01 сен 2009, 14:58
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python

Пред.След.

Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14