используется TCP транспорт
- создайте проект Iridium server (.sirpz)
- создайте три файла со скриптами в проект
- убедитесь, что файлы скриптов стоят в правльном порядке - сверху вниз: AVS-commands.js, AVS-driver.js, AVS-driver.js.
- Создайте драйвер "AV & Custom systems";
- Выберите протокол "TCP";
- Установите "Host" : IP адрес контроллера, который будет использоваться в качестве шлюза.(Multiport поддерживает только одно активное подключение);
- Установите "Port" : 7677;
- Установите "Mode" : "Always connected";
- Установите "Script mode" : "Script only";
- Остальное оставьте без изменений.
Создайте адреса и статусы:
-
в файле
AVS-driver settings.js
вписать настройки оборудования:var g_phy_address = 6233; var readFeedbacksWhenConnected = false; var timeDelayForReadRequests = 2000;// ms, min 200ms g_drivers = [ "My multiport device 1", "My multiport device 2", "My multiport device 3" ];
g_phy_address : Number
физический адрес сервера, будет отображаться в телеграммах, отправляемых с Iridium server.
readFeedbacksWhenConnected : Boolean
отправлять запросы чтения всех статусов при изменении состояния подключения драйвера(из offline в online).
timeDelayForReadRequests : Boolean
задержка между запросами чтения статусов, в миллисекундах. Не рекомендуется устанавливать значение менее 300 т.к. возможны потери.
g_drivers : string
имена драйверов, должны совпадать с именами драйверов в дереве устройств проекта.
Далее нужно создать адреса и статусы:
g_Commands = [
Command("command 1" , DPT1, 1, g_driver[0]),
Command("command 2" , DPT2, 2, g_driver[0]),
Command("command 3" , DPT3, 3, g_driver[0]),
Command("command 4" , DPT4, 4, g_driver[0]),
Command("command 5" , DPT5, 5, g_driver[0]),
Command("command 6" , DPT6, 6, g_driver[0]),
Command("command 7" , DPT7, 7, g_driver[0]),
Command("command 8" , DPT8, 8, g_driver[0]),
Command("command 9" , DPT9, 9, g_driver[0]),
Command("command 10" , DPT10, 10, g_driver[0]),
Command("command 11" , DPT11, 11, g_driver[0])
];
g_Feedbacks = [
Feedback("feedback 1" , DPT1, 1, g_driver[0]),
Feedback("feedback 2" , DPT2, 2, g_driver[0]),
Feedback("feedback 3" , DPT3, 3, g_driver[0]),
Feedback("feedback 4" , DPT4, 4, g_driver[0]),
Feedback("feedback 5" , DPT5, 5, g_driver[0]),
Feedback("feedback 6" , DPT6, 6, g_driver[0]),
Feedback("feedback 7" , DPT7, 7, g_driver[0]),
Feedback("feedback 8" , DPT8, 8, g_driver[0]),
Feedback("feedback 9" , DPT9, 9, g_driver[0]),
Feedback("feedback 10" , DPT10, 10, g_driver[0]),
Feedback("feedback 11" , DPT11, 11, g_driver[0])
];
Command(name: String , dpt:Number, address:Number, driverName:String) : Object
name - имя команды, должно соответствовать имени команды в дереве драйверов.
dpt - тип команды(DPT1...DPT11).
address - адрес команды.
driverName - имя драйвера.
Feedback(name: String , dpt:Number, address:Number, driverName:String) : Object
name - имя статуса, должно соответствовать имени статуса в дереве драйверов.
dpt - тип статуса(DPT1...DPT11).
address - адрес статуса.
driverName - имя драйвера.
Возвращают объект:
{"name":name, "dpt":dpt, "address":address}
Для отправки команд из скриптов можно пользоваться следующими функциями:
var array = sendData(WRITE, g_Commands[0].address, g_Commands[0].dpt, value);
IR.GetDevice(g_driver_name).Send(array);
sendData(telType: Number, address:Number, dpt: Number, value:Number) : Object
telType - тип отправляемой телеграммы (WRITE = 1/READ = 2).
address - адрес телеграммы.
dpt - тип статуса(DPT1...DPT11).
value - отправляемое значение.
Возвращает массив, подготовленный к отправке оборудованию.