Расширение управления поверхностью наклона Tangent
Версия API: TUBE Версия 3.2 - TIPC Ревизия 4 (22 февраля 2017 г.)
Это плагин позволяет Hammerspoon взаимодействовать с линейкой панелей Tangent, таких как Element, Virtual Element Apps, Wave, Ripple и любые будущие панели.
Двигатель Объединённого моста Tangent (TUBE) состоит из двух программных элементов: Mapper и Hub. Hub взаимодействует с вашим приложением через TUBE Протокол межпроцессного взаимодействия (TIPC). TIPC — это стандартный протокол, позволяющий любому поддерживающему его приложению взаимодействовать с любыми текущими и будущими панелями, произведёнными Tangent, через Hub TUBE.
Вы можете загрузить пакет поддержки разработчиков Tangent и установщик Tangent Hub для Mac здесь.
Устанавливает обратный вызов при получении новых сообщений.
Parameters
callbackFn - функция, которая будет установлена как обратный вызов для hs.tangent. Если предоставленное значение равно nil, любая существующая функция обратного вызова будет удалена.
Returns
true в случае успеха, в противном случае false
Notes
Полную документацию по API Tangent можно загрузить здесь.
Функция обратного вызова должна принимать 1 аргумент и не должна ничего возвращать.
Этот единственный аргумент будет таблицей, которая может содержать одну или несколько команд. Каждая команда — это отдельная таблица со следующим содержимым:
id — идентификатор сообщения входящего сообщения
metadata — таблица данных для команды Tangent (см. ниже).
Таблица metadata вернёт следующее, в зависимости от id для обратного вызова:
connected — Соединение с Tangent Hub установлено успешно.
disconnected — Соединение с Tangent Hub разорвано.
initiateComms — Инициализирует общение между Hub и приложением.
protocolRev — Номер ревизии протокола.
numPanels — Количество подключённых панелей.
panels
panelID — Идентификатор панели.
panelType — Тип подключённой панели.
data — Необработанные данные с Tangent Hub.
parameterChange — Запрос на инкремент параметра в приложении.
paramID — Значение ID параметра.
increment — Значение приращения, которое должно быть применено к параметру.
parameterReset — Запрос на изменение параметра в приложение на его значение по умолчанию.
paramID — Значение ID параметра.
parameterValueRequest — Запрос на отправку ParameterValue (0x82) команды Hub.
paramID — Значение ID параметра.
menuChange — Запрос изменения индекса меню на +1 или -1.
menuID — Значение ID меню.
increment — Приращение, на которое необходимо изменить индекс меню (всегда целое число +1 или -1).
menuReset — Запрос на изменение меню на его значение по умолчанию.
menuID — Значение ID меню.
menuStringRequest — Запрос отправки MenuString (0x83) команды Hub.
menuID — Значение ID меню.
actionOn — Запрос выполнения указанного действия.
actionID — Значение ID действия.
modeChange — Запрос смены режима на указанный.
modeID — Значение ID режима.
transport — Запрос перемещения активного транспортного средства.
jogValue — Количество шагов джойстика для перемещения транспортного средства.
shuttleValue — Значение приращения для изменения скорости шаттла.
actionOff — Запрос отмены указанного действия.
actionID — Значение ID действия.
unmanagedPanelCapabilities — Используется только при работе в режиме управления панелью. Отправляется в ответ на UnmanagedPanelCapabilitiesRequest (0xA0) команду.
panelID — Идентификатор панели, как указано в InitiateComms команде.
numButtons — Количество кнопок на панели.
numEncoders — Количество энкодеров на панели.
numDisplays — Количество дисплеев на панели.
numDisplayLines — Количество строк на каждом дисплее на панели.
numDisplayChars — Количество символов в каждой строке на каждом дисплее на панели.
unmanagedButtonDown — Используется только при работе в режиме управления панелью. Выдается при нажатии кнопки.
panelID — Идентификатор панели, как указано в InitiateComms команде.
buttonID — Аппаратный идентификатор кнопки
unmanagedButtonUp — Используется только при работе в режиме управления панелью. Выдается при отпускании кнопки.
panelID — Идентификатор панели, как указано в InitiateComms команде.
buttonID — Аппаратный идентификатор кнопки.
unmanagedEncoderChange — Используется только при работе в режиме управления панелью. Выдаётся при перемещении энкодера.
panelID — Идентификатор панели, как указано в InitiateComms команде.
paramID — Аппаратный идентификатор энкодера.
increment — Значение приращения.
unmanagedDisplayRefresh — Используется только при работе в режиме управления панелью. Выдаётся при подключении панели или возвращении фокуса панели вашему приложению.
panelID — Идентификатор панели, как указано в InitiateComms команде.
panelConnectionState
panelID — Идентификатор панели, как указано в InitiateComms команде.
state — Состояние подключения панели, true если подключена, false если отключена.
Отправляет сообщение "строка байтов" в Tangent Hub.
Parameters
byteString - Строка байтов для отправки в tangent.
Returns
success - true если подключены, в противном случае false
errorMessage - Сообщение об ошибке, если произошла ошибка, в виде строки
Notes
Это должна быть полная закодированная строка для отправляемой команды без начального раздела 'size', который функция будет рассчитывать автоматически.
В целом, следует использовать более конкретные функции, которые упаковывают команду для вас, такие как sendParameterValue(...). Эта функция может использоваться для отправки сообщения, которое этот API ещё не поддерживает.
Полную документацию по API Tangent можно загрузить здесь.
Обновляет Hub строками символов, которые будут отображаться на подключённых панелях, если есть место.
Параметры
messages - Список сообщений для отправки.
doubleHeight - Необязательный список booleans, указывающий, является ли соответствующее сообщение двухстрочным.
Возвращаемое значение
true при успехе, или false и сообщение об ошибке в противном случае.
Примечания
Строки могут быть 32-символьными, однострочными или 16-символьными двухстрочными. Они будут отображаться в порядке получения; первая строка отображается вверху дисплея.
Если строка не определена как двухстрочная, она займёт следующую строку.
Если строка определена как двухстрочная, она займёт следующие 2 строки.
Максимальное количество строк, которое будет использоваться приложением, должно быть указано в файле XML управления.
Текст, превышающий 32 (однострочный) или 16 (двухстрочный) символов, будет усечён.
Если весь текст однострочный, таблица doubleHeight может быть опущена.
Устанавливает индикатор элемента управления на любой панели, где эта функция доступна.
Параметры
targetID - Идентификатор любого параметра, меню, действия или режима, определённого приложением
active - Если true, элемент управления отображается, в противном случае нет.
Возвращаемое значение
true при успешной отправке, false и сообщение об ошибке в противном случае.
Примечания
Этот индикатор управляется аргументом atDefault для параметров и меню. Таким образом, эта команда применяется только к элементам управления, сопоставленным с действиями и режимами.
При применении к режимам, кнопки, сопоставленные с зарезервированным действием "Перейти к режиму" для данного режима, будут иметь установленный индикатор.
Запрашивает от концентратора ответ с последовательностью команд PanelConnectionState (0x35) для отчета о статусе подключенных/отключенных каждого настроенного экрана.
Параметры
Нет
Возвращаемое значение
true если отправлено успешно, false и сообщение об ошибке в противном случае.
Примечания
Один запрос может привести к нескольким ответам состояния.
targetID - Идентификатор любого определённого в приложении параметра, меню, действия или режима (Беззнаковое целое число)
newName - Новое имя.
Возвращаемые значения
true в случае успеха, false и сообщение об ошибке в противном случае.
Примечания
Указанная строка заменит обычный текст, полученный из файла XML элементов управления.
Чтобы удалить любое существующее переименование, установите newName в значение "", это удалит любое переименование и вернёт систему к отображению обычного текста.
При применении к режимам также изменится текст, отображаемый на кнопках, сопоставленных с резервным действием «Переход в режим» для этого конкретного режима.
Обновляет Центр данными, которые будут отображаться на определённой панели на заданной строке и с заданной позиции, в зависимости от возможностей панели.
Параметры
panelID - Идентификатор панели, полученный в команде InitiateComms (Беззнаковое целое число)
displayID - Идентификатор отображаемого объекта (Беззнаковое целое число)
lineNum - Номер строки отображаемого объекта, где 1 — это верхняя строка (Беззнаковое целое число)
pos - Позиция в строке для начала записи, где 1 — это первый столбец (Беззнаковое целое число)
message - Строка текста (Строка символов)
Возвращаемые значения
true в случае успеха, или false и сообщение об ошибке в противном случае.
Примечания
Используется только при работе в режиме неопределённой панели.
Если старший бит любого символа текста в message установлен, он будет отображаться инвертированным (темный текст на светлом фоне).