[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Протоколы обмена
yuriks75Дата: Пятница, 11.12.2015, 18:48 | Сообщение # 1
Группа: Проверенные
Сообщений: 3
Репутация: 0
Статус: Оффлайн
Ковырял протокол в похожей системе от "Ровалэнта". Застопорился на вычислении контрольных сумм. Может кто подскажет, вот примеры посылок данных в разных режимах: 
запрос-  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
Репутация: 32
Статус: Оффлайн
Пока разобрался только с CRC ответа. Это реверсированное CRC8 (обратный порядок следования). Полином 0x8C.

Кстати, третий байт в ответе (начиная счет с первого) - это количество байт после третьего байта и до CRC.
 
yuriks75Дата: Воскресенье, 13.12.2015, 23:49 | Сообщение # 3
Группа: Проверенные
Сообщений: 3
Репутация: 0
Статус: Оффлайн
Вот спасибо Сергей ! Благодаря вам вернулся к этой теме. Оказывается результат С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
Репутация: 32
Статус: Оффлайн
Если использовать специальную таблицу для реверсированного алгоритма CRC, то результат не нужно реверсировать. Во вложении файл с различными вариантами алгоритма CRC. Видно как отличаются алгоритмы формирования таблицы для реверированного и нереверсированного варианта CRC. Только там типы данных для использования с библиотекой Qt.
Прикрепления: crc.zip (1.0 Kb)
 
yuriks75Дата: Понедельник, 14.12.2015, 23:50 | Сообщение # 5
Группа: Проверенные
Сообщений: 3
Репутация: 0
Статус: Оффлайн
Спасибо. 
Еще пару общепознавательных вопросов:
- Имеют ли возможность Болидовские адресные датчики по команде включить свой светодиод (например для определения местоположения датчика с определенным адресом) ?  
- Как осуществляется заводская колибровка адресных дымовых извещателей (Болидовских или других известных вам) ? т.е. существует-ли спец софт чтобы "вогнать" выдаваемые показатели извещателя в допустимые рамки при чистой оптической камере или все определяется только параметрами электронных компанентов ? (вопрос к тому что имеется опыт ремонта адресных извещателей и после замены вышедшего из строя ИК светодиода на исправный, показания извещателя выходили за допустимые  рамки даже если ИК светодид брался из другого рабочего извещателя.)
 
arm-skifДата: Вторник, 15.12.2015, 09:09 | Сообщение # 6
Группа: Администраторы
Сообщений: 835
Репутация: 32
Статус: Оффлайн
Ничего подобного я в протоколе не находил. Спецсофт для калибровки извещателей тоже не встречал.
 
mrrugalevДата: Среда, 18.05.2016, 09:41 | Сообщение # 7
Группа: Проверенные
Сообщений: 21
Репутация: 0
Статус: Оффлайн
Не буду плодить новую тему, спрошу здесь. Возможно, как то получить протокол работы с пультом? Интересует работа с журналом событий
 
arm-skifДата: Среда, 18.05.2016, 09:51 | Сообщение # 8
Группа: Администраторы
Сообщений: 835
Репутация: 32
Статус: Оффлайн
Вы уж извините, я протокол Болида не буду открывать. Но вы сами, при помощи сниффера, можете посмотреть как происходит обмен программ с пультом.
 
mrrugalevДата: Среда, 18.05.2016, 11:30 | Сообщение # 9
Группа: Проверенные
Сообщений: 21
Репутация: 0
Статус: Оффлайн
Очень жаль, что вы решили пойти по пути Болида. Параллельно изобретая свои костыли.

Сообщение отредактировал mrrugalev - Среда, 18.05.2016, 11:32
 
arm-skifДата: Среда, 18.05.2016, 11:48 | Сообщение # 10
Группа: Администраторы
Сообщений: 835
Репутация: 32
Статус: Оффлайн
Протокол не мой, поэтому не мне его открывать.

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

Хоть расскажите что задумали реализовать. Интересно все таки.
 
mrrugalevДата: Среда, 18.05.2016, 12:05 | Сообщение # 11
Группа: Проверенные
Сообщений: 21
Репутация: 0
Статус: Оффлайн
Я вам ответил в ЛС, но могу здесь повторить: 
Мне нужно периодически забрать все события, сохранить их в БД, а дальше анализировать, строить отчеты и выполнять действия (отпр СМС, e-mail или еще что то) по тригеррам (определенным типам событий). Основная задача которую хочется получить на выходе: контроль рабочего времени и информирование о нештатных ситуациях (например снятие с охраны ключом охраны)
 
arm-skifДата: Среда, 18.05.2016, 12:31 | Сообщение # 12
Группа: Администраторы
Сообщений: 835
Репутация: 32
Статус: Оффлайн
Ответил в ЛС.
У скифа есть подсистема скриптов (сценариев). Все это можно сделать скриптами.
 
mrrugalevДата: Среда, 18.05.2016, 12:32 | Сообщение # 13
Группа: Проверенные
Сообщений: 21
Репутация: 0
Статус: Оффлайн
Да о костылях, грубовато получилось, прошу прощения. Но мне не совсем понятно ваше решение использовать собственный формат БД. Зачем изобретать велосипед если все уже придумано, стандартизировано, задокументировано и описано до нас. Делая собственный формат БД вам придется решать кучу вопросов: как реализовать многопользовательский режим работы (что будет если с одной записью будет работать несколько пользователей), как производить очистку БД (например от устаревших записей), резервное копирование, дефрагментация и тому подобное.  В любой СУБД это уже реализовано. Плюс с популярными БД можно работать напрямую (SQL запросы, выборки и т.д.) реализовывая функционал который которого у вас пока нет (тот же учет рабочего времени).
 
arm-skifДата: Среда, 18.05.2016, 12:44 | Сообщение # 14
Группа: Администраторы
Сообщений: 835
Репутация: 32
Статус: Оффлайн
До того как сделать Скиф (еще даже мыслей таких не было), я увлекся сборкой маленьких образов Linux. Размер образа был 20 Мб, на нем работали программы, написанные при помощи библиотеки Qt. Это был шок. ОС, библиотеки и программа занимали 20 Мб. Программы работали в графическом режиме. Я захотел написать маленькую программу, которая считывала события с пульта. Размер был критичен, поэтому SQL отпал.

Потом я конечно попробовал SQL, но скорость меня не впечатилила, или я не так пробовал. Медленно и громоздко по сравнению с обычными файлами.

Еще одна причина - мне проще делать сборки Скифа под разные ОС с как можно меньшим числом зависимостей от сторонних программ.
 
arm-skifДата: Среда, 18.05.2016, 13:09 | Сообщение # 15
Группа: Администраторы
Сообщений: 835
Репутация: 32
Статус: Оффлайн
Вот небольшая программка, она демонстрирует мой подход к БД в виде обычных файлов. Запустите несколько копий программы из одного каталога - и все они будут работать с одной БД. Это все что мне нужно от БД, SQL слишком избыточен для этих целей. Программа демонстрирует именно реальный режим добавления событий, т.е. по одному. В SQL конечно можно скопом добавить данные, но для конкретной задачи это будет неправильное сравнение.

В Скифе не так как в этой программе, но похоже. Код кстати очень простой, гораздо удобнее работать чем с запросами SQL. Все на шаблонных контейнерах.
 
arm-skifДата: Среда, 18.05.2016, 13:15 | Сообщение # 16
Группа: Администраторы
Сообщений: 835
Репутация: 32
Статус: Оффлайн
Забыл написать, что эта программа не просто работает с файлами, а синхронизирует работу всех копий программы при помощи межпроцессного взаимодействия. Так что коллизий не будет.

В программе, в таблице событий, можно редактировать данные.

Еще интересный момент - если добавить в БД очень много событий, например 10 млн., то все их можно увидеть и прокрутить бегунком прокрутки. И будет работать быстро. Данные загружаются именно по мере прокрутки, а не хранятся в памяти. Низкая латентность доступа к данным.
 
mrrugalevДата: Среда, 18.05.2016, 15:14 | Сообщение # 17
Группа: Проверенные
Сообщений: 21
Репутация: 0
Статус: Оффлайн
Цитата arm-skif ()
Вот небольшая программка, она демонстрирует мой подход к БД в виде обычных файлов. Запустите несколько копий программы из одного каталога - и все они будут работать с одной БД.
При запуске ошибка.

За описание скриптов спасибо, по моему это то, что нужно
Прикрепления: 5880861.png (7.4 Kb)
 
arm-skifДата: Среда, 18.05.2016, 15:20 | Сообщение # 18
Группа: Администраторы
Сообщений: 835
Репутация: 32
Статус: Оффлайн
Программа не нашла какой-то плагин библиотеки Qt. Вечером выясню какой именно. У меня Qt5 установлена, поэтому не ругается.

Пожалуйста. В дистрибутиве Скифа есть примеры скриптов.
 
arm-skifДата: Среда, 18.05.2016, 22:53 | Сообщение # 19
Группа: Администраторы
Сообщений: 835
Репутация: 32
Статус: Оффлайн
Программу перезалил, конечно если интересно.
 
mrrugalevДата: Вторник, 28.06.2016, 10:09 | Сообщение # 20
Группа: Проверенные
Сообщений: 21
Репутация: 0
Статус: Оффлайн
Цитата arm-skif ()
Программу перезалил, конечно если интересно.
Очень интересно

Добавлено (28.06.2016, 10:09)
---------------------------------------------
А все таки интересно возможно доработать программу для работы с БД (например Firebird)?

 
arm-skifДата: Вторник, 28.06.2016, 12:37 | Сообщение # 21
Группа: Администраторы
Сообщений: 835
Репутация: 32
Статус: Оффлайн
Пока в планах этого нет.
 
mrrugalevДата: Вторник, 28.06.2016, 13:41 | Сообщение # 22
Группа: Проверенные
Сообщений: 21
Репутация: 0
Статус: Оффлайн
Ну а есть хотя бы надежда, что вы напишете приличное описание собственного формата? Ведь забрать события из пульта мало, надо еще анализировать. А всякие "собственные" форматы заметно затрудняют эту задачу.
P.S. Без обид. Просто я не совсем понимаю такой подход, тем более для человека пришедшего из open sourse.
 
arm-skifДата: Вторник, 28.06.2016, 13:46 | Сообщение # 23
Группа: Администраторы
Сообщений: 835
Репутация: 32
Статус: Оффлайн
Через пару недель напишу описание БД. Я не делаю из этого секрета. Такой подход был выбран чтобы сделать базу данных максимально компактной, а не закрытой.
 
mrrugalevДата: Вторник, 28.06.2016, 14:22 | Сообщение # 24
Группа: Проверенные
Сообщений: 21
Репутация: 0
Статус: Оффлайн
Я понимаю, что это не секрет. Но я так-же понимаю, что у вас, как у единственного разработчика с документацией полный пипец. Т.к. просто некогда ее писать, да и вроде как незачем (сам был такой).
 
rukezДата: Воскресенье, 25.09.2016, 18:12 | Сообщение # 25
Группа: Проверенные
Сообщений: 2
Репутация: 0
Статус: Оффлайн
Миль пардон - форум не дает создавать темы до 3х постов так что спрошу тута:
Собственно вопрос - Болид же сам протокол не раздает - насколько легально использование протокола Орион в своем ПО?
Мы, в свое время, "выучили" протокол, когда ждали интеграции своего оборудования в арм, но в итоге все наработки похоронили на полке из-за непоняток с юридической стороны - сам Болид на этот счет отмалчивается, хотя мы его пытались активно теребить.
Сейчас мы хотим опубликовать все свои протоколы и часть кода своего программного обеспечения - за сим вспомнили и про Болид:
- Законно ли использовать (в коммерческом и не коммерческом ПО) и публиковать (в составе программного кода) открытую часть Ориона (которая без шифрования)?
- Аналогично про закрытую часть (которая с "шифрованием")?
- Законно ли прикидываться прибором в протоколе? Не пожарным, охранным т.е. не требующим сертификации. Речь о приблуде, которая прикидывается условно 10тью Сигнал-20 и гонит свои 200 шлейфов напрямую по интерфейсу в АРМ Орион

Спасибо за ответ!
 
arm-skifДата: Воскресенье, 25.09.2016, 20:55 | Сообщение # 26
Группа: Администраторы
Сообщений: 835
Репутация: 32
Статус: Оффлайн
Добрый день.
Алгоритмы и протоколы не патентуются и не подпадают под защиту авторского права, поэтому закон не нарушен. Под защиту авторского права попадает только ПО, - вот его то и нельзя использовать без разрешения правообладателя.

С другой стороны, Болид может сказать что система не работает по причине стороннего ПО или оборудования. Но я применяю протокол ОрионПро, а не Орион. Приборами управляет пульт С2000(М), а моё ПО выполняет роль продвинутого блока индикации, дополняющего пульт.

Насчёт публиковать или не публиковать я вам не подскажу, вам решать. Ничего противозаконного я в этом не вижу. Но лично моё мнение такое: протокол Болида, ему его и публиковать, я публиковать не буду. Я говорю про протокол ОрионПро. Протокол Орион и так уже есть в интернете, но он не структурирован, в формате обсуждения.

По поводу шифрования. Не знаю как сейчас, но раньше Орион и Орион Про обменивались с пультом без шифрования. Может сейчас уже включили, давно не смотрел. В интернете есть описание шифрования протокола Орион, но нет описания шифрования протокола ОрионПро. С шифрованием я столкнулся когда хотел посмотреть как PProg записывает в пульт конфигурацию по протоколу ОрионПро. Посмотрел, там другое шифрование, гораздо более сложное чем в протоколе Орион. Очень долго разбирался с этим шифрованием, разобрался.

Форум поправил, теперь новый пользователь может создавать темы.
 
rukezДата: Понедельник, 26.09.2016, 12:00 | Сообщение # 27
Группа: Проверенные
Сообщений: 2
Репутация: 0
Статус: Оффлайн
Спасибо большое!
п.с. в личку ответил
 
  • Страница 1 из 1
  • 1
Поиск:

Форма входа
Наш опрос
Для какой ОС будет востребована программа:
Всего ответов: 1482
Статистика