W tym artykule zajmiemy się obsługą widoku joysticka, który umożliwia przesłanie do naszego urządzenia adeas uno aktualnej pozycji joysticka w odniesieniu do 8 kierunków świata - wychylenie w pozycjach : N, NW, W, SW, S, SE, E, NE. Aktualny kierunek przesyłany jest do urządzenia za pomocą serwera websocket, więc sama konfiguracja widoku jest bardzo prosta.
Przejdźmy do dodania nowego widgetu do naszego dashboardu wybierając z listy pozycję "Joystick".
Proces konfiguracji widgetu jest bardzo prosty i wymaga jedynie dodania punktu pomiarowego websocket o tej samej nazwie.
Po poprawnym skonfigurowaniu widoku, ukaże nam się gotowy do pracy joystick.
Możemy teraz przejść do wgrania kodu, który odbierze przekazany przez joystick aktualny kierunek i wyświetli go na monitorze portu szeregowego. Wgrajmy do środowiska Arduino IDE następujący kod.
#include <ADEAS.h>
String last_direction = "";
void setup() {
ADEAS::serialMode(true);
ADEAS::setup("WIFI_SSID", "WIFI_PASS", "TOKEN");
SerialConnector::commandsHandler.attach("Joystick::direction", direction);
}
void loop() {
ADEAS::process();
}
static void direction(CommandsHandler::Payload *payload) {
String direction = jsonExtract(payload->data, "direction");
if (direction != last_direction) {
Serial.println(direction);
}
last_direction = direction;
}
Przenalizujmy sobie krok po kroku powyższy kod.
static void direction(CommandsHandler::Payload *payload) {
String direction = jsonExtract(payload->data, "direction");
if (direction != last_direction) {
Serial.println(direction);
}
last_direction = direction;
}
CommandsHandler::Payload *payload - otrzymane z aplikacji dane przez serwer websocket w formacie JSON.
if (direction != last_direction) {
Serial.println(direction);
}
last_direction = direction;