Удаленный адрес и разновидности драйверов

  Модифицирование редактора пользовательского драйвера

При обработке канала МРВ вызывает драйвер, соответствующий его дополнению к подтипу. При этом драйверу через структуру IA (см. заголовочный файл) передается удаленный адрес. В нем указываются данные, которые надо запросить у контроллера, или переменная контроллера, в которую надо переслать значение канала.

Удаленный адрес включает в себя шесть байт. Его можно разбить на несколько полей (до шести). Каждое поле может включать в себя один или два байта. Значения полей формируются атрибутами переменной, с которой связан канал вызова драйвера. Возможные сочетания разрядности атрибутов образуют 4 разновидности драйверов t11 и t12 (отличия драйверов TCOM5 и TCOM6 описаны в разделе Драйверы t11 и t12 ):

 

Вид драйвера

Атрибут 1

Атрибут 2

Атрибут 3

Атрибут 4

Атрибут 5

Атрибут 6

1

BYTE

BYTE

WORD

WORD

-

-

2

BYTE

BYTE

WORD

BYTE

BYTE

-

3

BYTE

BYTE

BYTE

BYTE

WORD

-

4

BYTE

BYTE

BYTE

BYTE

BYTE

BYTE

 

Наименования разработанных драйверов t11 и t12 в соответствии с  %TRACE MODE% \ Drivers_with_Setup \ drivers.txt должны быть следующими:

 

Вид драйвера

t11

t12

1

t11s27.dll

t12s4.dll, media4.dll

2

t11s28.dll

t12s5.dll, media5.dll

3

t11s29.dll

t12s6.dll, media6.dll

4

t11s30.dll

t12s7.dll, media7.dll

 

К системе можно подключить только по одному пользовательскому драйверу каждого вида.

В редакторе переменной разрядность атрибутов указана:

Два младших байта структуры IA (IA.c[0] и IA.c[1]) влияют также на формирование блоковых (групповых запросов). Каналы, у которых совпадают одновременно тип, подтип, дополнение к подтипу и два младших байта удаленного адреса, группируются в один блок (группу). Если хотя бы один параметр не совпадает, канал не попадает в данный блок. Это нужно учитывать при разработке структуры удаленного адреса для конкретного контроллера.

Модифицирование редактора пользовательского драйвера

Редактор пользовательского драйвера может быть модифицирован с помощью файла, располагаемого в директории ИС:

   t11s27.frmt11s30.frm (соответственно для драйвера t11 типа 1…4);

   t12s4.frmt12s7.frm (соответственно для драйвера t12 типа 1…4).

Файл *.frm имеет текстовый формат (UTF-8) и состоит из строк описания имен атрибутов и способов их задания. Строка имеет следующий формат:

nField = "fieldName", fieldInputType;

где

   nField – адрес атрибута в массиве однобайтных параметров в структуре удаленного адреса, начиная с 0 (0...5), или специальный адрес 7;

   fieldName – имя атрибута,

   fieldInputType – способ задания значения атрибута:

   0 – ввод 1-байтового числа в формате DEC;

   2 – ввод 2-байтового числа в формате DEC;

   1 – ввод 1-байтового числа в формате HEX,

   3 – ввод 2-байтового числа в формате HEX,

   4 – выбор значения из списка,

   5 – ввод строки (только для специального адреса 7).

Список значений для выбора из раскрывающегося меню задается после указания способа задания (4) в следующем формате:

("type1"=1, "type2"=2, "type5"=5)

Элементы списка разделяются запятой, в кавычках указывается строка для отображения, а число задает значение, записываемое в структуру удаленного адреса. Если число не указано, он равно предыдущему числу, увеличенному на 1. Если число не задано для первого элемента списка, оно принимается равным 0.

Специальное значение nField = 7 соответствует строковому атрибуту (в отсутствие файла *frm этот атрибут имеет имя Дополнительно).

В качестве примера разместим в директории ИС следующий файл t11s27.frm:

0 = "Порт", 0;

1 = "Устройство", 1;

2 = "Адрес", 2;

4 = "Запрос", 4 ("тип1"=1, "тип2", "тип5"=5);

7 = "Строковый параметр", 5;

Редактор драйвера t11 типа 1 примет следующий вид (ср. с редактором по умолчанию, показанным выше):