canned-message
Модуль готовых сообщений позволит вам отправлять сообщения в mesh-сеть с устройства без использования мобильного приложения. Вы можете заранее определить текстовые сообщения для выбора.
Опции конфигурации модуля готовых сообщений: Enabled, Send Bell, Messages, Input Source, Rotary Encoder Enabled, Up Down Encoder Enabled, Input Broker Pin A, Input Broker Pin B, Input Broker Pin Press, Input Broker Event Clockwise, Input Broker Event Counter Clockwise и Input Broker Event Press. Конфигурация Canned Message использует административное сообщение, отправляющее protobuf ConfigModule.CannedMessage.
Значения конфигурации модуля готовых сообщений
Enabled
Включает модуль готовых сообщений.
Send Bell
Отправляет символ звонка с каждым сообщением.
Модуль внешних уведомлений можно настроить на воспроизведение звука при поступлении нового сообщения. Этот модуль также можно настроить на воспроизведение звука только когда сообщение содержит символ звонка.
Messages
Список предустановленных сообщений, настроенных пользователем. Сообщения должны быть разделены символами |. Общий подсчет байтов для списка сообщений может составлять до 200 байт.
Input Source
Источники событий ввода, принимаемые модулем готовых сообщений.
| Value | Description |
|---|---|
_any |
По умолчанию. Разрешает любое периферийное устройство ввода, подключенное к устройству. |
rotEnc1 |
Базовый ротационный энкодер |
upDownEnc1 |
Энкодер вверх/вниз (используйте это также для RAK14006 Rotary Encoder) |
scanAndSelect |
Одна кнопка (короткое и длинное нажатие) |
cardkb |
M5 Stack CardKB (включает RAK14004 Keymatrix) |
serialkb |
Серийная клавиатура Chatter |
Rotary Encoder Enabled
Включает стандартный ротационный энкодер.
Up Down Encoder Enabled
Включает энкодер вверх/вниз.
Input Broker Pin A
Значение GPIO пина (1-39) для порта A энкодера.
Input Broker Pin B
Значение GPIO пина (1-39) для порта B энкодера.
Input Broker Pin Press
Значение GPIO пина (1-39) для порта нажатия энкодера.
Input Broker Event Clockwise
Генерирует событие поворота по часовой стрелке.
Input Broker Event Counter Clockwise
Генерирует событие поворота против часовой стрелки.
Input Broker Event Press
Генерирует событие ввода при нажатии этого типа.
Доступность конфигурации модуля готовых сообщений для клиентов
<Icon icon="mdi:android" height="1.5rem" style={{ marginRight: "0.25rem" }} /> Android
</>
),
value: "android",
},
{
label: (
<>
<Icon icon="mdi:apple" height="1.5rem" style={{ marginRight: "0.25rem" }} /> Apple
</>
),
value: "apple",
},
{
label: (
<>
<Icon icon="mdi:terminal" height="1.5rem" style={{ marginRight: "0.25rem" }} /> CLI
</>
),
value: "cli",
},
{
label: (
<>
<Icon icon="mdi:internet" height="1.5rem" style={{ marginRight: "0.25rem" }} /> Web
</>
),
value: "web",
},
]}>
Android
:::info
Опции конфигурации Canned Message доступны для Android.
- Откройте приложение Meshtastic
- Перейдите к: Вертикальное многоточие (3 точки в правом верхнем углу) > Конфигурация радио > Canned Message
:::
Apple
:::info Все опции конфигурации модуля готовых сообщений доступны в iOS, iPadOS и macOS в разделе Настройки > Конфигурация модулей > Готовые сообщения. :::
CLI
:::info
Все опции конфигурации модуля готовых сообщений доступны в CLI Python.
:::
Примеры команд ниже:
| Setting | Acceptable Values | Default |
|---|---|---|
| canned_message.enabled | true, false |
false |
| canned_message.send_bell | true, false |
false |
| canned_message.allow_input_source | rotEnc1, _any, upDownEnc1, cardkb |
_any |
| --set-canned-message | string |
"" (separate using pipes) |
| canned_message.inputbroker_event_cw | InputEventChar |
(not defined) |
| canned_message.inputbroker_event_ccw | InputEventChar |
(not defined) |
| canned_message.inputbroker_event_press | InputEventChar |
(not defined) |
| canned_message.inputbroker_pin_a | integer |
(not defined) |
| canned_message.inputbroker_pin_b | integer |
(not defined) |
| canned_message.inputbroker_pin_press | integer |
(not defined) |
:::tip
Поскольку устройство перезагрузится после каждой отправленной команды через CLI, рекомендуется при установке нескольких значений в разделе конфигурации объединять команды в одну цепочку.
```shell title="Example:" meshtastic --set canned_message.enabled true --set canned_message.send_bell true
:::
```shell title="Enable/Disable the Canned Message Module"
meshtastic --set canned_message.enabled true
meshtastic --set canned_message.enabled false
```shell title="Enable/Disable send bell character" meshtastic --set canned_message.send_bell true meshtastic --set canned_message.send_bell false
```shell title="Set Messages"
meshtastic --set-canned-message "I need an alpinist!|Call Me|Roger Roger|Keep Calm|On my way"
```shell title="Set Input Source" meshtastic --set canned_message.allow_input_source "_any" meshtastic --set canned_message.allow_input_source "rotEnc1"
```shell title="Enable/Disable rotary1"
meshtastic --set canned_message.rotary1_enabled 1
```shell title="Set/Unset Encoder Pin A" meshtastic --set canned_message.inputbroker_pin_a 17 meshtastic --set canned_message.inputbroker_pin_a 0
```shell title="Set/Unset Encoder Pin B"
meshtastic --set canned_message.inputbroker_pin_b 39
meshtastic --set canned_message.inputbroker_pin_b 0
```shell title="Set/Unset Encoder Pin Press" meshtastic --set canned_message.inputbroker_pin_press 21 meshtastic --set canned_message.inputbroker_pin_press 0
```shell title="Set/Unset Input Broker CW Event"
meshtastic --set canned_message.inputbroker_event_cw UP
meshtastic --set canned_message.inputbroker_event_cw ""
```shell title="Set/Unset Input Broker CCW Event" meshtastic --set canned_message.inputbroker_event_ccw DOWN meshtastic --set canned_message.inputbroker_event_ccw ""
```shell title="Set/Unset Input Broker Press Event"
meshtastic --set canned_message.inputbroker_event_press SELECT
meshtastic --set canned_message.inputbroker_event_press ""
Web
:::info Все опции конфигурации модуля готовых сообщений доступны в веб-интерфейсе. :::
:::warning Доступ к GPIO фундаментально опасен, поскольку неверные опции могут физически повредить или уничтожить ваше оборудование. Убедитесь, что вы полностью понимаете схему вашего конкретного устройства, прежде чем пробовать это, поскольку мы не предоставляем гарантию. Используйте на свой страх и риск.
Этот модуль требует подключения периферийного аксессуара к устройству. Без него он не будет работать. :::
Аппаратное обеспечение
Для навигации по сообщениям и выбора одного из них потребуется подключить аппаратное обеспечение к устройству. В настоящее время модуль протестирован с универсальным ротационным энкодером, логикой 3 кнопок вверх/вниз/выбор и несколькими клавиатурами I2C. В будущем будут добавлены дополнительные методы ввода.
I2C Keymatrix
Протестировано с клавиатурой RAK14004. Нажатие клавиши немедленно отправит сообщение, привязанное к номеру кнопки. Кнопки нумеруются слева направо и сверху вниз на панелях клавиш. Таким образом, нажатие верхней левой кнопки отправит первое сообщение. Вторая кнопка отправит второе сообщение и так далее.
Важно: RAK 3x4 keymatrix пропускает 4-й ряд кнопок при сканировании, поэтому нужно пропускать каждый 4-й слот сообщения. Кнопка 1 отправляет сообщение 1, а кнопка 4 отправит сообщение 5. Пример: 1|2|3||5|6|7||9|10|11||13|14|15 — слоты 4, 8 и 12 нельзя использовать.
CardKB
CardKB полностью поддерживается в режиме свободного текста и режиме выбора. Используйте UP/DOWN/ENTER для выбора предустановленного сообщения и его отправки. Для сообщения в свободном тексте просто введите его и нажмите ENTER для отправки.
Если вы не хотите транслировать сообщение в свободном тексте, вы можете использовать CardKB для отправки на конкретный узел. Просто нажмите TAB и выберите целевой узел с помощью клавиш LEFT/RIGHT. Сообщение будет отправлено узлу с соответствующим именем и номером узла. Целевой узел будет запомнен для вашего следующего сообщения.
3 кнопки вверх/вниз и RAK rotary encoder
Просто используйте UP/DOWN/ENTER для выбора предустановленного сообщения и его отправки.
Scan and Select
Используйте одну кнопку для выбора и отправки предустановленных сообщений.
Настройка
- Подключите нормально разомкнутую кнопку между землей и GPIO пином по вашему выбору
- Настройте модуль готовых сообщений
- Установите Input Source в
scanAndSelect - Установите Input Broker Pin Press на выбранный GPIO
- Определите список предустановленных сообщений
Использование
- Короткое нажатие: прокрутка сообщений
- Длинное нажатие: отправка текущего выделенного сообщения на основной канал
Rotary encoder
Meshtastic поддерживает жестко подключенные ротационные энкодеры в качестве устройств ввода. Вам понадобится обычный ротационный энкодер. Типы, перечисленные ниже, имеют пять выводов, из которых два предназначены для действия «нажатие», но любые другие типы, вероятно, тоже подойдут. Вы также можете использовать версию с тремя выводами, где действие «нажатие» следует подключить от независимого переключателя.
Подключите ваш ротационный энкодер следующим образом. Ротационный энкодер имеет два ряда выводов. Один из рядов содержит два вывода, другой — три. Вид со стороны снизу:
B o --- o PRESS
GND o | |
A o --- o GND
Эти два вывода предназначены для обнаружения действия нажатия (или толчка). Подключите один из двух к GROUND, а другой — к пину GPIO. (Не важно, который куда.) Назовем эти подключенные пины 'PRESS'.
Эти три вывода предназначены для обнаружения действия вращения. Подключите средний вывод к GROUND, а боковые — к пинам GPIO. Назовем эти пины 'A' и 'B' в соответствии со схемой ниже.
A --||
GND --||]========
B --||
Рекомендуемые пины GPIO для подключения ротационного энкодера.
- TTGO LoRa V1:
- A - GPIO-22
- B - GPIO-23
- PRESS - GPIO-21
Существует референсный 3D-дизайн корпуса, использующий ротационный энкодер для TTGO LoRa V1: Case for TTGO-ESP32-LORA-OLED-v1.0 with rotary encoder
Примеры
- Подключите совместимое периферийное устройство. Запишите номера GPIO, которые вы используете, поскольку они будут использованы в следующем шаге.
:::note
Замените каждый GPIO (x3) ниже на номера GPIO из вашей аппаратной конфигурации.
:::
shell title="Canned Message Module - Required Rotary Encoder Module Settings"
meshtastic --set canned_message.inputbroker_pin_a GPIO
meshtastic --set canned_message.inputbroker_pin_b GPIO
meshtastic --set canned_message.inputbroker_pin_press GPIO
meshtastic --set canned_message.inputbroker_event_cw UP
meshtastic --set canned_message.inputbroker_event_ccw DOWN
meshtastic --set canned_message.inputbroker_event_press SELECT
meshtastic --set canned_message.rotary1_enabled True
Вот и всё! С работающим и включенным ротационным энкодером вы готовы начать настройку модуля Canned Message.