Jump to content

Recommended Posts

С CRC проблемы действительно есть, грабли не только со значениями CRC 77, но и с 117, 137, 43, 215, 232

И что с этим делать , проксоренным...

ничего, это хеш хеша. Можно просто запоминать, но это имхо не спортивно. Это не протокол, добраться до протокола можно расшифровав тело посылки(как не знаю пока).

Вот это и есть "голая правда" протокола Болид!

Вынужден огорчить, это не она )

Edited by ferrum

абыр абыр абырвалг...

Link to comment
Share on other sites

там ответ надо формировать соответствующий, надо вручную сконфигурить в pprog' е. О какой таблице речь? CRC вычисляется программно, в запросах от контроллера несоответствий вычисленного и принятого замечено не было.

Ничего там не надо формировать. Ответ у всех приборов прост - тип, версия. Далее переходит в разряд "постояльцев" (плюсуется 0х80) и идут обмены на присутствие и подмену.

CRC , повторяю, Болид расчитывает табличным способом, а не полиномом. Вы взяли полином с весом 0х18 - это Даласовский полином. CRC8 кодов ключей расчитывайте им (хотя возможно Болид и тут подлянку кинул) .

Табличный способ быстрее, особенно на слабых контроллерах.

С CRC проблемы действительно есть, грабли не только со значениями CRC 77, но и с 117, 137, 43, 215, 232

Проблеммы будут с любым сочетанием байтов, при условии попадания на подводный камень в таблице. Используйте табличный способ подсчета CRC8.

Edited by nekto
Link to comment
Share on other sites

Ответ у всех приборов прост - тип, версия. Далее переходит в разряд "постояльцев" (плюсуется 0х80) и идут обмены на присутствие и подмену.

Это я знаю, пробовал-получается. Просто еще не сделал в своем эмуляторе (пока). Насчет CRC наверное вы правы, я просто наобум попробовал этот алгоритм, вроде получилось. :yes:

Понимаю, что мои поиски еще не закончены, поэтому буду рад дальнейшему сотрудничеству здесь на форуме.

Может сообща что-то и расколупаем. :yes:

Link to comment
Share on other sites

LIMF – источники питания High-End от MORNSUN со стандартным функционалом на DIN-рейку
На склад Компэл поступили ИП MORNSUN (крепление на DIN-рейку) с выходной мощностью 240 и 480 Вт. Данные источники питания обладают 150% перегрузочной способностью, активной схемой коррекции коэффициента мощности (ККМ; PFC), наличием сухого контакта реле для контроля работоспособности (DC OK) и возможностью подстройки выходного напряжения. Источники питания выполнены в металлическом корпусе, ПП с компонентами покрыта лаком с двух сторон, что делает ее устойчивой к соляному туману и пыли. Изделия соответствуют требованиям ANSI/ISA 71.04-2013 G3 на устойчивость к коррозии, а также нормам ATEX для взрывоопасных зон.
Подробнее>>

ага, 2 направление колупания есть, корректный CRC и шифрованные команды\данные. Кстати протокол один и шифрованный и нешифрованный, и там все понятно интуитивно. Понял это когда научился ставить\снимать ШС, управлять состоянием реле сигнала-20. Команды\данные выглядят красиво, а не "1;0;254;1;255;254;"

абыр абыр абырвалг...

Link to comment
Share on other sites

Выгодные LED-драйверы для решения любых задач

КОМПЭЛ представляет со склада и под заказ широкий выбор LED-драйверов производства MEAN WELL, MOSO, Snappy, Inventronics, EagleRise. Линейки LED-драйверов этих компаний, выполненные по технологии Tunable White и имеющие возможность непосредственного встраивания в систему умного дома (димминг по шине KNX), перекрывают практически полный спектр применений: от простых световых указателей и декоративной подсветки до диммируемых по различным протоколам светильников внутреннего и наружного освещения. 

Подобрать LED-драйвер>>

Команды красиво выглядят только в посылках от программ типа шлейфес, апрог и т.п. Посылки от контроллера С2000 не такие красивые, как я уже говорил, один и тот же запрос присутствия не похож на предыдущий.

Link to comment
Share on other sites

ER10450 – литий-тионилхлоридная батарейка FANSO EVE Energy формата ААА
Компания FANSO EVE Energy расширила номенклатуру продукции, разработав новый химический источник тока (ХИТ) – батарейку литий-тионилхлоридной электрохимической системы (Li-SOCl2; номинальное напряжение 3,6 В) типоразмера ААА – ER10450. Батарейка имеет бобинную конструкцию (тип Energy) и предназначена для долговременной работы при малых токах.
Батарейка может применяться в приборах учета ресурсов, в различных датчиках, устройствах IoT и в других приборах и устройствах, в которых требуется компактный ХИТ соответствующей емкости.
Подробнее >>

Команды красиво выглядят только в посылках от программ типа шлейфес, апрог и т.п. Посылки от контроллера С2000 не такие красивые, как я уже говорил, один и тот же запрос присутствия не похож на предыдущий.

ты ведь не видел их, потомучто они зашифрованы. Разные потому-что, ключ меняется с каждым запросом(предположительно инкрементируется но не факт).

Уверяю тебя они красивые. И причем здесь программы? Скажи какая программа позволяет управлять ШС и реле?Только оперативная задача Ориона и ядро Ориона-Про, дак и то в шифрованном виде. Почему я и говорю что протокол один и он красивый. Разработчики же не мазохисты. Шифрование лишь слой, сетевой уровень. Один раз написали шифратор-дешифратор и забыли, а протокол красивый и интуитивно понятный вроде того что ты назвал ребусом.

Edited by ferrum

абыр абыр абырвалг...

Link to comment
Share on other sites

Своими словами я хотел сказать, что команды, указанные в посте #18- лишь частный случай, они УЖЕ зашифрованы, т.е. в таком виде их не встретить в посылках от С2000.

Похоже, мы не совсем понимаем друг друга :bye:

Link to comment
Share on other sites

Отчего же, понимаем. И почему не встретить, встретить. Ты просто подвергни дешифрации то что говорит С2000(пока мы этого неумеем). Сам подумай зачем разные протоколы плодить( для программ, для прииборов), он один. Если б они были разные, зачем в протоколе "для программ" реализовать функции, которые не одна из болидовских программ не использует? А ведь в МК память программ ограничена.

Все просто :

- Старший бит адреса включен - подключается слой дешифрации, с которого данные приходят в декодирование команд\данных аля "Че за команда пришла";

- Старший бит адреса выключен - тело пакета уходит в декодирование команд\данных аля "Че за команда пришла" сразу, минуя дешифрацию

они УЖЕ зашифрованы,

Что там зашифрованного? Есть Коды комманд, есть передаваемые параметры. Номер ШС 10 - значит в параметре команды постановки стоит число 10, номер реле 3 - значит параметр команды управления реле "3"

Условно в 4-х байтном теле пакета, 2 байт- команды, 2 байта параметров

Некоторые известные мне команды:

1-Поиск прибора

5-Чтение конфигурации

9-Запись конфигурации

13 - Запрос типа\версии

15 - Установка адреса

19 - Управление ШС

21 - Управление Реле

25 - Запрос состояния ШС

27 - Запрос АЦП

Ответ на команду почти всегда команда+1, тоесть всегда четное число

Edited by ferrum

абыр абыр абырвалг...

Link to comment
Share on other sites

Некоторые известные мне команды:

1-Поиск прибора

5-Чтение конфигурации

9-Запись конфигурации

13 - Запрос типа\версии

15 - Установка адреса

19 - Управление ШС

21 - Управление Реле

25 - Запрос состояния ШС

27 - Запрос АЦП

Ну это частный случай, скорее для Сигнал-20.

Есть команды и по 7,8 и более байт.

К примеру можно послать команду длиной 8 байт на запрос одного шлейфа, а можно послать команду длиной 30 байт на запрос состояния нескольких шлейфов.

На счет старшего бита адреса - после его присвоения, пульт исключает данный адрес из поиска приборов (который он делает постоянно), Работать продолжает с уже найденным со смещением 80H.

Link to comment
Share on other sites

Ну это частный случай, скорее для Сигнал-20.

Есть команды и по 7,8 и более байт.

К примеру можно послать команду длиной 8 байт на запрос одного шлейфа, а можно послать команду длиной 30 байт на запрос состояния нескольких шлейфов.

На счет старшего бита адреса - после его присвоения, пульт исключает данный адрес из поиска приборов (который он делает постоянно), Работать продолжает с уже найденным со смещением 80H.

Уже не частный, сейчас работаю С2000-БИ, многие команды подходят, естественно не все, хотябы потомучто у БИ нет АЦП,ШС,Реле.

Насчет бита все просто: Бит - признак зашифрованности пакета и все.

абыр абыр абырвалг...

Link to comment
Share on other sites

Уже не частный, сейчас работаю С2000-БИ, многие команды подходят, естественно не все, хотябы потомучто у БИ нет АЦП,ШС,Реле.

Насчет бита все просто: Бит - признак зашифрованности пакета и все.

Ну многие подходят конечно))) , например - сброс прибора - [ADDR][06h][00h][17h][00h][00h][CRC8]

А точно шифрован? Можете проверить запрос\ответ шлейфа с упрога и пульта , и сравнить их?

Link to comment
Share on other sites

Можно преверить, но долго. Во всяком случае не сейчас. На 99,99% Запроссы пульта и Shleifes будут разные, т.к.пульт шифрует, а Shleifes нет. Но истинное содержание пакетов одинаковое.

Да так видно что все красиво.

В твоем формате ребуса:

[ADDR][06h][00h][15h][01h][01h][CRC8] -Включить реле №1

[ADDR][06h][00h][15h][01h][00h][CRC8] -Выключить реле №1

[ADDR][06h][00h][15h][01h][03h][CRC8] -Включить реле №1 на время

[ADDR][06h][00h][15h][02h][01h][CRC8] -Включить реле №2

[ADDR][06h][00h][15h][03h][01h][CRC8] -Включить реле №3

3 -байт номер реле

4- байт действие 0 -выкл 1-вкл 3-вкл на время ,... всякие там мигания по маске итд

Тоже самое с постановкой на охрану, только там в параметра номер ШС и действие Снять\взять.. и комманда соответственно не 0х15h а 0х13h

Edited by ferrum

абыр абыр абырвалг...

Link to comment
Share on other sites

[ADDR][06h][00h][15h][01h][03h][CRC8] -Включить реле №1 на время

А где время то?)) - эта команда = вызову ранее запрограммированной тактики управления из памяти прибора?

И попробуй дать теперь такую команду Сигналу-20 - [ADDR+80h][06h][00h][15h][01h][01h][CRC8]

Edited by nekto
Link to comment
Share on other sites

Как где время, в настройках реле сигнала. Тактика программируется только для локального управления сосоянием ШС, при этом централизованное управление игнорируется.

Попробывал твой пакет, удивительно, но управляет)

Вот оба обмена: (В десятичном и шеснадцатитричном)

Порт COM2 открыт

1 Запрос: 1 6 0 21 1 1 78

Ответ : 1 5 22 1 1 77

2 Запрос: 129 6 0 21 1 1 164

Ответ : 129 5 22 1 1 134

Порт COM2 открыт

1 Запрос: 01 06 00 15 01 01 4E

Ответ : 01 05 16 01 01 4D

2 Запрос: 81 06 00 15 01 01 A4

Ответ : 81 05 16 01 01 86

Edited by ferrum

абыр абыр абырвалг...

Link to comment
Share on other sites

Порт COM2 открыт

1 Запрос: 01 06 00 15 01 01 4E

Ответ : 01 05 16 01 01 4D

2 Запрос: 81 06 00 15 01 01 A4

Ответ : 81 05 16 01 01 86

Ну и где ваша шифрация?)))

Старший бит не для этого)

Плюс еще у пульта и программы команды немного отличаются, но функция остается прежней.

Отличие скорее всего нужно, чтоб прибор знал, кто им управляет, пульт или программа.

Вероятно это учитывается для синхронизации данных и времени и еще чего-нить..

Link to comment
Share on other sites

Мужики! Пока вы не разбежались (уж очень долго эта ветка была мертвой), скажите, у кого- нибудь мой эмулятор работает или только у меня (есть опасения, что до первой смены конфига С2000- проверю скоро)?

Link to comment
Share on other sites

Мужики! Пока вы не разбежались (уж очень долго эта ветка была мертвой), скажите, у кого- нибудь мой эмулятор работает или только у меня (есть опасения, что до первой смены конфига С2000- проверю скоро)?

У меня не работал, но мне это не очень интересно было, интересен был исходник

абыр абыр абырвалг...

Link to comment
Share on other sites

В исходнике ничего интересного нет)), програмлю на асме, все остальное идет лесом)), хотя работу программы наблюдал в отладчике - зациклилась она на приемке одной команды и умерла)

(есть опасения, что до первой смены конфига С2000- проверю скоро)?

А вы не подгоняйте под ответ ;) , одну ошибку уже вам указали - CRC8

Link to comment
Share on other sites

CRCTable : array [0..255] of byte = (
0,94,188,226,97,63,221,131,194,156,126,32,163,253,31,65,
157,195,33,127,252,162,64,30,95,1,227,189,62,96,130,220,
35,125,159,193,66,28,254,160,225,191,93,3,128,222,60,98,
190,224,2,92,223,129,99,61,124,34,192,158,29,67,161,255,
70,24,250,164,39,121,155,197,132,218,56,102,229,187,89,7,
219,133,103,57,186,228,6,88,25,71,165,251,120,38,196,154,
101,59,217,135,4,90,184,230,167,249,27,69,198,152,122,36,
248,166,68,26,153,199,37,123,58,100,134,216,91,5,231,185,
140,210,48,110,237,179,81,15,78,16,242,172,47,113,147,205,
17,79,173,243,112,46,204,146,211,141,111,49,178,236,14,80,
175,241,19,77,206,144,114,44,109,51,209,143,12,82,176,238,
50,108,142,208,83,13,239,177,240,174,76,18,145,207,45,115,
202,148,118,40,171,245,23,73,8,86,180,234,105,55,213,139,
87,9,235,181,54,104,138,212,149,203,41,119,244,170,72,22,
233,183,85,11,136,214,52,106,43,117,151,201,74,20,246,168,
116,42,200,150,21,75,169,247,182,232,10,84,215,137,107,53);

KeyCode: array[1..8] of byte;
KeyCode[ 8 ] := 0;

For j := 1 to 7 do
KeyCode[ 8 ] := CRCTable[ KeyCode[ 8 ] xor KeyCode[ j ] ];

Оно чели?

Edited by ferrum

абыр абыр абырвалг...

Link to comment
Share on other sites

Оно чели?

Ну там камень один, где мне лень сравнивать, вот Болидовская.

00h,5Eh,0BCh,0E2h,61h,3Fh,0DDh,83h,0C2h,9Ch,7Eh,20h,0A3h,0FDh,1Fh,41h,9Dh,0C3h,21h,7Fh,0FCh,0A2h,40h,1Eh,5Fh,01h,0E3h,0BDh,3Eh,60h,82h,0DCh,23h,7Dh,9Fh,0C1h,42h,1Ch,0FEh,0A0h,0E1h,0BFh,5Dh,03h,80h,0DEh,3Ch,62h,0BEh,0E0h,02h,5Ch,0DFh,81h,63h,3Dh,7Ch,22h,0C0h,9Eh,1Dh,43h,0A1h,0FFh,46h,18h,0FAh,0A4h,27h,79h,9Bh,0C5h,84h,0DAh,38h,66h,0E5h,0BBh,59h,07h,0DBh,85h,67h,39h,0BAh,0E4h,06h,58h,19h,47h,0A5h,0FBh,78h,26h,0C4h,9Ah,65h,3Bh,0D9h,87h,04h,5Ah,0B8h,0E6h,0A7h,0F9h,1Bh,45h,0C6h,98h,7Ah,24h,0F8h,0A6h,44h,1Ah,99h,0C7h,25h,7Bh,3Ah,64h,86h,0D8h,5Bh,05h,0E7h,0B9h,8Ch,0D2h,30h,6Eh,0EDh,0B3h,51h,0Fh,4Eh,10h,0F2h,0ACh,2Fh,71h,93h,0CDh,11h,4Fh,0ADh,0F3h,70h,2Eh,0CCh,92h,0D3h,8Dh,6Fh,31h,0B2h,0ECh,0Eh,50h,0AFh,0F1h,13h,4Dh,0CEh,90h,72h,2Ch,6Dh,33h,0D1h,8Fh,0Ch,52h,0B0h,0EEh,32h,6Ch,8Eh,0D0h,53h,0Dh,0EFh,0B1h,0F0h,0AEh,4Ch,12h,91h,0CFh,2Dh,73h,0CAh,94h,76h,28h,0ABh,0F5h,17h,49h,08h,56h,0B4h,0EAh,69h,37h,0D5h,8Bh,57h,09h,0EBh,0B5h,36h,68h,8Ah,0D4h,95h,0CBh,29h,77h,0F4h,0AAh,48h,16h,0E9h,0B7h,55h,0Bh,88h,0D6h,34h,6Ah,2Bh,75h,97h,0C9h,4Ah,14h,0F6h,0A8h,74h,2Ah,0C8h,96h,15h,4Bh,0A9h,0F7h,0B6h,0FCh,0Ah,54h,0D7h,89h,6Bh,35h,00h

Link to comment
Share on other sites

Дизассемблировал болидовскую прогу?

Спасибо.

Я так понимаю последний 00h вне таблицы?

Обсчитал пару пакетов, CRC совпадает с тем что выдает прибор. Завтра на железе попробую, дома нет приборов. Хотя я также посчитал и по той таблице что привел сам, там тоже совпал, но я всего пару пакетов попробывал, поэтому возможно "камни" не вылезли

Edited by ferrum

абыр абыр абырвалг...

Link to comment
Share on other sites

Дизассемблировал болидовскую прогу?

Спасибо.

Я так понимаю последний 00h вне таблицы?

Обсчитал пару пакетов, CRC совпадает с тем что выдает прибор. Завтра на железе попробую, дома нет приборов. Хотя я также посчитал и по той таблице что привел сам, там тоже совпал, но я всего пару пакетов попробывал, поэтому возможно "камни" не вылезли

Да, последний на всяк случай)

Кстати прибор определяет кто его хозяин, пульт или компьютер и отвечает разными командами. Признак пульта - 0FFh

Пробуй))

[ADDR][06h][ANY][01h][ANY][000h][CRC8] - компьтер ведущий

[ADDR][06h][ANY][01h][ANY][0FFh][CRC8] - пульт ведущий

Разница в длине ответа, прибор пульту недосказывает кое-что, чтоб не нагружать его.

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

Edited by nekto
Link to comment
Share on other sites

Обсчитал пару пакетов, CRC совпадает с тем что выдает прибор. Завтра на железе попробую, дома нет приборов.

Проверяю на Сигнал-20, С2000-БИ, С2000-2 полет нормальный

Edited by ferrum

абыр абыр абырвалг...

Link to comment
Share on other sites

Здесь согласен , что моя гипотеза идет лесом

Ну гипотеза имеет право на жизнь.

"Шифрация" вроде типо присутствует, но не зависит от старшего бита, скорее всего прибор запоминает, что с ним общается пульт и принимает извращенные команды.

В логе снифера при включении реле с пульта не наблюдается функция 15h. Какой именно третий байт пролетает отловить сложно...

Кстати какой микроконтроллер применен в пульте?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...