18 #ifndef WIPPERSNAPPER_H 19 #define WIPPERSNAPPER_H 25 #include <nanopb/pb_common.h> 26 #include <nanopb/pb_decode.h> 27 #include <nanopb/pb_encode.h> 30 #include <wippersnapper/description/v1/description.pb.h> 31 #include <wippersnapper/signal/v1/signal.pb.h> 34 #include "Adafruit_MQTT.h" 35 #include "Adafruit_SleepyDog.h" 42 #include "provisioning/ConfigJson.h" 45 #define WS_PRINTER Serial 49 #define WS_DEBUG_PRINT(...) \ 50 { WS_PRINTER.print(__VA_ARGS__); } 51 #define WS_DEBUG_PRINTLN(...) \ 52 { WS_PRINTER.println(__VA_ARGS__); } 53 #define WS_DEBUG_PRINTHEX(...) \ 54 { WS_PRINTER.print(__VA_ARGS__, HEX); } 56 #define WS_DEBUG_PRINT(...) \ 58 #define WS_DEBUG_PRINTLN(...) \ 62 #define WS_DELAY_WITH_WDT(timeout) \ 64 unsigned long start = millis(); \ 65 while (millis() - start < timeout) { \ 69 if (millis() < start) { \ 94 #define RETRY_FUNCTION_UNTIL_TIMEOUT(func, result_type, result_var, condition, \ 95 timeout, interval, ...) \ 97 unsigned long startTime = millis(); \ 98 while (millis() - startTime < timeout) { \ 99 result_type result_var = func(__VA_ARGS__); \ 100 if (condition(result_var)) { \ 103 if (startTime > millis()) { \ 104 startTime = millis(); \ 106 WS_DELAY_WITH_WDT(interval); \ 111 #include <nanopb/ws_pb_helpers.h> 119 #ifdef ARDUINO_ARCH_ESP32 132 #include "components/pwm/ws_pwm.h" 136 #if defined(USE_TINYUSB) 137 #include "provisioning/tinyusb/Wippersnapper_FS.h" 140 #if defined(USE_LITTLEFS) 141 #include "provisioning/littlefs/WipperSnapper_LittleFS.h" 148 #define TOPIC_IO_THROTTLE "/throttle" 149 #define TOPIC_IO_ERRORS "/errors" 152 #define TOPIC_WS "/wprsnpr/" 153 #define TOPIC_INFO "/info/" 154 #define TOPIC_SIGNALS "/signals/" 155 #define TOPIC_I2C "/i2c" 156 #define MQTT_TOPIC_PIXELS_DEVICE \ 157 "/signals/device/pixel" 158 #define MQTT_TOPIC_PIXELS_BROKER \ 159 "/signals/broker/pixel" 164 WS_NET_DISCONNECTED = 1,
166 WS_FINGERPRINT_UNKOWN = 3,
168 WS_NET_CONNECT_FAILED = 10,
169 WS_CONNECT_FAILED = 11,
170 WS_FINGERPRINT_INVALID = 12,
175 WS_NET_CONNECTED = 20,
177 WS_CONNECTED_INSECURE = 22,
178 WS_FINGERPRINT_UNSUPPORTED = 23,
179 WS_FINGERPRINT_VALID = 24,
180 WS_BOARD_DESC_INVALID = 25,
181 WS_BOARD_RESYNC_FAILED = 26
186 WS_MQTT_CONNECTED = 0,
187 WS_MQTT_INVALID_PROTOCOL = 1,
188 WS_MQTT_INVALID_CID = 2,
189 WS_MQTT_SERVICE_UNAVALIABLE = 3,
190 WS_MQTT_INVALID_USER_PASS = 4,
191 WS_MQTT_UNAUTHORIZED = 5,
192 WS_MQTT_THROTTLED = 6,
199 WS_BOARD_DEF_SEND_FAILED,
202 WS_BOARD_DEF_INVALID,
203 WS_BOARD_DEF_UNSPECIFIED
212 FSM_NET_CHECK_NETWORK,
213 FSM_NET_ESTABLISH_NETWORK,
214 FSM_NET_ESTABLISH_MQTT,
217 #ifdef ARDUINO_ARCH_RP2040 218 #define WS_WDT_TIMEOUT 8388 220 #define WS_WDT_TIMEOUT 60000 223 #define WS_MAX_ALT_WIFI_NETWORKS 3 225 #define WS_KEEPALIVE_INTERVAL_MS \ 228 #define WS_MQTT_MAX_PAYLOAD_SIZE \ 233 class Wippersnapper_FS;
234 class WipperSnapper_LittleFS;
239 #ifdef ARDUINO_ARCH_ESP32 270 virtual void set_ssid_pass(
const char *ssid,
const char *ssidPassword);
301 void publish(
const char *topic, uint8_t *payload, uint16_t bLen,
315 uint8_t seconds_until_reboot = 25);
321 wippersnapper_signal_v1_CreateSignalRequest *encodedSignalMsg);
325 encodePinEvent(wippersnapper_signal_v1_CreateSignalRequest *outgoingSignalMsg,
326 uint8_t pinName,
int pinVal);
333 std::vector<WipperSnapper_Component_I2C *>
359 WipperSnapper_LittleFS
376 Adafruit_MQTT *
_mqtt;
408 wippersnapper_signal_v1_CreateSignalRequest
411 wippersnapper_signal_v1_I2CRequest_init_zero;
416 wippersnapper_signal_v1_Ds18x20Request_init_zero;
420 wippersnapper_signal_v1_ServoRequest
422 wippersnapper_signal_v1_PWMRequest
msgPWM =
423 wippersnapper_signal_v1_PWMRequest_init_zero;
427 wippersnapper_signal_v1_PixelsRequest
430 wippersnapper_signal_v1_UARTRequest
440 #ifdef ARDUINO_ARCH_ESP32 481 Adafruit_MQTT_Subscribe
483 Adafruit_MQTT_Subscribe
485 Adafruit_MQTT_Subscribe
487 Adafruit_MQTT_Subscribe
489 Adafruit_MQTT_Subscribe
491 Adafruit_MQTT_Subscribe
494 Adafruit_MQTT_Subscribe
496 Adafruit_MQTT_Subscribe
499 wippersnapper_signal_v1_CreateSignalRequest
504 #endif // ADAFRUIT_WIPPERSNAPPER_H
+
Class that provides an interface with the I2C bus.
Definition: WipperSnapper_I2C.h:86
+
char * _topic_signal_pixels_brkr
Definition: Wippersnapper.h:431
+
wippersnapper_signal_v1_PWMRequest msgPWM
Definition: Wippersnapper.h:450
void disconnect()
Disconnects from Adafruit IO+ Wippersnapper.
Definition: Wippersnapper.cpp:153
-
char * _topic_signal_uart_brkr
Definition: Wippersnapper.h:427
+
char * _topic_signal_uart_brkr
Definition: Wippersnapper.h:433
virtual void setupMQTTClient(const char *clientID)
Sets up the MQTT client session.
Definition: Wippersnapper.cpp:203
-
const char * _boardId
Definition: Wippersnapper.h:397
+
const char * _boardId
Definition: Wippersnapper.h:403
ws_mqtt_status_t
Definition: Wippersnapper.h:213
-
Adafruit_MQTT_Subscribe * _throttle_sub
Definition: Wippersnapper.h:519
+
Adafruit_MQTT_Subscribe * _throttle_sub
Definition: Wippersnapper.h:525
High-level interface for the ESP32/ESP32-Sx/ESP32-Cx LED Control (LEDC) peripheral. Instead of specifying a timer or channel, this class automatically allocates a channel and associates it with a pin. Underlying esp32-hal-ledc performs timer management and handles the low-level LEDC peripheral API calls.
Definition: ws_ledc.h:37
-
bool _isI2CPort1Init
True if I2C port 1 has been initialized, False otherwise.
Definition: Wippersnapper.h:363
-
ws_ledc * _ledc
Pointer to LEDC object.
Definition: Wippersnapper.h:463
+
bool _isI2CPort1Init
True if I2C port 1 has been initialized, False otherwise.
Definition: Wippersnapper.h:369
+
ws_ledc * _ledc
Pointer to LEDC object.
Definition: Wippersnapper.h:469
bool generateWSErrorTopics()
Builds MQTT topics for handling errors returned from the Adafruit IO broker and subscribes to them...
Definition: Wippersnapper.cpp:1776
-
ws_pixels * _ws_pixelsComponent
ptr to instance of ws_pixels class
Definition: Wippersnapper.h:388
+
ws_pixels * _ws_pixelsComponent
ptr to instance of ws_pixels class
Definition: Wippersnapper.h:394
Class that provides functions for reading and interacting with digital inputs and outputs...
Definition: Wippersnapper_DigitalGPIO.h:38
-
void publish(const char *topic, uint8_t *payload, uint16_t bLen, uint8_t qos=0)
Publishes a message to the Adafruit IO MQTT broker. Handles network connectivity. ...
Definition: Wippersnapper.cpp:2637
-
char * _topic_signal_pwm_brkr
Definition: Wippersnapper.h:417
-
void processPackets()
Process all incoming packets from the Adafruit IO MQTT broker. Handles network connectivity.
Definition: Wippersnapper.cpp:2615
-
const char * _deviceId
Definition: Wippersnapper.h:479
-
char * _device_uid
Definition: Wippersnapper.h:480
+
void publish(const char *topic, uint8_t *payload, uint16_t bLen, uint8_t qos=0)
Publishes a message to the Adafruit IO MQTT broker. Handles network connectivity. ...
Definition: Wippersnapper.cpp:2656
+
char * _topic_signal_pwm_brkr
Definition: Wippersnapper.h:423
+
void processPackets()
Process all incoming packets from the Adafruit IO MQTT broker. Handles network connectivity.
Definition: Wippersnapper.cpp:2634
+
const char * _deviceId
Definition: Wippersnapper.h:485
+
char * _device_uid
Definition: Wippersnapper.h:486
virtual ~Wippersnapper()
Wippersnapper destructor.
Definition: Wippersnapper.cpp:79
ws_led_status_t
Definition: Wippersnapper_StatusLED.h:34
-
#define WS_MQTT_MAX_PAYLOAD_SIZE
MAXIMUM expected payload size, in bytes.
Definition: Wippersnapper.h:251
-
void connect()
Connects to Adafruit IO+ Wippersnapper broker.
Definition: Wippersnapper.cpp:2745
+
#define WS_MQTT_MAX_PAYLOAD_SIZE
MAXIMUM expected payload size, in bytes.
Definition: Wippersnapper.h:256
+
void connect()
Connects to Adafruit IO+ Wippersnapper broker.
Definition: Wippersnapper.cpp:2764
bool encodePinEvent(wippersnapper_signal_v1_CreateSignalRequest *outgoingSignalMsg, uint8_t pinName, int pinVal)
Handles MQTT messages on signal topic until timeout.
Definition: Wippersnapper.cpp:1646
-
char * _topic_description_status
Definition: Wippersnapper.h:483
+
char * _topic_description_status
Definition: Wippersnapper.h:489
bool generateWSTopics()
Generates device-specific Wippersnapper control topics and subscribes to them.
Definition: Wippersnapper.cpp:1875
Class that provides an interface for reading and controlling analog pins. Stores information about an...
Definition: Wippersnapper_AnalogIO.h:43
-
WipperSnapper_LittleFS * _littleFS
Instance of LittleFS Filesystem (non-native USB)
Definition: Wippersnapper.h:382
-
float status_pixel_brightness
Definition: Wippersnapper.h:288
-
uint8_t _buffer_outgoing[WS_MQTT_MAX_PAYLOAD_SIZE]
Definition: Wippersnapper.h:369
+
WipperSnapper_LittleFS * _littleFS
Instance of LittleFS Filesystem (non-native USB)
Definition: Wippersnapper.h:388
+
float status_pixel_brightness
Definition: Wippersnapper.h:293
+
uint8_t _buffer_outgoing[WS_MQTT_MAX_PAYLOAD_SIZE]
Definition: Wippersnapper.h:375
void errorWriteHang(String error)
Writes an error message to the serial and the filesystem, blinks WS_LED_STATUS_ERROR_RUNTIME pattern ...
Definition: Wippersnapper.cpp:2334
-
Adafruit_MQTT_Subscribe * _topic_signal_ds18_sub
Definition: Wippersnapper.h:510
+
Adafruit_MQTT_Subscribe * _topic_signal_ds18_sub
Definition: Wippersnapper.h:516
bool decodeSignalMsg(wippersnapper_signal_v1_CreateSignalRequest *encodedSignalMsg)
Decodes a signal buffer protobuf message. NOTE: Should be executed in-order after a new _buffer is re...
Definition: Wippersnapper.cpp:500
void provision()
Provisions a WipperSnapper device with its network configuration and Adafruit IO credentials.
Definition: Wippersnapper.cpp:94
-
Adafruit_MQTT_Subscribe * _topic_signal_i2c_sub
Definition: Wippersnapper.h:504
-
char * _topic_signal_device
Definition: Wippersnapper.h:408
-
uint8_t _buffer[WS_MQTT_MAX_PAYLOAD_SIZE]
Definition: Wippersnapper.h:366
-
secretsConfig _config
Definition: Wippersnapper.h:400
-
uint32_t _last_mqtt_connect
Definition: Wippersnapper.h:471
+
Adafruit_MQTT_Subscribe * _topic_signal_i2c_sub
Definition: Wippersnapper.h:510
+
char * _topic_signal_device
Definition: Wippersnapper.h:414
+
uint8_t _buffer[WS_MQTT_MAX_PAYLOAD_SIZE]
Definition: Wippersnapper.h:372
+
secretsConfig _config
Definition: Wippersnapper.h:406
+
uint32_t _last_mqtt_connect
Definition: Wippersnapper.h:477
-
char * _topic_signal_i2c_device
Definition: Wippersnapper.h:411
-
char * _topic_signal_pixels_device
Definition: Wippersnapper.h:426
-
ws_display_ui_helper * _ui_helper
Instance of display UI helper class.
Definition: Wippersnapper.h:385
-
wippersnapper_signal_v1_I2CRequest msgSignalI2C
Definition: Wippersnapper.h:432
-
Wippersnapper_DigitalGPIO * _digitalGPIO
Instance of digital gpio class.
Definition: Wippersnapper.h:378
+
char * _topic_signal_i2c_device
Definition: Wippersnapper.h:417
+
char * _topic_signal_pixels_device
Definition: Wippersnapper.h:432
+
ws_display_ui_helper * _ui_helper
Instance of display UI helper class.
Definition: Wippersnapper.h:391
+
wippersnapper_signal_v1_I2CRequest msgSignalI2C
Definition: Wippersnapper.h:438
+
Wippersnapper_DigitalGPIO * _digitalGPIO
Instance of digital gpio class.
Definition: Wippersnapper.h:384
ws_status_t
Definition: Wippersnapper.h:190
-
WipperSnapper_Component_I2C * _i2cPort1
WipperSnapper I2C Component for I2C port #1.
Definition: Wippersnapper.h:359
-
wippersnapper_signal_v1_CreateSignalRequest _incomingSignalMsg
Definition: Wippersnapper.h:431
+
WipperSnapper_Component_I2C * _i2cPort1
WipperSnapper I2C Component for I2C port #1.
Definition: Wippersnapper.h:365
+
wippersnapper_signal_v1_CreateSignalRequest _incomingSignalMsg
Definition: Wippersnapper.h:437
virtual bool check_valid_ssid()
Performs a scan of local WiFi networks.
Definition: Wippersnapper.cpp:248
-
Class that provides storage and functions for the Adafruit IO Wippersnapper interface.
Definition: Wippersnapper.h:278
+
Class that provides storage and functions for the Adafruit IO Wippersnapper interface.
Definition: Wippersnapper.h:283
Interface for WipperSnapper servo control.
Definition: ws_servo.h:61
bool configureDigitalPinReq(wippersnapper_pin_v1_ConfigurePinRequest *pinMsg)
Configures a pin according to a wippersnapper_pin_v1_ConfigurePinRequest message. ...
Definition: Wippersnapper.cpp:326
friend class
Definition: ws_pixels.h:49
-
ws_status_t run()
Processes incoming commands and handles network connection.
Definition: Wippersnapper.cpp:2856
+
ws_status_t run()
Processes incoming commands and handles network connection.
Definition: Wippersnapper.cpp:2874
virtual void _connect()
Connects to wireless network.
Definition: Wippersnapper.cpp:162
-
wippersnapper_signal_v1_CreateSignalRequest _outgoingSignalMsg
Definition: Wippersnapper.h:522
-
char * _topic_signal_pwm_device
Definition: Wippersnapper.h:419
+
wippersnapper_signal_v1_CreateSignalRequest _outgoingSignalMsg
Definition: Wippersnapper.h:528
+
char * _topic_signal_pwm_device
Definition: Wippersnapper.h:425
bool encodePubRegistrationReq()
Encodes hardware registration request message and publishes the message to the Adafruit IO broker...
Definition: Wippersnapper_Register.cpp:27
-
char * throttleMessage
Definition: Wippersnapper.h:455
-
uint32_t _prv_ping
Definition: Wippersnapper.h:473
+
char * throttleMessage
Definition: Wippersnapper.h:461
+
uint32_t _prv_ping
Definition: Wippersnapper.h:479
virtual void getMacAddr()
Sets the network interface's unique identifer, typically the MAC address.
Definition: Wippersnapper.cpp:181
bool generateDeviceUID()
Attempts to generate unique device identifier.
Definition: Wippersnapper.cpp:1834
-
Adafruit_MQTT_Subscribe * _topic_description_sub
Definition: Wippersnapper.h:497
-
char sUID[13]
Definition: Wippersnapper.h:396
+
Adafruit_MQTT_Subscribe * _topic_description_sub
Definition: Wippersnapper.h:503
+
char sUID[13]
Definition: Wippersnapper.h:402
Wippersnapper WS
Global member variable for callbacks.
Definition: Wippersnapper.cpp:36
virtual void set_ssid_pass()
Sets the device's wireless network credentials from the secrets.json configuration file...
Definition: Wippersnapper.cpp:238
-
char * _err_topic
Definition: Wippersnapper.h:494
-
void feedWDT()
Feeds the WDT to prevent hardware reset.
Definition: Wippersnapper.cpp:2589
-
uint32_t _prvKATBlink
Definition: Wippersnapper.h:475
-
char * _topic_signal_servo_device
Definition: Wippersnapper.h:415
+
char * _err_topic
Definition: Wippersnapper.h:500
+
void feedWDT()
Feeds the WDT to prevent hardware reset.
Definition: Wippersnapper.cpp:2608
+
uint32_t _prvKATBlink
Definition: Wippersnapper.h:481
+
char * _topic_signal_servo_device
Definition: Wippersnapper.h:421
Display driver for LVGL and LVGL_Glue in WipperSnapper.
Definition: ws_display_driver.h:33
-
bool _isWiFiMulti
Definition: Wippersnapper.h:402
-
Adafruit_MQTT_Subscribe * _topic_signal_pixels_sub
Definition: Wippersnapper.h:512
+
bool _isWiFiMulti
Definition: Wippersnapper.h:408
+
Adafruit_MQTT_Subscribe * _topic_signal_pixels_sub
Definition: Wippersnapper.h:518
-
ws_ds18x20 * _ds18x20Component
Instance of DS18x20 class.
Definition: Wippersnapper.h:391
-
ws_board_status_t _boardStatus
Hardware's registration status.
Definition: Wippersnapper.h:373
-
wippersnapper_signal_v1_UARTRequest msgSignalUART
UARTReq wrapper message.
Definition: Wippersnapper.h:453
+
ws_ds18x20 * _ds18x20Component
Instance of DS18x20 class.
Definition: Wippersnapper.h:397
+
ws_board_status_t _boardStatus
Hardware's registration status.
Definition: Wippersnapper.h:379
+
wippersnapper_signal_v1_UARTRequest msgSignalUART
UARTReq wrapper message.
Definition: Wippersnapper.h:459
void runNetFSM()
Checks network and MQTT connectivity. Handles network re-connection and mqtt re-establishment.
Definition: Wippersnapper.cpp:2358
-
networkConfig _multiNetworks[3]
Definition: Wippersnapper.h:401
-
bool pinCfgCompleted
Definition: Wippersnapper.h:459
-
char * _topic_signal_uart_device
Definition: Wippersnapper.h:428
-
void pingBroker()
Pings the MQTT broker within the keepalive interval to keep the connection alive. Blinks the keepaliv...
Definition: Wippersnapper.cpp:2557
-
wippersnapper_signal_v1_Ds18x20Request msgSignalDS
Definition: Wippersnapper.h:437
+
networkConfig _multiNetworks[3]
Definition: Wippersnapper.h:407
+
bool pinCfgCompleted
Definition: Wippersnapper.h:465
+
void haltError(String error, ws_led_status_t ledStatusColor=WS_LED_STATUS_ERROR_RUNTIME, uint8_t seconds_until_reboot=25)
Prints an error to the serial and halts the hardware until the WDT bites.
Definition: Wippersnapper.cpp:2504
+
char * _topic_signal_uart_device
Definition: Wippersnapper.h:434
+
void pingBroker()
Pings the MQTT broker within the keepalive interval to keep the connection alive. Blinks the keepaliv...
Definition: Wippersnapper.cpp:2576
+
wippersnapper_signal_v1_Ds18x20Request msgSignalDS
Definition: Wippersnapper.h:443
-
ws_display_driver * _display
Instance of display driver class.
Definition: Wippersnapper.h:384
-
wippersnapper_signal_v1_PixelsRequest msgPixels
PixelsRequest wrapper message.
Definition: Wippersnapper.h:450
-
void enableWDT(int timeoutMS=0)
Enables the watchdog timer.
Definition: Wippersnapper.cpp:2599
-
Adafruit_MQTT_Subscribe * _topic_signal_pwm_sub
Definition: Wippersnapper.h:508
+
ws_display_driver * _display
Instance of display driver class.
Definition: Wippersnapper.h:390
+
wippersnapper_signal_v1_PixelsRequest msgPixels
PixelsRequest wrapper message.
Definition: Wippersnapper.h:456
+
void enableWDT(int timeoutMS=0)
Enables the watchdog timer.
Definition: Wippersnapper.cpp:2618
+
Adafruit_MQTT_Subscribe * _topic_signal_pwm_sub
Definition: Wippersnapper.h:514
Class that provides an interface with DS18X20-compatible sensors.
Definition: ws_ds18x20.h:48
-
char * _topic_signal_ds18_brkr
Definition: Wippersnapper.h:421
-
void publishPinConfigComplete()
Publishes an ACK to the broker that the device has completed its hardware configuration.
Definition: Wippersnapper.cpp:2822
-
std::vector< WipperSnapper_Component_I2C * > i2cComponents
Vector containing all I2C components.
Definition: Wippersnapper.h:356
+
char * _topic_signal_ds18_brkr
Definition: Wippersnapper.h:427
+
void publishPinConfigComplete()
Publishes an ACK to the broker that the device has completed its hardware configuration.
Definition: Wippersnapper.cpp:2840
+
std::vector< WipperSnapper_Component_I2C * > i2cComponents
Vector containing all I2C components.
Definition: Wippersnapper.h:362
Helps build and manage the LVGL objects and screens for the application code.
Definition: ws_display_ui_helper.h:63
-
uint16_t bufSize
Definition: Wippersnapper.h:371
-
char * _topic_signal_i2c_brkr
Definition: Wippersnapper.h:409
-
Adafruit_MQTT_Subscribe * _topic_signal_brkr_sub
Definition: Wippersnapper.h:501
-
char * _topic_signal_brkr
Definition: Wippersnapper.h:493
-
int32_t totalDigitalPins
Definition: Wippersnapper.h:405
+
uint16_t bufSize
Definition: Wippersnapper.h:377
+
char * _topic_signal_i2c_brkr
Definition: Wippersnapper.h:415
+
Adafruit_MQTT_Subscribe * _topic_signal_brkr_sub
Definition: Wippersnapper.h:507
+
char * _topic_signal_brkr
Definition: Wippersnapper.h:499
+
int32_t totalDigitalPins
Definition: Wippersnapper.h:411
Interface for WipperSnapper PWM.
Definition: ws_pwm.h:34
-
ws_status_t _status
Definition: Wippersnapper.h:470
+
ws_status_t _status
Definition: Wippersnapper.h:476
ws_board_status_t
Definition: Wippersnapper.h:225
-
uint8_t _macAddr[6]
Definition: Wippersnapper.h:395
-
ws_pwm * _pwmComponent
Instance of pwm class.
Definition: Wippersnapper.h:389
+
uint8_t _macAddr[6]
Definition: Wippersnapper.h:401
+
ws_pwm * _pwmComponent
Instance of pwm class.
Definition: Wippersnapper.h:395
fsm_net_t
Definition: Wippersnapper.h:235
-
bool lockStatusLED
True if status LED is using the built-in LED.
Definition: Wippersnapper.h:287
-
Wippersnapper_FS * _fileSystem
Instance of Filesystem (native USB)
Definition: Wippersnapper.h:380
-
Adafruit_MQTT_Subscribe * _topic_signal_uart_sub
Definition: Wippersnapper.h:514
-
Adafruit_MQTT * _mqtt
Definition: Wippersnapper.h:398
+
bool lockStatusLED
True if status LED is using the built-in LED.
Definition: Wippersnapper.h:292
+
Wippersnapper_FS * _fileSystem
Instance of Filesystem (native USB)
Definition: Wippersnapper.h:386
+
Adafruit_MQTT_Subscribe * _topic_signal_uart_sub
Definition: Wippersnapper.h:520
+
Adafruit_MQTT * _mqtt
Definition: Wippersnapper.h:404
#define STATUS_PIXEL_BRIGHTNESS_DEFAULT
Default status pixel brightness.
Definition: Wippersnapper_StatusLED.h:59
virtual ws_status_t networkStatus()
Returns the network's connection status.
Definition: Wippersnapper.cpp:213
-
char * _topic_device_pin_config_complete
Definition: Wippersnapper.h:489
-
char * _topic_signal_servo_brkr
Definition: Wippersnapper.h:413
-
Wippersnapper_AnalogIO * _analogIO
Instance of analog io class.
Definition: Wippersnapper.h:379
-
char * _topic_description_status_complete
Definition: Wippersnapper.h:486
+
char * _topic_device_pin_config_complete
Definition: Wippersnapper.h:495
+
char * _topic_signal_servo_brkr
Definition: Wippersnapper.h:419
+
Wippersnapper_AnalogIO * _analogIO
Instance of analog io class.
Definition: Wippersnapper.h:385
+
char * _topic_description_status_complete
Definition: Wippersnapper.h:492
void pollRegistrationResp()
Polls the broker for the hardware registration response message.
Definition: Wippersnapper_Register.cpp:78
-
ws_board_status_t getBoardStatus()
Returns the board definition status.
Definition: Wippersnapper.cpp:2548
+
ws_board_status_t getBoardStatus()
Returns the board definition status.
Definition: Wippersnapper.cpp:2567
bool configAnalogInPinReq(wippersnapper_pin_v1_ConfigurePinRequest *pinMsg)
Configures an analog input pin according to a wippersnapper_pin_v1_ConfigurePinRequest message...
Definition: Wippersnapper.cpp:275
-
bool lockStatusDotStar
True if status LED is using the status dotstar.
Definition: Wippersnapper.h:286
-
wippersnapper_signal_v1_ServoRequest msgServo
ServoRequest wrapper message.
Definition: Wippersnapper.h:443
-
char * _throttle_topic
Definition: Wippersnapper.h:495
+
bool lockStatusDotStar
True if status LED is using the status dotstar.
Definition: Wippersnapper.h:291
+
wippersnapper_signal_v1_ServoRequest msgServo
ServoRequest wrapper message.
Definition: Wippersnapper.h:449
+
char * _throttle_topic
Definition: Wippersnapper.h:501
void decodeRegistrationResp(char *data, uint16_t len)
Decodes hardware registration response message from the Adafruit IO MQTT broker and initializes hardw...
Definition: Wippersnapper_Register.cpp:98
-
bool lockStatusNeoPixel
True if status LED is using the status neopixel.
Definition: Wippersnapper.h:285
-
Adafruit_MQTT_Subscribe * _topic_signal_servo_sub
Definition: Wippersnapper.h:506
-
WipperSnapper_Component_I2C * _i2cPort0
WipperSnapper I2C Component for I2C port #0.
Definition: Wippersnapper.h:357
-
bool registerBoard()
Attempts to register hardware with Adafruit.io WipperSnapper.
Definition: Wippersnapper.cpp:2524
-
int throttleTime
Definition: Wippersnapper.h:456
-
Adafruit_MQTT_Subscribe * _err_sub
Definition: Wippersnapper.h:517
-
void haltError(String error, ws_led_status_t ledStatusColor=WS_LED_STATUS_ERROR_RUNTIME)
Prints an error to the serial and halts the hardware until the WDT bites.
Definition: Wippersnapper.cpp:2502
-
char * _topic_signal_ds18_device
Definition: Wippersnapper.h:423
+
bool lockStatusNeoPixel
True if status LED is using the status neopixel.
Definition: Wippersnapper.h:290
+
Adafruit_MQTT_Subscribe * _topic_signal_servo_sub
Definition: Wippersnapper.h:512
+
WipperSnapper_Component_I2C * _i2cPort0
WipperSnapper I2C Component for I2C port #0.
Definition: Wippersnapper.h:363
+
bool registerBoard()
Attempts to register hardware with Adafruit.io WipperSnapper.
Definition: Wippersnapper.cpp:2543
+
int throttleTime
Definition: Wippersnapper.h:462
+
Adafruit_MQTT_Subscribe * _err_sub
Definition: Wippersnapper.h:523
+
char * _topic_signal_ds18_device
Definition: Wippersnapper.h:429
-
bool _isI2CPort0Init
True if I2C port 0 has been initialized, False otherwise.
Definition: Wippersnapper.h:361
+
bool _isI2CPort0Init
True if I2C port 0 has been initialized, False otherwise.
Definition: Wippersnapper.h:367
virtual int32_t getRSSI()
Gets the network's RSSI.
Definition: Wippersnapper.cpp:191
virtual void _disconnect()
Disconnect Wippersnapper MQTT session and network.
Definition: Wippersnapper.cpp:171
-
ws_servo * _servoComponent
Instance of servo class.
Definition: Wippersnapper.h:390
+
ws_servo * _servoComponent
Instance of servo class.
Definition: Wippersnapper.h:396
-
Adafruit_MQTT_Publish * _topic_signal_device_pub
Definition: Wippersnapper.h:499
-
ws_uart * _uartComponent
Instance of UART class.
Definition: Wippersnapper.h:392
-
char * _topic_description
Definition: Wippersnapper.h:407
+
Adafruit_MQTT_Publish * _topic_signal_device_pub
Definition: Wippersnapper.h:505
+
ws_uart * _uartComponent
Instance of UART class.
Definition: Wippersnapper.h:398
+
char * _topic_description
Definition: Wippersnapper.h:413
Class that provides an interface between WipperSnapper's app and the device's UART bus...
Definition: ws_uart.h:29
virtual void set_user_key()
Configures the device's Adafruit IO credentials. This method should be used only if filesystem-backed...
Definition: Wippersnapper.cpp:260