Протоколы обмена
|
|
yuriks75 | Дата: Пятница, 11.12.2015, 18:48 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 3
Статус: Оффлайн
| Ковырял протокол в похожей системе от "Ровалэнта". Застопорился на вычислении контрольных сумм. Может кто подскажет, вот примеры посылок данных в разных режимах: запрос- 00 E6 02 00 03 00 55 ответ- 00 03 1203 0D 02 01 04 01 03 00 00 00 00 00 00 00 00 00 00 00 B0 запрос- 00 E6 02 00 03 00 55 ответ- 00 03 12 03 0D 02 01 05 01 03 00 00 00 00 00 00 00 00 00 00 00 9C запрос- 00 E6 02 00 03 00 55 ответ- 00 03 12 06 0С 03 01 00 00 06 00 00 00 00 00 00 00 00 00 00 00 26 запрос- 00 E6 02 01 02 00 3A ответ- 01 01 08 E4 1D 13 58 13 01 6C 14 BA запрос- 00 E6 02 01 03 00 FE ответ- 01 03 00 FE Полагаю последний байт каждой посылки - нечто вроде контрольной суммы но как он вычисляется не пойму.
|
|
| |
arm-skif | Дата: Суббота, 12.12.2015, 14:08 | Сообщение # 2 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Пока разобрался только с CRC ответа. Это реверсированное CRC8 (обратный порядок следования). Полином 0x8C.
Кстати, третий байт в ответе (начиная счет с первого) - это количество байт после третьего байта и до CRC.
|
|
| |
yuriks75 | Дата: Воскресенье, 13.12.2015, 23:49 | Сообщение # 3 |
Группа: Проверенные
Сообщений: 3
Статус: Оффлайн
| Вот спасибо Сергей ! Благодаря вам вернулся к этой теме. Оказывается результат СRC тоже реверсировать нужно... А я наверно целую неделю полином подбирал пытаясь нужный результат получить (без его реверсирования ):) , хотя занялся этим ради спортивного интереса. По поводу третьего байта вы тоже абсолютно правильно подсказали. В запросе аналогичная ситуация только первые три байта не учитываются в расчете контрольной суммы, а количество информационных байт указывается соответственно в 6-м байте. (я просто мало примеров привел, есть например такие запросы : 00 E6 02 01 05 01 03 9C 00 E6 02 00 04 12 03 09 01 01 02 01 04 01 03 00 00 00 00 00 00 00 00 00 B5 )
|
|
| |
arm-skif | Дата: Понедельник, 14.12.2015, 06:12 | Сообщение # 4 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Если использовать специальную таблицу для реверсированного алгоритма CRC, то результат не нужно реверсировать. Во вложении файл с различными вариантами алгоритма CRC. Видно как отличаются алгоритмы формирования таблицы для реверированного и нереверсированного варианта CRC. Только там типы данных для использования с библиотекой Qt.
|
|
| |
yuriks75 | Дата: Понедельник, 14.12.2015, 23:50 | Сообщение # 5 |
Группа: Проверенные
Сообщений: 3
Статус: Оффлайн
| Спасибо. Еще пару общепознавательных вопросов: - Имеют ли возможность Болидовские адресные датчики по команде включить свой светодиод (например для определения местоположения датчика с определенным адресом) ? - Как осуществляется заводская колибровка адресных дымовых извещателей (Болидовских или других известных вам) ? т.е. существует-ли спец софт чтобы "вогнать" выдаваемые показатели извещателя в допустимые рамки при чистой оптической камере или все определяется только параметрами электронных компанентов ? (вопрос к тому что имеется опыт ремонта адресных извещателей и после замены вышедшего из строя ИК светодиода на исправный, показания извещателя выходили за допустимые рамки даже если ИК светодид брался из другого рабочего извещателя.)
|
|
| |
arm-skif | Дата: Вторник, 15.12.2015, 09:09 | Сообщение # 6 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Ничего подобного я в протоколе не находил. Спецсофт для калибровки извещателей тоже не встречал.
|
|
| |
mrrugalev | Дата: Среда, 18.05.2016, 09:41 | Сообщение # 7 |
Группа: Проверенные
Сообщений: 21
Статус: Оффлайн
| Не буду плодить новую тему, спрошу здесь. Возможно, как то получить протокол работы с пультом? Интересует работа с журналом событий
|
|
| |
arm-skif | Дата: Среда, 18.05.2016, 09:51 | Сообщение # 8 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Вы уж извините, я протокол Болида не буду открывать. Но вы сами, при помощи сниффера, можете посмотреть как происходит обмен программ с пультом.
|
|
| |
mrrugalev | Дата: Среда, 18.05.2016, 11:30 | Сообщение # 9 |
Группа: Проверенные
Сообщений: 21
Статус: Оффлайн
| Очень жаль, что вы решили пойти по пути Болида. Параллельно изобретая свои костыли.
Сообщение отредактировал mrrugalev - Среда, 18.05.2016, 11:32 |
|
| |
arm-skif | Дата: Среда, 18.05.2016, 11:48 | Сообщение # 10 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Протокол не мой, поэтому не мне его открывать.
О каких костылях идет речь? Программу я делаю в первую очередь для себя, поэтому возможно это и не костыли, а так и задумано изначально.
Хоть расскажите что задумали реализовать. Интересно все таки.
|
|
| |
mrrugalev | Дата: Среда, 18.05.2016, 12:05 | Сообщение # 11 |
Группа: Проверенные
Сообщений: 21
Статус: Оффлайн
| Я вам ответил в ЛС, но могу здесь повторить: Мне нужно периодически забрать все события, сохранить их в БД, а дальше анализировать, строить отчеты и выполнять действия (отпр СМС, e-mail или еще что то) по тригеррам (определенным типам событий). Основная задача которую хочется получить на выходе: контроль рабочего времени и информирование о нештатных ситуациях (например снятие с охраны ключом охраны)
|
|
| |
arm-skif | Дата: Среда, 18.05.2016, 12:31 | Сообщение # 12 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Ответил в ЛС. У скифа есть подсистема скриптов (сценариев). Все это можно сделать скриптами.
|
|
| |
mrrugalev | Дата: Среда, 18.05.2016, 12:32 | Сообщение # 13 |
Группа: Проверенные
Сообщений: 21
Статус: Оффлайн
| Да о костылях, грубовато получилось, прошу прощения. Но мне не совсем понятно ваше решение использовать собственный формат БД. Зачем изобретать велосипед если все уже придумано, стандартизировано, задокументировано и описано до нас. Делая собственный формат БД вам придется решать кучу вопросов: как реализовать многопользовательский режим работы (что будет если с одной записью будет работать несколько пользователей), как производить очистку БД (например от устаревших записей), резервное копирование, дефрагментация и тому подобное. В любой СУБД это уже реализовано. Плюс с популярными БД можно работать напрямую (SQL запросы, выборки и т.д.) реализовывая функционал который которого у вас пока нет (тот же учет рабочего времени).
|
|
| |
arm-skif | Дата: Среда, 18.05.2016, 12:44 | Сообщение # 14 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| До того как сделать Скиф (еще даже мыслей таких не было), я увлекся сборкой маленьких образов Linux. Размер образа был 20 Мб, на нем работали программы, написанные при помощи библиотеки Qt. Это был шок. ОС, библиотеки и программа занимали 20 Мб. Программы работали в графическом режиме. Я захотел написать маленькую программу, которая считывала события с пульта. Размер был критичен, поэтому SQL отпал.
Потом я конечно попробовал SQL, но скорость меня не впечатилила, или я не так пробовал. Медленно и громоздко по сравнению с обычными файлами.
Еще одна причина - мне проще делать сборки Скифа под разные ОС с как можно меньшим числом зависимостей от сторонних программ.
|
|
| |
arm-skif | Дата: Среда, 18.05.2016, 13:09 | Сообщение # 15 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Вот небольшая программка, она демонстрирует мой подход к БД в виде обычных файлов. Запустите несколько копий программы из одного каталога - и все они будут работать с одной БД. Это все что мне нужно от БД, SQL слишком избыточен для этих целей. Программа демонстрирует именно реальный режим добавления событий, т.е. по одному. В SQL конечно можно скопом добавить данные, но для конкретной задачи это будет неправильное сравнение.
В Скифе не так как в этой программе, но похоже. Код кстати очень простой, гораздо удобнее работать чем с запросами SQL. Все на шаблонных контейнерах.
|
|
| |
arm-skif | Дата: Среда, 18.05.2016, 13:15 | Сообщение # 16 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Забыл написать, что эта программа не просто работает с файлами, а синхронизирует работу всех копий программы при помощи межпроцессного взаимодействия. Так что коллизий не будет.
В программе, в таблице событий, можно редактировать данные.
Еще интересный момент - если добавить в БД очень много событий, например 10 млн., то все их можно увидеть и прокрутить бегунком прокрутки. И будет работать быстро. Данные загружаются именно по мере прокрутки, а не хранятся в памяти. Низкая латентность доступа к данным.
|
|
| |
mrrugalev | Дата: Среда, 18.05.2016, 15:14 | Сообщение # 17 |
Группа: Проверенные
Сообщений: 21
Статус: Оффлайн
| Цитата arm-skif ( ) Вот небольшая программка, она демонстрирует мой подход к БД в виде обычных файлов. Запустите несколько копий программы из одного каталога - и все они будут работать с одной БД. При запуске ошибка.
За описание скриптов спасибо, по моему это то, что нужно
|
|
| |
arm-skif | Дата: Среда, 18.05.2016, 15:20 | Сообщение # 18 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Программа не нашла какой-то плагин библиотеки Qt. Вечером выясню какой именно. У меня Qt5 установлена, поэтому не ругается.
Пожалуйста. В дистрибутиве Скифа есть примеры скриптов.
|
|
| |
arm-skif | Дата: Среда, 18.05.2016, 22:53 | Сообщение # 19 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Программу перезалил, конечно если интересно.
|
|
| |
mrrugalev | Дата: Вторник, 28.06.2016, 10:09 | Сообщение # 20 |
Группа: Проверенные
Сообщений: 21
Статус: Оффлайн
| Цитата arm-skif ( ) Программу перезалил, конечно если интересно. Очень интересноДобавлено (28.06.2016, 10:09) --------------------------------------------- А все таки интересно возможно доработать программу для работы с БД (например Firebird)?
|
|
| |
arm-skif | Дата: Вторник, 28.06.2016, 12:37 | Сообщение # 21 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Пока в планах этого нет.
|
|
| |
mrrugalev | Дата: Вторник, 28.06.2016, 13:41 | Сообщение # 22 |
Группа: Проверенные
Сообщений: 21
Статус: Оффлайн
| Ну а есть хотя бы надежда, что вы напишете приличное описание собственного формата? Ведь забрать события из пульта мало, надо еще анализировать. А всякие "собственные" форматы заметно затрудняют эту задачу. P.S. Без обид. Просто я не совсем понимаю такой подход, тем более для человека пришедшего из open sourse.
|
|
| |
arm-skif | Дата: Вторник, 28.06.2016, 13:46 | Сообщение # 23 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Через пару недель напишу описание БД. Я не делаю из этого секрета. Такой подход был выбран чтобы сделать базу данных максимально компактной, а не закрытой.
|
|
| |
mrrugalev | Дата: Вторник, 28.06.2016, 14:22 | Сообщение # 24 |
Группа: Проверенные
Сообщений: 21
Статус: Оффлайн
| Я понимаю, что это не секрет. Но я так-же понимаю, что у вас, как у единственного разработчика с документацией полный пипец. Т.к. просто некогда ее писать, да и вроде как незачем (сам был такой).
|
|
| |
rukez | Дата: Воскресенье, 25.09.2016, 18:12 | Сообщение # 25 |
Группа: Проверенные
Сообщений: 2
Статус: Оффлайн
| Миль пардон - форум не дает создавать темы до 3х постов так что спрошу тута: Собственно вопрос - Болид же сам протокол не раздает - насколько легально использование протокола Орион в своем ПО? Мы, в свое время, "выучили" протокол, когда ждали интеграции своего оборудования в арм, но в итоге все наработки похоронили на полке из-за непоняток с юридической стороны - сам Болид на этот счет отмалчивается, хотя мы его пытались активно теребить. Сейчас мы хотим опубликовать все свои протоколы и часть кода своего программного обеспечения - за сим вспомнили и про Болид: - Законно ли использовать (в коммерческом и не коммерческом ПО) и публиковать (в составе программного кода) открытую часть Ориона (которая без шифрования)? - Аналогично про закрытую часть (которая с "шифрованием")? - Законно ли прикидываться прибором в протоколе? Не пожарным, охранным т.е. не требующим сертификации. Речь о приблуде, которая прикидывается условно 10тью Сигнал-20 и гонит свои 200 шлейфов напрямую по интерфейсу в АРМ Орион
Спасибо за ответ!
|
|
| |
arm-skif | Дата: Воскресенье, 25.09.2016, 20:55 | Сообщение # 26 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Добрый день. Алгоритмы и протоколы не патентуются и не подпадают под защиту авторского права, поэтому закон не нарушен. Под защиту авторского права попадает только ПО, - вот его то и нельзя использовать без разрешения правообладателя.
С другой стороны, Болид может сказать что система не работает по причине стороннего ПО или оборудования. Но я применяю протокол ОрионПро, а не Орион. Приборами управляет пульт С2000(М), а моё ПО выполняет роль продвинутого блока индикации, дополняющего пульт.
Насчёт публиковать или не публиковать я вам не подскажу, вам решать. Ничего противозаконного я в этом не вижу. Но лично моё мнение такое: протокол Болида, ему его и публиковать, я публиковать не буду. Я говорю про протокол ОрионПро. Протокол Орион и так уже есть в интернете, но он не структурирован, в формате обсуждения.
По поводу шифрования. Не знаю как сейчас, но раньше Орион и Орион Про обменивались с пультом без шифрования. Может сейчас уже включили, давно не смотрел. В интернете есть описание шифрования протокола Орион, но нет описания шифрования протокола ОрионПро. С шифрованием я столкнулся когда хотел посмотреть как PProg записывает в пульт конфигурацию по протоколу ОрионПро. Посмотрел, там другое шифрование, гораздо более сложное чем в протоколе Орион. Очень долго разбирался с этим шифрованием, разобрался.
Форум поправил, теперь новый пользователь может создавать темы.
|
|
| |
rukez | Дата: Понедельник, 26.09.2016, 12:00 | Сообщение # 27 |
Группа: Проверенные
Сообщений: 2
Статус: Оффлайн
| Спасибо большое! п.с. в личку ответил
|
|
| |