-
Подключение:
- USB
- Bluetooth
- WebSocket
-
Действия при получении команды:
- Показ уведомлений в виде "плавающего" окна
- Запуск приложения
- Эмуляция нажатия клавиш клавиатуры
- Выполнение консольных (shell) команд
- Отправка данных на контроллер
Формат отправляемой команды: <key:value>
Пример простого скетча для ардуино:
int counter = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("<test:" + String(counter) + ">");
counter++;
delay(3000);
}При включенной опции Отправлять состояния соединения, на контроллер, при каждом успешном
соединении, будет отправлено сообщение
kg.serial.manager.connection_established.
При завершении работы сервиса, на все подключенные контроллеры будет отправлено сообщение
kg.serial.manager.connection_lost.
При включенной опции Отправлять данные датчика освещённости на контроллер будут отправляться:
light_sensor_value:{value}, где{value}значение датчика в люксах;light_sensor_mode:{mode}, где{mode}число от 0 до 7:- 0 - LIGHT_NO_MOON
- 1 - LIGHT_FULLMOON
- 2 - LIGHT_CLOUDY
- 3 - LIGHT_SUNRISE
- 4 - LIGHT_OVERCAST
- 5 - LIGHT_SHADE
- 6 - LIGHT_SUNLIGHT
- 7 - LIGHT_SUNLIGHT_MAX
Сообщения датчика освещённости отправляются не чаще одного раза в 3 секунды и только при значительном изменении освещения, т.е. при
смене значения {mode}.
При включенной опции Отправлять состояние экрана на контроллер будут отправляться:
screen:onпри включении экранаscreen:offпри выключении экрана
На контроллер будет отправлена строка указанная в опциях команды. К строке будет применено форматирвание.
Broadcast Intent'ы:
- При получении команды:
- Action:
kg.serial.manager.command_received - Extras:
key,value
- Action:
- При запуске программы:
kg.serial.manager.app_started
- При запуске сервиса:
kg.serial.manager.started
- При остановке сервиса:
kg.serial.manager.stopped
Чтобы отправить данные на контроллер из Вашего приложения, необходимо создать Intent со следующими параметрами:
- Action:
kg.serial.manager.send - Extras:
data- сообщение, которое необходимо отправить на контроллерid- идентификатор конкретной операции, необязательный параметр.
Пример (Java):
Intent intent = new Intent("kg.serial.manager.send");
intent.putExtra("id", "1234");
intent.putExtra("data", "message_for_controller");
sendBroadcast(intent);В случае, если был указан параметр id, то после обработки команды и попытки отправить данные на
контроллер, Serial Manager создаст следующий Broadcast Intent:
- Action:
kg.serial.manager.send.complete - Extras:
id
Можно использовать следующие значения:
%key- будет заменено на ключ текущей команды;%value- будет заменено на значение текущее команды;hex2dec(x),dec2hex(x),bin2dec(x),dec2bin(x)- конвертированиеxиз одной системы счисления в другую;%{...}- вместо...нужно подставить математическое выражение (формулу). Описание доступных операторов и выражений.
Например, от контроллера приходят данные о температуре в Фаренгейтах, а нам нужно перевести в градусы Цельсия. Для этого нужно написать:
%{round((%value - 32) * (5 / 9), 1)} ºC
По формуле выше, мы перевели градусы из Ф в С и округлили полученное значение до десятых (до одного
знака после запятой). Т.е. если от контроллера пришла цифра 89, то мы на выходе получим 31.7 ºC.
При этом текст до и после %{...} остаётся без изменений.
Форматирование строк применяется:
- при действии команды
Отправить данные; - в уведомлении при распознавании команды;
- в создаваемом Intent'е при распознавании команды.
Для удаления команды - свайп влево.
Команды можно перемещать вверх и вниз по списку. Для перемещения - долгий tap на команде, затем (не отпуская) двигайте вверх или вниз.



