WebSDK/Workflow
Содержание
Структура базы данных
Встроенные функции
Работа с конверторами.
Таблица "hw_converters"
Поле | Тип | Описание | Значения |
---|---|---|---|
id | INT | Уникальный ID конвертора в системе |
AUTOINCREMENT |
SerNum | INT | Серийный номер конвертора | |
Type | INT | Тип конвертора |
0 - Z397IP V1 1 - Z397IP V2 |
LastActiveTime | TIMESTAMP | Время последнего соединения | |
Description | VARCHAR | Текстовое описание конвертора | |
Password | TEXT | Пароль шифрование данных, передаваемых конвертером серверу и обратно. | |
License | TEXT | Текстовая строка лицензии для данного контроллера. | |
AuthKey | TEXT | Ключ идентификации пользователя (В SDK не используется) | |
MaxCtrlLic | INT | Максимальное количество контроллеров для текущей лицензии (возвращается конвертором при установке лицензии) |
|
ExpDateLic | TIMESTAMP | Дата окончания действия текущей лицензии (возвращается конвертором при установке лицензии) |
|
ValidLic | INT | Валидность лицензии |
0 - не установлена 1 - Валидна 2 - Неверный SN 3 - Истекло время |
Interval |
INT |
Интервал через который конвертер передаёт данные серверу |
|
Запись в этой таблице создаётся автоматически, при первом соединении конвертора с сервером.
Данные передаваемые конвертору и принимаемые от него шифруются с помощью пароля шифрования, поэтому сразу после создания записи работа с конвертором невозможна, пока не будет заполнено поле "Password".
Поле LastActiveTime обновляется при каждом соединении с конвертором.
Конвертор не начинает работать с контроллерами до тех пор, пока не получит валидную лицензию (из поля License) от сервера. После установки лицензии конвертор возвращает параметры лицензии, которые записываются в поля MaxCtlLic и ExpDateLic.
В поле Description может быть записана любая текстовая инфорсация о контроллере, например место установки.
Вывод всех конверторов в базе данных и их параметров.
Для прлучения информации обо всех конверторах, имеющихся в базе данных, можно дать следующий SQL запрос:
mysql> SELECT * FROM converters;
Ответ:
*************************** 1. row *************************** id: 1 SerNum: 8 Type: 0 LastActiveTime: 2012-02-08 15:02:58 Description: NULL BackAdr: NULL BackPort: NULL Password: NULL License: NULL AuthKey: NULL MaxCtrlLic: NULL 1 row in set (0.00 sec)
В ответе содержится информация об единственном конверторе № 8, который был только добавлен в систему. Поля Password и License не заполнены, поэтому данные от этого конвертора не обрабатываются.
Установка/изменение пароля шифрования
SQL запрос для установки пароля:
mysql> UPDATE converters -> SET Password ="1234567890" -> WHERE id = 1;
Ответ:
Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0
Пароль шифрования в базе должен совпадать с паролем, записанным в конфигурационном файте конвертера.
Установка/изменение лицензии
SQL запрос для установки лицензии:
mysql> UPDATE converters -> SET License = "5FB7A1CB03E9913C449B1E62AD8E6E909A1797F6AE162A2C8FF7" -> WHERE id = 1;
Ответ:
Query OK, 0 rows affected (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 0
Строка лицензии должна быть длинной 52 символа (26 шеснадцатеричных цифр).
Установка/изменение текстового описания
SQL запрос для установки описания
mysql> UPDATE converters -> SET Description = "Test Converter" -> WHERE id = 1;
Ответ:
Query OK, 0 rows affected (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 0
-
Работа с контроллером
Таблица "hw_controllers"
Поле | Тип | Описание | Значения |
---|---|---|---|
id | INT | Уникальный ID контроллера в системе | |
id_Converters | INT | ID конвертора, к которому подключен контроллер | |
LastActiveTime | TIMESTAMP |
Время последней передачи данных от контроллера | |
SerNum | INT | Серийный номер контроллера | |
Type | INT | Тип контроллера | |
Active | INT | Признак активированности контроллера в системе. |
0 - Не активирован 1 - Активирован |
Connected | INT | Признак наличия соединения между контроллером и конвертором |
0 - Нет связи 1 - Есть связь |
Записи в этой таблице создаются автоматически при получении первых данных о контроллере.
После добавления записи поле Active = 0. При этом конвертер не опрашивает контроллер и команды для него не отсылаются. Для начала работы с контроллером необходимо установить Active = 1.
Вывод всех контроллеров в базе данных
Запрос SQL:
mysql> SELECT * FROM controllers;
Ответ:
+----+---------------+---------------------+--------+------+--------+-----------+ | id | id_Converters | LastActiveTime | SerNum | Type | Active | Connected | +----+---------------+---------------------+--------+------+--------+-----------+ | 1 | 1 | 2012-02-08 15:02:58 | 132 | 37 | 1 | 1 | | 2 | 1 | 2012-02-08 15:02:58 | 139 | 37 | 1 | 1 | | 3 | 1 | 2012-02-08 12:29:50 | 151 | 37 | 0 | 0 | | 4 | 2 | 2012-01-10 22:19:23 | 155 | 37 | 0 | 0 | +----+---------------+---------------------+--------+------+--------+-----------+ 4 rows in set (0.00 sec)
Вывод контроллеров, для конкретного конвертора
Запрос SQL:
mysql> SELECT * FROM controllers WHERE id_Convertors = 2;
Ответ:
*************************** 1. row *************************** id: 4 id_Converters: 2 LastActiveTime: 2012-01-10 22:19:23 SerNum: 155 Type: 37 Active: 0 Connected: 0 1 rows in set (0.00 sec)
Таблица "hw_ctrl2xinfo"
Поле | Тип | Описание | Значения |
---|---|---|---|
id | INT | Уникальный ID | |
id_controllers | INT | Уникальный ID контроллера в системе | |
id_Converters | INT | ID конвертора, к которому подключен контроллер | |
SerNum | INT | Серийный номер контроллера | |
Type | INT | Тип контроллера | |
Version | INT | Версия ПО контроллера | |
Description | VARCHAR | Текстовое описание контроллера | |
Info | VARCHAR |
Информационные строки контроллера | |
MaxCard | INT | Максимальное число ключей, хранимых в контроллере | |
MaxEvent | INT | Максимальное число событий, хранимых в контроллере | |
WritePointer | INT | Указатель записи памяти событий | |
X2 | INT | Признак включения режима удвоения памяти | |
Join | INT | Признак включения режима объединения банков | |
Weigand | INT | Признак хранения ключей в формате Weigand | |
NumBank | INT | Количество банков памяти ключей | |
SyncRead | INT | Признак выполненой синхронизации по чтению | |
Записи в данной таблице создаются автоматически при приходе первых данных о контроллере.
После создания поле SyncRead = 0, и при активации контроллера автоматически посылаются команды чтения подробной информации о контроллере. После прихода ответа на эти команды заполняются все поля записи (кроме Description) и поле SyncRead устанавливается в 1.
Поле Description может содержать любую текстовую информацию о контроллере, например место установки.
Вывод расширенной информации о контроллере и его параметрах
Запрос SQL:
mysql> SELECT * FROM ctrl2xinfo WHERE id_Controllers = 1;
Ответ:
*************************** 1. row *************************** id: 1 id_controllers: 1 id_Converters: 1 SerNum: 132 Type: 37 Version: 1281 Description: NULL Info: Network controller <Z5R-Net> MaxCard: 2024 MaxEvent: 2048 ReadPointer: 7952 WritePointer: 0 X2: 1 Join: 0 Weigand: 0 NumBank: 1 SyncRead: 1 1 row in set (0.00 sec)
Таблица "hw_ctrl2xtimes"
Поле | Тип | Описание | Значение |
---|---|---|---|
id | INT | Уникальный ID | |
id_Controllers | INT | Уникальный ID контроллера в системе | |
Bank | INT | Номер банка памяти | |
T1 | INT | Время импульса открывания замка | |
T2 | INT | Время ожидания открывания двери | |
T3 | INT | Время ожидания закрывания двери | |
SyncRead | INT | Признак выполненой синхронизации по чтению | |
SyncWrite | INT | Признак выполненой синхронизации по записи | |
Записи в данной таблице создаются автоматически при приходе первых данных о контроллере.
После создания поле SyncRead = 0, и при активации контроллера автоматически посылаются команда чтения времён из контроллере. После прихода ответа на эту команду заполняются все поля записи поле SyncRead устанавливается в 1.
Чтение времён для дверей
Запрос SQL:
mysql> SELECT * FROM ctrl2xtimes WHERE id_Controllers = 1;
Ответ:
*************************** 1. row *************************** id: 1 id_Controllers: 1 Bank: 0 T1: 10 T2: 0 T3: 0 SyncRead: 1 SyncWrite: 1 1 row in set (0.03 sec)
Получение времён для дверей из контроллера
Запрос SQL:
mysql> UPDATE ctrl2xtimes SET SyncRead = 0 WHERE id_Controllers = 1;
Ответ:
Query OK, 1 rows affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
Запись времён для дверей
Запрос SQL:
mysql> UPDATE ctrl2xtimes SET T1 = 20, T2 = 10 WHERE id_Controllers = 1;
Ответ:
Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
Таблица "hw_ctrl2xtimezones"
Поле |
Тип |
Описание |
Значения |
---|---|---|---|
id |
INT |
Уникальный ID |
|
id_Controllers |
INT |
Уникальный ID контроллера в системе |
|
Bank |
INT |
Номер банка памяти |
|
ZoneNum |
INT |
Номер времянной зоны |
|
DayMask |
INT |
Маска дней недели |
|
Begin |
TIME |
Время начала действия зоны |
|
End |
TIME |
Время конца действия зоны |
|
SyncRead |
INT |
Признак выполненой синхронизации по чтению |
|
SyncWrite |
INT |
Признак выполненой синхронизации по записи |
|
Записи в данной таблице (по 7 записей для каждого банка памяти) создаются автоматически при приходе первых данных о контроллере.
После создания поле SyncRead = 0, и при активации контроллера автоматически посылаются команда чтения временных зон из контроллере. После прихода ответа на эти команды заполняются все поля записей и поле SyncRead устанавливается в 1.
Чтение временных зон
Запрос SQL:
mysql> SELECT * FROM ctrl2xtimezones WHERE id_Controllers = 1;
Ответ:
+----+----------------+------+---------+---------+----------+----------+----------+-----------+ | id | id_Controllers | Bank | ZoneNum | DayMask | Begin | End | SyncRead | SyncWrite | +----+----------------+------+---------+---------+----------+----------+----------+-----------+ | 1 | 1 | 0 | 0 | 127 | 00:00:00 | 23:59:00 | 1 | 1 | | 2 | 1 | 0 | 1 | 127 | 00:00:00 | 23:59:00 | 1 | 1 | | 3 | 1 | 0 | 2 | 127 | 00:00:00 | 23:59:00 | 1 | 1 | | 4 | 1 | 0 | 3 | 127 | 00:00:00 | 23:59:00 | 1 | 1 | | 5 | 1 | 0 | 4 | 127 | 00:00:00 | 23:59:00 | 1 | 1 | | 6 | 1 | 0 | 5 | 127 | 00:00:00 | 23:59:00 | 1 | 1 | | 7 | 1 | 0 | 6 | 127 | 00:00:00 | 23:59:00 | 1 | 1 | +----+----------------+------+---------+---------+----------+----------+----------+-----------+ 7 row in set (0.03 sec)
Получение временных зон из кортроллера
Запрос SQL:
mysql> UPDATE ctrl2xtimezones SET SyncRead = 0 WHERE id_Controllers = 1;
Ответ:
Query OK, 7 rows affected (0.00 sec) Rows matched: 7 Changed: 7 Warnings: 0
Изменение временных зон
Запрос SQL:
mysql> UPDATE ctrl2xtimezones SET Begin = "12:00:00", End="18:00:00", SyncWrite = 0 -> WHERE id_Controllers = 1 AND ZoneNum = 0;
Ответ:
Query OK, 0 rows affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0
Таблица "hw_ctrl2xcards"
Поле |
Тип |
Описание |
Значения |
---|---|---|---|
id |
INT |
Уникальный ID |
|
id_Controllers |
INT |
Уникальный ID контроллера в системе |
|
Bank |
INT |
Номер банка памяти |
|
NumInCtrl |
INT |
Порядковый номер ключа в памяти контроллера |
|
Code |
VARCHAR |
Код ключа |
|
Flags |
INT |
Флаки ключа |
|
Permission |
INT |
Маска временных зон ключа |
|
SyncRead |
INT |
Признак выполненой синхронизации по чтению |
|
SyncWrite |
INT |
Признак выполненой синхронизации по записи |
|
Чтение ключа
Запрос SQL:
mysql> SELECT * FROM ctrl2xcards WHERE id_Controllers = 1 AND Bank = 0 AND NumInCtrl = 0;
Ответ:
+----+----------------+------+-----------+------+-------+------------+----------+-----------+ | id | id_Controllers | Bank | NumInCtrl | Code | Flags | Permission | SyncRead | SyncWrite | +----+----------------+------+-----------+------+-------+------------+----------+-----------+ | 1 | 1 | 0 | 0 | NULL | 85 | 0 | 0 | 1 | +----+----------------+------+-----------+------+-------+------------+----------+-----------+ 1 row in set (0.00 sec)
Запись нового ключа
Запрос SQL:
mysql> INSERT -> INTO ctrl2xcards(id_Controllers, Bank, NumInCtrl, Code, Flags, Permission, SyncRead, SyncWrite) -> VALUES (1,0,1,001122334455,0,0,1,0);
Ответ:
Query OK, 1 row affected (0.01 sec)
Изменение ключа
Запрос SQL:
mysql> UPDATE ctrl2xcards SET Permission = 0xFF, SyncWrite = 0 WHERE id_Controllers = 1 AND Bank = 0 AND NumInCtrl = 1;
Ответ:
Query OK, 0 rows affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
Стирание ключа
Запрос SQL:
mysql> UPDATE ctrl2xcards -> SET Permission = 0x55, Flags = 0x55, Code=555555555555, SyncWrite = 0 -> WHERE id_Controllers = 1 AND Bank = 0 AND NumInCtrl = 1;
Ответ:
Query OK, 0 rows affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0
Таблица "hw_ctrl2xevents"
Поле |
Тип |
Описание |
Значения |
---|---|---|---|
id |
INT |
Уникальный ID |
|
id_Controlles |
INT |
Уникальный ID контроллера в системе |
|
MemAdr |
INT |
Адрес события в памяти контроллера |
|
Time |
TIMESTAMP |
Время события |
|
Event |
INT |
Код события |
|
Card |
VARCHAR |
Код карты (если есть), вызвавшей событие |
|
Записи в эту таблицу добавляются при приходе данных о событиях от контроллера.
Чтение событий
Запрос SQL:
mysql> SELECT Time, Event, HEX(Card) -> FROM ctrl2xevents -> WHERE id_Controllers = 7 -> ORDER BY Time DESC LIMIT 0, 20;
Ответ:
+---------------------+-------+--------------+ | Time | Event | HEX(Card) | +---------------------+-------+--------------+ | 2012-01-26 12:05:04 | 3 | B1BAB5003200 | | 2012-01-20 09:14:25 | 3 | B1BAB5003200 | | 2012-01-01 19:00:38 | 3 | 000000000000 | | 2012-01-01 18:07:03 | 3 | 000000000000 | | 2012-01-01 00:01:47 | 3 | 000000000000 | | 2012-01-01 00:00:08 | 3 | 688D9E002900 | | 2012-01-01 00:00:02 | 12 | 000000000000 | | 2011-12-20 11:49:14 | 3 | 3A31DE002B00 | | 2011-12-20 11:23:54 | 3 | 9FE28A000D00 | | 2011-12-20 10:41:59 | 3 | 4A51DE002B00 | | 2011-12-20 10:37:02 | 3 | 4A51DE002B00 | | 2011-12-20 10:03:02 | 3 | 000000000000 | | 2011-12-20 09:22:13 | 3 | 000000000000 | | 2011-12-20 09:03:19 | 16 | 000000000000 | | 2011-12-20 09:03:19 | 8 | 000000000000 | | 2011-12-20 09:03:19 | 8 | 000000000000 | | 2011-12-19 15:55:49 | 3 | 000000000000 | | 2011-12-19 12:20:36 | 3 | 000000000000 | | 2011-12-16 14:16:54 | 3 | 000000000000 | | 2011-12-16 12:19:47 | 3 | 000000000000 | +---------------------+-------+--------------+ 20 rows in set (0.00 sec)