WebSDK/Workflow

Материал из IronLogic Wiki
Перейти к: навигация, поиск

Содержание

Структура базы данных

WSDKBaseStruct.png


Встроенные функции

WSDKBaseStruct.png


Работа с конверторами.

Таблица "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)