Динамические списки в AMX (команды IRLB)
Для отображения списка, например, музыки или фильмов, который меняется в процессе работы проекта
Динамический список iRidium List - элемент проекта, на базе которого в проекте АМХ из одного попапа (шаблона) формируется прокручивающийся список, пункты которого добавляются и удаляются во время работы проекта.
Количество пунктов списка задается командой контроллера, а ограничивается настройками графического элемента - основы списка. Содержимое пункта списка можно изменять с помощью специальных команд.
Подготовка основы списка в AMX TPDesign4
В качестве основы списка всегда используется Multistate-Bargraph :
В поле Description элемента Multistate-Bargraph укажите попап - шаблон пункта списка:
IridiumList=Template_1;
Template_1 - имя попапа, шаблона пунктов списка
Во вкладке Programming элемента Multistate-Bargraph настройте обработку нажатий на пункты списка:
Address Code
используется для управления списком с контроллера.
Если отправить значение 10 на <Address Code> списка, то он позиционируется на 10м пункте (если такой есть)
Level Code используется для слежения за нажатиями на элементы списка. Level Code отправляет контроллеру информацию о том, на какой пункт и под-пункт элемента нажали. Если задать Level Code: 401 и нажать на 10й пункт списка, то контроллер получит значение 10 в Level Code: 401. Информация о нажатом под-пункте списка приходит в следующий по порядку Level Code: 402. Если на 10м пункте списка есть 3 подпункта, и мы нажали на второй подпункт, то в Level Code: 402 придет значение 2 (отсчет с нуля: 0 - подложка элемента, 1 - первый подпункт, ...)
При нажатии на пункт списка, он отправляет контроллеру АМХ свой идентификатор и идентификатор под-элемента, на который было произведено нажатие. Контроллер обрабатывает эти два значения и вызывает соответствующий им сценарий
Идентификатор первого пункта списка (ID первого элемента) указывается при создании списка командой IRLB_ADD.
Значение, выбранное на уровне или джойстике, контроллеру НЕ отправится, т.к. фиксируется исключительно сам факт нажатия на под-элемент.
Команды IRLB: управление списками
Команды IRLB - набор команд, отправлять которые можно только приложениям-клиентам iRidium, они не воспринимаются стандартными AMX TouchPanel.
1. Добавление указанного количества элементов в список
send_command dvTP, "'IRLB_ADD-<address,count,start_id>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- count - число элементов списка, которое необходимо создать
- start_id - идентификатор первого элемента в списке
Пример: создать список из 25 пунктов (основа - элемент с Code:400, число пунктов - 25, ID первого пункта - 0)
2. Удаление указанного элемента по ID
send_command dvTP, "'IRLB_DELETE-<address,id>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- id - идентификатор элемента в списке, который нужно удалить
3. Удаление всех элементов
send_command dvTP, "'IRLB_CLEAR-<address>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
4. Установка "сопротивления" списка движению в процентах 0-100% (0 - нет трения, 100 - нет движения)
send_command dvTP, "'IRLB_RESISTENCE-<address,value>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- value - значение "сопротивления" в диапазоне от 0 до 100
5. Установка позиции списка
send_command dvTP, "'IRLB_POSITION-<address,id>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- id - идентификатор элемента в списке, к которому нужно перейти
6. Установка цвета списка
send_command dvTP, "'IRLB_SCROLL_COLOR-<address,color>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- color - цвет (HEX, RGB, название цвета)
7. Установка координаты под-элемента списка по горизонтали
send_command dvTP, "'IRLB_ITEM_X-<address,id,subitem,value>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- id - идентификатор элемента в списке
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
- value - значение координаты X элемента в пикселях
8. Установка координаты под-элемента списка по вертикали
send_command dvTP, "'IRLB_ITEM_Y-<address,id,subitem,value>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- id - идентификатор элемента в списке
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
- value - значение координаты Y элемента в пикселях
9. Установка ширины под-элемента списка
send_command dvTP, "'IRLB_ITEM_WIDTH-<address,id,subitem,value>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- id - идентификатор элемента в списке
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
- value - ширина элемента в пикселях
10. Установка высоты под-элемента списка
send_command dvTP, "'IRLB_ITEM_HEIGHT-<address,id,subitem,value>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- id - идентификатор элемента в списке
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
- value - высота элемента в пикселях
11. Установка цвета под-элемента
send_command dvTP, "'IRLB_ITEM_COLOR-<address,id,subitem,color>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- id - идентификатор элемента в списке
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
- color - цвет (HEX, RGB, название цвета)
12. Установка прозрачности под-элемента списка
send_command dvTP, "'IRLB_ITEM_OPACITY-<address,id,subitem,value>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- id - идентификатор элемента в списке
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
- value - значение прозрачности элемента в диапазоне от 0 до 255
13. Установка текста под-элемента списка в формате CP1251
send_command dvTP, "'IRLB_ITEM_TEXT-<address,id,subitem,string>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- id - идентификатор элемента в списке
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
- string - строка в формате CP1251
14. Установка текста под-элемента в формате Unicode
send_command dvTP, "'IRLB_ITEM_UNI-<address,id,subitem,string>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- id - идентификатор элемента в списке
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
- string - строка в формате Unicode
Для заполнения string, воспользуйтесь инструментом Unicode Edit программы NetLinx Studio.
# В рабочем проекте перейдите в меню Edit -> Advanced -> Unicode Edit.
# В открывшемся окне введите значение, скопируйте сформированную строку в формате Unicode.
15. Установка цвета текста под-элемента
send_command dvTP, "'IRLB_ITEM_TEXT_COLOR-<address,id,subitem,color>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- id - идентификатор элемента в списке
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
- color - цвет (HEX, RGB, название цвета)
16. Установка выравнивания текста под-элемента
send_command dvTP, "'IRLB_ITEM_TEXT_ALIGN-<address,id,subitem,align>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- id - идентификатор элемента в списке
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
- align - способ выравнивания
17. Установка изображения под-элемента
send_command dvTP, "'IRLB_ITEM_IMAGE-<address,id,subitem,image name>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- id - идентификатор элемента в списке
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
- image name - имя изображения, добавленного в галерею проекта
18. Установка выранивания изображения под-элемента
send_command dvTP, "'IRLB_ITEM_IMAGE_ALIGN-<address,id,subitem,align>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- id - идентификатор элемента в списке
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
- align - способ выравнивания
19. Установка иконки под-элемента
send_command dvTP, "'IRLB_ITEM_ICON-<address,id,subitem,slot_id>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- id - идентификатор элемента в списке
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
- slot_id - номер слота в Resource Manager
Пример с использованием slot_id: IRLB_ITEM_ICON-400,0,1,3
20. Установка выравнивания иконки под-элемента
send_command dvTP, "'IRLB_ITEM_ICON_ALIGN-<address,id,subitem,align>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- id - идентификатор элемента в списке
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
- align - способ выравнивания
21. Установка бордюра под-элемента по идентификатору
send_command dvTP, "'IRLB_ITEM_BORDER-<address,id,subitem,border>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- id - идентификатор элемента в списке
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
- border - тип бордюра
22. Установка цвета бордюра под-элемента
send_command dvTP, "'IRLB_ITEM_BORDER_COLOR-<address,id,subitem,color>'"
- address - адрес элемента, основы списка (Multistate-Bargraph)
- id - идентификатор элемента в списке
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.)
- color - цвет (HEX, RGB, название цвета)
23. Устанавливает значение Value на подэлемент элемента списка
send_command dvTP, "'IRLB_ITEM_VALUE-<address,id,subitem,value>'"
- address - адрес листа AMX;
- id - идентификатор элемента в списке, основы списка (Multistate-Bargraph);
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.);
- value - значение
24. Связывает определенный лист с тремя левелами, в которые будут приходить значения при изменении значения подэлемента.
send_command dvTP, "'IRLB_LINK_LEVEL-<address,port,item_code,subitem_code,value_code>'"
- address - адрес, привязанный к листу;
- port - порт в AMX;
- item_code - код AMX, в который будет отправлен идентификатор элемента списка;
- subitem_code - код AMX, в который будет отправлен идентификатор подэлемента списка;
- value_code - код AMX, в который будет отправлено значение подэлемента списка.
Алгоритм работы:
- Пользователь изменяет значение левела на элементе списка.
- В item_code на AMX придёт идентификатор элемента списка, на котором было изменение.
- В subitem_code на AMX придёт идентификатор подэлемента на элементе списка (порядковый номер левела в шаблоне).
- В value_code на AMX придёт значение левела.
25. Связывает определенный лист с двумя левелами и одним каналом, в которые будут приходить значения при нажатии/отпускании подэлемента.
send_command dvTP, "'IRLB_LINK_CHANNEL-<address,port,item_code,subitem_code,value_code>'"
- address - адрес, привязанный к листу;
- port - порт в AMX;
- item_code - код AMX, в который будет отправлен идентификатор элемента списка;
- subitem_code - код AMX, в который будет отправлен идентификатор подэлемента списка;
- value_code - код AMX, в который будет отправлена единица (push) при нажатии и ноль (release) при отпускании подэлемента списка.
Алгоритм работы:
- Пользователь нажимает/отпускает элемент
- В item_code на AMX придёт идентификатор элемента списка, на котором было нажатие.
- В subitem_code на AMX придёт идентификатор подэлемента на элементе списка (порядковый номер элемента в шаблоне).
- В value_code на AMX придёт нажатие (push) или отжатие (release) канала.
26. Присваивает значение элементу листа Visible=1
send_command dvTP, "'IRLB_ITEM_SHOW-<address,id,subitem>'"
- address - адрес элемента, основы списка (Multistate-Bargraph);
- id - идентификатор элемента в списке;
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.).
27. Присваивает значение элементу листа Visible=0
send_command dvTP, "'IRLB_ITEM_HIDE-<address,id,subitem>'"
- address - адрес элемента, основы списка (Multistate-Bargraph);
- id - идентификатор элемента в списке;
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.).
28. Присваивает значение элементу листа Enable=1
send_command dvTP, "'IRLB_ITEM_ENABLE-<address,id,subitem>'"
- address - адрес элемента, основы списка (Multistate-Bargraph);
- id - идентификатор элемента в списке;
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.).
29. Присваивает значение элементу листа Enable=0
send_command dvTP, "'IRLB_ITEM_DISABLE-<address,id,subitem>'"
- address - адрес элемента, основы списка (Multistate-Bargraph);
- id - идентификатор элемента в списке;
- subitem - идентификатор под-элемента в списке (начинается с нуля, 0 - подложка и т.д.).