Printable Version of Topic

Click here to view this topic in its original format

VIZIT Group Forum _ Многоквартирные домофоны _ Программа для совмещения ключей с разного оборудования

Posted by: Alexey_A Oct 31 2011, 11:22

День добрый!
Имеется 3 БУД420 необходимо совместить в один из них ключи от двух других.. Имеется программатор DM08 но к сожалению стандартная программа этого сделать не может. WINHEX'ом складывается впечатление, что делаю както криво... Может у кого-то есть такая программа чтобы сделать это все автоматизировано?

Posted by: petr5555 Oct 31 2011, 12:31

Скорее всего Вам придётся вбивать ключи в память вручную.

Posted by: alex_t2 Oct 31 2011, 17:56

Пришлите мне на alexbzv@hotbox.ru файлы, которые надо сложить, я Вам отправлю суммарный.

Posted by: Alexey_A Nov 1 2011, 07:55

Отправил!

Posted by: alex_t2 Nov 1 2011, 09:36

Ловите результат

Posted by: alex_t2 Nov 12 2011, 20:48

Суммирование выполнялось этой программой.
Тут просто небольшое описание.
[attachmentid=430]
На следующей неделе планирую выложить для скачивания демку.

Posted by: Alexey_A Nov 21 2011, 14:05

Цитата(alex_t2 @ Nov 12 2011, 20:48) *


На следующей неделе планирую выложить для скачивания демку.

Ждем с нетерпением

Posted by: alex_t2 Nov 21 2011, 16:12

Сегодня вечером соберу и откомпилирую установщик.

Posted by: alex_t2 Nov 21 2011, 19:17

Ну что-ж.
Не судите строго, погрешности пока есть наверняка, потому что выкладываю, что называется, "с пылу с жару".
Сразу скажу о чем знаю.
На вкладке дополнительных установок для КТМ есть опция "режим блокировки" - она пока пустая, то есть её состояние не отображает реальность. Просто пока не дошли руки до неё.
Для Элтиса DP400 нет опции "номер диспетчера" и "режим фильтра клонов". Причины те же.
То, что список оборудования невелик - основные силы были направлены на написание движка, модули для работы с оборудованием будут дописываться.
Если есть какие-то непонятки - спрашивайте. Возможно то, что кажется простым и очевидным мне, совсем не очевидно на самом деле.
То, что нет нулевой квартиры, так привычной для работавших с Визитом - сделано для унификации, т.к. практически у всех других производителей нулевой номер или вообще отсутствует, или обозначает отсутствие привязки ключа. Поэтому нулевая Визитовская квартира в этой программе - 100 или 200.
Предупреждение при конвертации "Ключ (или несколько ключей) не удалось разместить в память блока"
может означать как переполнение памяти, например попытались запихать в N100 больше 600 ключей, так и то, что мастер-ключи, имевшиеся, например в прошивке Z5, не поддерживаются, к примеру, в N100 (просто нет там мастер-ключа).
Для максимально правильного переноса ключей программе требуется знать первый номер квартиры блока вызова. Поэтому если поле минимального номера квартиры не заполнено, то программа будет просить его заполнить. В том оборудовании, где в прошивке запоминается номер первой квартиры, это поле будет заполнено автоматически, но у Визита, например, такого поля нет, поэтому там требуется заполнить вручную.
Собственно установщик в zip-архиве.
Можно пробовать.[attachmentid=431]

Posted by: Vitalik Nov 21 2011, 20:10

Сейчас буду пробовать! smile.gif

У меня программа не видит программатор-выдает ошибку. Да и пользоваться я б все равно не смог программой потому что БУД-302К-80 и К20 там нет sad.gif

Posted by: alex_t2 Nov 21 2011, 20:21

Программатор она и не увидит.
По крайней мере Визитовский. Чтобы его подцепить, нужно знать протокол обмена, его мне Визит не выдавал smile.gif
Точно так же программа, например, от Элтиса не увидит Визитовский порт или Метакомовский. И наоборот.
Здесь тоже не будет чуда - программатор будет видеть только свой.
Программу я выложил именно для попробовать, может быть что-то подправить. До выпуска непосредственно железяки с розетками smile.gif
БУД-302К-80 добавлю. Нужен только файл прошивки блока. Лучше, конечно, непосредственно блок, для тестирования. У нас в конторе не применяются эти БУДы, поэтому пока добавить не могу.

Posted by: Vitalik Nov 21 2011, 20:29

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

Жаль конечно!Программа отличная, успехов wink.gif

Posted by: alex_t2 Nov 21 2011, 20:32

Спасибо на добром слове.


В принципе, достаточно было бы вообще только 2 файла, первый - в котором установлено смещение, например 10, а во втором - 90.
Остальные опции судя по всему один-в-один БУД302М.

Posted by: petr5555 Nov 25 2011, 17:52

Спасибо за программу.
Сейчас делаю такую, но для работы в автономном устройстве
с возможностью автоматической перезаписи баз ключей с одного
типа домофона (контроллера) на другой.
Пока тестирую режим для обмена базами ключей с Элтисов (серия 100,300,400,БЭКУ)
на Z5R и обратно.


Posted by: alex_t2 Nov 25 2011, 18:23

С Элтиса 300 400, да и БЭКУ перенос в Z5 без применения дополнительной платы конвертера не имеет смысла.
Я понимаю, что для Вас сваять такую платку (которая на лету режет код до трех байт и пересчитывает контрольную сумму) тоже не проблема.
У меня она сделана на базе tiny13. Надо бы сделать небольшую серию, а то периодически паять по мере необходимости неудобно.
Кстати, вполне возможно, пользовалась бы спросом.
По крайней мере, закрывать калитки на общей территории - самое то.
А если поработать немного над этой платкой, чтобы обучить чтению цифрала да метакома (места в памяти тиньки осталось больше половины) - цены ей не будет. smile.gif

Posted by: petr5555 Nov 25 2011, 18:42

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

Posted by: alex_t2 Nov 25 2011, 19:00

У меня старая программа, написанная лет пять назад, тоже читает почти все, что встречается в городе. И позволяет конвертировать между собой некоторые варианты, те которые были нужны мне в работе.
Там, правда. конвертируются только ключи. В новой версии я хотел добиться полного переноса всех возможных настроек. Поэтому тут модули сборки-разборки прошивки получаются в разы сложнее.
Для примера только код обработки Элтис DP400 содержит на эту минуту 429 строк кода.
Я тоже сначала пытался извращаться программно, пытаясь получить полный код ключа из того, что сохранено в памяти блока. Потом решил, что проще сделать аппаратный перекодировщик. Платка размером 1х2 см. Влезает вместе с Z5 в отсек.
Думал было покупать платы защищённых ключей от Райкмана (там мега48) и перешивать - они дешевые, но великоваты по размеру - в замок не лезут. придется делать свою платку.


Posted by: petr5555 Nov 26 2011, 09:50

А зачем в Элтисе возиться с переносом всех установок, тем более, что в 100 и 400 серии они разные.
В основном надо перетащить только ключи. Да и при переносе базы с панелей одного вида, например
400-х, в программе АРМ сначала в файл записывается информация с будущей панели, а потом на неё
накладывается база ключей с меняемой панели. Иначе новая панель не воспримет информацию.
Так что сами настройки легче выставить с панели.
А вот корректировку баз ключей надо ввести. В Z5R, да и в Элтисе 100-й серии ключи физически
не стираются и остаются в памяти, меняется только атрибут ключа, поэтому можно сделать программу
для уборки таких ключей.
Думаю, что это будет полезная функция, для периодической очистки памяти.

Posted by: alex_t2 Nov 26 2011, 11:04

На самом деле, перенос всех возможных установок - очень удобно, тем более, что это получается практически само, вследствие особенностей построения программы. Достаточно при написании модуля работы с конкретным типом блока, сохранять однотипные настройки в одних и тех же элементах рабочего массива.
В АРМе у Элтиса, на мой взгляд, реализовано весьма неудобно, невнятно, и есть даже ошибки (неточности). У новых прошивок имеется опция "игнорирование серийного номера", поэтому в моей проге возможно и прямое, без чтения данных с нового блока Элтиса, конвертирование.
Корректировка баз, кстати, имеется. Это тоже получается само.
Так как алгоритм работы программы подразумевает сначала разборку прошивки на массивы установок, все изменения делаются только в этих массивах, и после КАЖДОГО изменения происходит пересборка прошивки. Поэтому достаточно считать прошивку, при этом удаленные ключи в рабочий массив не попадут, а при любом изменении (можно просто поставить-снять какую-нибудь галочку) прошивка будет собрана заново, естественно без удаленных ключей.

Posted by: petr5555 Nov 26 2011, 18:34

Да, это удобно. Вот это и хочу сделать, но только на контроллере.
Единственное, что в Элтисе сделали неудобно - это использование
памяти самого контроллера в сериях 300 и 400.
Всё нужно переписывать через ключ 1996.

Posted by: alex_t2 Nov 26 2011, 19:49

Это мелочи. По крайней мере у Элтиса все довольно логично организовано в памяти (если не обращать внимание на местами инверсную логику опций - типа "запрет разрешения отзвонки" smile.gif )
Вот Цифрал - это да....
сейчас добавляю его обработку, так мозг просто выносит.

Posted by: petr5555 Nov 27 2011, 14:41

Цифрал - это "вещь в себе", хотя и отпочковался от Элтиса.

Posted by: NED1979 Nov 27 2011, 17:39

А почему программа не видит файл с расширением bin / Видит только kcd ! в инструкции вроде описано что может открывать bin . Хочу открыть дамп в bin-не !!ПАМЯТЬ EEPROM 24C16! Там только тип файла kcd ?????

Posted by: NED1979 Nov 27 2011, 17:51

Цитата(NED1979 @ Nov 27 2011, 17:39) *

А почему программа не видит файл с расширением bin / Видит только kcd ! в инструкции вроде описано что может открывать bin . Хочу открыть дамп в bin-не !!ПАМЯТЬ EEPROM 24C16! Там только тип файла kcd ?????




Всё !! Сам разобрался !!!

Posted by: petr5555 Nov 30 2011, 08:02

Посмотрел в программе контроллер Z5R-5000.
Да, намудрили программисты с записью кодов ключей.
Нет чтобы оставить прежнюю структуру записи, там всё чётко и понятно!
А тут разбили на части со смещением.
Кстати, Алексей, не поделитесь дампами памяти для Цифрала?
Тоже хочу рассмотреть структуру записи ключей в разных панелях и контроллерах этой фирмы.

Моя почта: marka-555@bk.ru

Posted by: alex_t2 Nov 30 2011, 22:12

Да, с z5r-5000 я повозился немного, пока понял принцип сохранения. Это, наверно, для ускорения поиска так сделали. Заметили, как шустро этот контроллер работает с базой на 4-5 тысяч ключей?
С Цифралом все очень нехорошо. Там есть 2 варианта записи ключей Даллас (даже 4, если еще учитывать контроллеры) и три варианта записи ключей цифрал. Разработчики мало того, что не заботились о преемственности форматов, так похоже даже специально вводили изменения. В итоге обеспечить там такую четкость работы, как с Элтисом, не получается. Перенос баз возможен, но не во всех направлениях. Местами частичный.
http://raikmann.spb.ru/domoconf/Setup.zip я выложил вариант с тремя версиями Цифрала 2094.1 В перспективе буду там обновлять программу, по мере продвижения работы. По этой ссылке будет доступна последняя скомпилированная версия.

Posted by: petr5555 Dec 1 2011, 07:31

Правильно, Цифрал старался всё сделать так, чтобы обращались со всеми вопросами
только к ним. Вспомните только их "знаменитые" фирменные ключи.
Но потом, правда, ввели поддержку и DS1990.

Спасибо за новую версию! Буду разбираться с ключами дальше.
Я пока реализовал только редактирование баз ключей ELTIS(100) и Z5R/1000
и перевод баз с ELTIS(100) на Z5R/1000 и обратно.
Вроде работает.

Posted by: alex_t2 Dec 1 2011, 10:04

Там в этой версии программы есть еще одна неточность работы с Цифралом. Суть в том, что при коррекции базы версии 2.1 в более старшие, изменённый код ключа может совпасть с уже существующим в базе (довольно редкая ситуация, но при значительном количестве ключей вероятность высока - практически единична). Программа, естественно, запишет такой дубль только один раз, но ключей-то будет два. И оба окажутся на одном номере квартиры, и будут отзванивать в неё. Далеко не факт, что оба они будут у одного человека. Поэтому во избежание жалоб на левый отзвон, перепишу процедуру записи так, чтобы при дублировании кода он переписывался на нуль-квартиру. Т.е. открывал, но без отзвона.

Posted by: petr5555 Dec 1 2011, 12:44

А может лучше вообще проверять номера ключей на совпадение и убирать дубли?

Я пока детально ещё не смотрел Цифрал.
Пишу программу для Z5R/5000. Кстати там всё очень даже логично, ищется ключ по младшему
байту и при совпадении переходим наверх и сравниваем остальную часть номера. А если
младшие байты закончились (появилось FFh), то закончена проверка и даётся сигнал, что
такого номера ключа нет в памяти. То есть скорость перебора номеров увеличивается в разы.

Возник вопрос по этим контроллерам, последний номер ключа специально повторяется 2 раза
и пишется второй раз как стёртый?

Posted by: alex_t2 Dec 1 2011, 13:18

Да, последний номер обязательно повторяется. Байт Ех обозначает, видимо, конец массива - стоп-байт. Стертый ключ маркируется не Ех, а 0х.
под х подразумевается ниббл из номера ключа.
Если встретился 0х, то поиск кода продолжается дальше, а если Ех, то останавливается, даже если там есть еще что-то.
Т.е. там старший байт надо формировать как (байт & 0x0F) | 0xE0. Ну или 0х20, 0х40, в общем поняли.
Номера в программе проверяются на совпадение, само собой, и дубли убираются. Просто в момент корректировки дублем может стать ключ, который до этого не был таким. Там просто у цифрала есть косяк в прошивке, из-за которого это и возникает. В итоге получаются два разных ключа, которые записаны одинаково. На какую квартиру их? Вот эту неоднозначность и хочу убрать, для большей красоты.


Posted by: petr5555 Dec 2 2011, 06:25

Понятно, спасибо!

Posted by: alex_t2 Jan 14 2012, 18:49

Обнаружилась фича контроллера Z5R-1000.
Оказывается залить базу из Визита (и Элтиса новых серий, соответственно, да и вообще любую базу) в Z5R не только возможно, а даже очень просто, и все прекрасно работает без каких бы то ни было доработок контроллера.
Позор на мои седины, как не заметил этого раньше?
Похоже, что это будет справедливо и для Z5R-5000.

Posted by: petr5555 Jan 14 2012, 21:17

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

Posted by: alex_t2 Jan 14 2012, 21:33

Атрибуты - то изначально менялись. Просто обратил внимание на "неиспользуемый" бит в статусе ключа. Оказывается он задаёт тип ключа "короткий код". Соответственно при установленном бите благополучно игнорируются все байты кода кроме трех младших, что и требуется.

Posted by: petr5555 Jan 15 2012, 10:13

В статусе, в смысле один из битов в атрибуте ключа? Этот бит работает для контроллера Z5R?
О преобразовании:
В контроллере ведь используется 5 байт кода, а, например, в Визите - три, а в Элтисе 100-й
серии все восемь. Из контроллера, а тем более из Визита в Элтис 100-й серии преобразование
может быть неправильным.

Posted by: alex_t2 Jan 15 2012, 10:35

В контроллере используются 5.5 байт кода ключа. Обратите внимание, что байт признаков - это "логическое или" половины байта кода с битами типов ключа. Практически мне ещё не встречались ключи, где бы в старших 4 БИТАХ кода были не нули, так что преобразование из Z5 в Элтис ЦП-100 будет правильным с вероятностью 99.9%
Вы, я думаю, обратили внимание, что под тип ключа в Z5 зарезервировано 4 БИТА, а использованы вроде как только три. На самом деле бит 4 определяет "короткий код", и действует одновременно с основными битами. Т.е. обычный ключ с коротким кодом имеет тип не 40, а 50.


Posted by: petr5555 Jan 15 2012, 11:55

Ну да признак ключа = 20h или 40h, или 60h. Понятно, значит при коротком коде контроллер будет сравнивать
только 3 младших байта номера, записанного в контроллер.
Из Z5R в Элтис можно преобразовать. Это не проблема.
Проблема из Визита в Элтис. И когда номера ключей плавно переползут в старшие байты номера.

Posted by: alex_t2 Jan 15 2012, 12:04

Из Визита в старый Элтис - да, корректно невозможно.
Теперь получается зато из Визита в Z5. Очень нужная опция.

Posted by: petr5555 Jan 15 2012, 18:21

Я пробовал перегружать из Элтиса (ТМ10) в Z5R и потом обратно, всё работает.
Одновременно можно убрать удалённые ключи из памяти Элтиса или из Z5R.
Правда теряется распределение по квартирам. Но если использовать в Z5R только 3 байта
номера, то можно сохранить номер квартиры в старшем байте.
Пока при обратной операции номера ключей из Z5R просто дополняются старшими нулями, формируется
контрольная сумма и записывается всё это в Элтис на любую квартиру.

С Элтисом и Визитом такой трюк не проходит, так как есть всего 3 байта номера, а иногда
номер содержит больше цифр и сформировать корректно контрольную сумму невозможно.

В новых Элтисах 300 и 400 серии стали использовать память самого контроллера и им пришлось
урезать номера ключей, поэтому преобразование скорее всего будет работать, но я пока не проверял.
Может на следующей неделе займусь такой проверкой, благо есть 420 -я панель.
Потом напишу о результатах.



Posted by: alex_t2 Jan 15 2012, 20:27

Так а что там проверять?
Из Z5R в любой Элтис - легко! Даже в такую экзотику, как "Элтис-Визит". Это уже лет 5 как практикую.
А теперь получается, что и обратно тоже.
Полигон для тестирования у меня огромный. На этой неделе проверю во всех вариантах.
P.S. Бонусом еще прикрутил опцию восстановления ошибочно стертой базы в Z5 smile.gif

Posted by: petr5555 Jan 16 2012, 07:12

А Элтис-Визит тоже использует память самого контроллера Mega16 и номер там хранится не
полностью. Поэтому и проблем нет.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)