Перейти к основному содержимому

Динамические списки в AMX (команды IRLB)

Для отображения списка, например, музыки или фильмов, который меняется в процессе работы проекта


Динамический список iRidium List - элемент проекта, на базе которого в проекте АМХ из одного попапа (шаблона) формируется прокручивающийся список, пункты которого добавляются и удаляются во время работы проекта.

Количество пунктов списка задается командой контроллера, а ограничивается настройками графического элемента - основы списка. Содержимое пункта списка можно изменять с помощью специальных команд.

Подготовка основы списка в AMX TPDesign4

В качестве основы списка всегда используется Multistate-Bargraph :

AMX_DinList_AddBase1.png

В поле Description элемента Multistate-Bargraph укажите попап - шаблон пункта списка:

AMX_DinList_AddTemplate.png

IridiumList=Template_1;

Template_1 - имя попапа, шаблона пунктов списка

Во вкладке Programming элемента Multistate-Bargraph настройте обработку нажатий на пункты списка:

AMX_DinList_AddBase2.png


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)

AMX_DinList_SendAdd.png

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, в который будет отправлено значение подэлемента списка. Алгоритм работы:
    1. Пользователь изменяет значение левела на элементе списка.
    2. В item_code на AMX придёт идентификатор элемента списка, на котором было изменение.
    3. В subitem_code на AMX придёт идентификатор подэлемента на элементе списка (порядковый номер левела в шаблоне).
    4. В 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) при отпускании подэлемента списка. Алгоритм работы:
    1. Пользователь нажимает/отпускает элемент
    2. В item_code на AMX придёт идентификатор элемента списка, на котором было нажатие.
    3. В subitem_code на AMX придёт идентификатор подэлемента на элементе списка (порядковый номер элемента в шаблоне).
    4. В 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 - подложка и т.д.).