🦺 Add v2 api folder, files generated locally

This commit is contained in:
brentru 2024-08-20 16:42:44 -04:00
parent 1c8ffa0bc7
commit f663d28799
25 changed files with 2128 additions and 36 deletions

View file

@ -1791,7 +1791,6 @@ void cbThrottleTopicV2(char *throttleData, uint16_t len) {
/**************************************************************************/ /**************************************************************************/
bool Wippersnapper_V2::generateDeviceUIDV2() { bool Wippersnapper_V2::generateDeviceUIDV2() {
// Generate device unique identifier // Generate device unique identifier
WS_DEBUG_PRINTLN("generateDeviceUIDV2()");
// Set machine_name // Set machine_name
WsV2._boardIdV2 = BOARD_ID; WsV2._boardIdV2 = BOARD_ID;
// Move the top 3 bytes from the UID // Move the top 3 bytes from the UID
@ -1802,22 +1801,14 @@ bool Wippersnapper_V2::generateDeviceUIDV2() {
WsV2._macAddrV2[1], WsV2._macAddrV2[2]); WsV2._macAddrV2[1], WsV2._macAddrV2[2]);
// Conversion to match integer UID sent by encodePubRegistrationReqV2() // Conversion to match integer UID sent by encodePubRegistrationReqV2()
itoa(atoi(WsV2.sUIDV2), WsV2.sUIDV2, 10); itoa(atoi(WsV2.sUIDV2), WsV2.sUIDV2, 10);
WS_DEBUG_PRINT("sUIDV2UID: ");
WS_DEBUG_PRINTLN(WsV2.sUIDV2);
// Calculate the length of device and UID strings // Calculate the length of device and UID strings
WS_DEBUG_PRINTLN("Calculating device UID length..."); WS_DEBUG_PRINTLN("Calculating device UID length...");
size_t lenBoardId = strlen(WsV2._boardIdV2); size_t lenBoardId = strlen(WsV2._boardIdV2);
size_t lenUID = strlen(WsV2.sUIDV2); size_t lenUID = strlen(WsV2.sUIDV2);
WS_DEBUG_PRINT("WsV2.sUIDV2 length: ");
WS_DEBUG_PRINTLN(lenUID);
size_t lenIOWipper = strlen("io-wipper-"); size_t lenIOWipper = strlen("io-wipper-");
size_t lenDeviceUID = lenBoardId + lenUID + lenIOWipper + 1; size_t lenDeviceUID = lenBoardId + lenUID + lenIOWipper + 1;
// dbg print out the len to see if the buffer is large enough
WS_DEBUG_PRINT("lenDeviceUID: ");
WS_DEBUG_PRINTLN(lenDeviceUID);
// Attempt to allocate memory for the _device_uid // Attempt to allocate memory for the _device_uid
WS_DEBUG_PRINTLN("Allocating memory for device UID"); WS_DEBUG_PRINTLN("Allocating memory for device UID");
#ifdef USE_PSRAM #ifdef USE_PSRAM
@ -1851,32 +1842,28 @@ bool Wippersnapper_V2::generateDeviceUIDV2() {
/**************************************************************************/ /**************************************************************************/
bool Wippersnapper_V2::generateWSTopicsV2() { bool Wippersnapper_V2::generateWSTopicsV2() {
WS_DEBUG_PRINTLN("Pre-calculating topic lengths..."); WS_DEBUG_PRINTLN("Pre-calculating topic lengths...");
// Pre-calculate lengths of topic strings to allocate memory // Calculate length of strings that are are dynamic within the secrets file
// These strings are dynamic within the secrets file
size_t lenUser = strlen(WsV2._configV2.aio_user); size_t lenUser = strlen(WsV2._configV2.aio_user);
size_t lenBoardId = strlen(_device_uidV2); size_t lenBoardId = strlen(_device_uidV2);
// These strings are constants // Calculate length of static strings
size_t lenTopicX2x = strlen("/ws-x2x/"); size_t lenTopicX2x = strlen("/ws-x2x/");
size_t lenTopicError = strlen("/errors/"); size_t lenTopicErrorStr = strlen("/errors/");
size_t lenTopicThrottle = strlen("/throttle/"); size_t lenTopicThrottleStr = strlen("/throttle/");
// Calculate length of complete topic strings
WS_DEBUG_PRINTLN("Allocating memory for topic b2d");
// Attempt to allocate memory for the broker-to-device topic
size_t lenTopicB2d = lenUser + lenTopicX2x + lenBoardId + 1; size_t lenTopicB2d = lenUser + lenTopicX2x + lenBoardId + 1;
WS_DEBUG_PRINT("lenTopicB2d: "); size_t lenTopicD2b = lenUser + lenTopicX2x + lenBoardId + 1;
WS_DEBUG_PRINTLN(lenTopicB2d); size_t lenTopicError = lenUser + lenTopicErrorStr + 1;
size_t lenTopicThrottle = lenUser + lenTopicThrottleStr + 1;
// Attempt to allocate memory for the broker-to-device topic
#ifdef USE_PSRAM #ifdef USE_PSRAM
WS_DEBUG_PRINTLN("ps_malloc called");
WsV2._topicB2d = (char *)ps_malloc(sizeof(char) * lenTopicB2d); WsV2._topicB2d = (char *)ps_malloc(sizeof(char) * lenTopicB2d);
#else #else
WS_DEBUG_PRINTLN("malloc() call");
WsV2._topicB2d = (char *)malloc(sizeof(char) * lenTopicB2d); WsV2._topicB2d = (char *)malloc(sizeof(char) * lenTopicB2d);
#endif #endif
// Check if memory allocation was successful // Check if memory allocation was successful
if (WsV2._topicB2d == NULL) { if (WsV2._topicB2d == NULL)
WS_DEBUG_PRINTLN("ERROR: Unable to allocate memory for topic b2d");
return false; return false;
}
// Build the broker-to-device topic // Build the broker-to-device topic
snprintf(WsV2._topicB2d, lenTopicB2d, "%s/ws-b2d/%s", WsV2._configV2.aio_user, snprintf(WsV2._topicB2d, lenTopicB2d, "%s/ws-b2d/%s", WsV2._configV2.aio_user,
_device_uidV2); _device_uidV2);
@ -1890,37 +1877,34 @@ bool Wippersnapper_V2::generateWSTopicsV2() {
// Create global device to broker topic // Create global device to broker topic
// Attempt to allocate memory for the broker-to-device topic // Attempt to allocate memory for the broker-to-device topic
WS_DEBUG_PRINTLN("Allocating memory for topic d2b");
#ifdef USE_PSRAM #ifdef USE_PSRAM
WsV2._topicD2b = (char *)ps_malloc(sizeof(char) * WsV2._topicD2b = (char *)ps_malloc(sizeof(char) * lenTopicD2b);
(lenUser + lenTopicX2x + lenBoardId + 1));
#else #else
WsV2._topicD2b = WsV2._topicD2b =
(char *)malloc(sizeof(char) * (lenUser + lenTopicX2x + lenBoardId + 1)); (char *)malloc(sizeof(char) * lenTopicD2b);
#endif #endif
// Check if memory allocation was successful // Check if memory allocation was successful
if (WsV2._topicD2b == NULL) if (WsV2._topicD2b == NULL)
return false; return false;
// Build the broker-to-device topic // Build the broker-to-device topic
snprintf(WsV2._topicD2b, lenUser + lenTopicX2x + lenBoardId + 1, snprintf(WsV2._topicD2b, lenTopicD2b,
"%s/ws-d2b/%s", WsV2._configV2.aio_user, _device_uidV2); "%s/ws-d2b/%s", WsV2._configV2.aio_user, _device_uidV2);
WS_DEBUG_PRINT("Device-to-broker topic: "); WS_DEBUG_PRINT("Device-to-broker topic: ");
WS_DEBUG_PRINTLN(WsV2._topicD2b); WS_DEBUG_PRINTLN(WsV2._topicD2b);
// Attempt to allocate memory for the error topic // Attempt to allocate memory for the error topic
WS_DEBUG_PRINTLN("Allocating memory for topic error");
#ifdef USE_PSRAM #ifdef USE_PSRAM
WsV2._topicError = WsV2._topicError =
(char *)ps_malloc(sizeof(char) * (lenUser + lenTopicError + 1)); (char *)ps_malloc(sizeof(char) * lenTopicError);
#else #else
WsV2._topicError = WsV2._topicError =
(char *)malloc(sizeof(char) * (lenUser + lenTopicError + 1)); (char *)malloc(sizeof(char) * lenTopicError);
#endif #endif
// Check if memory allocation was successful // Check if memory allocation was successful
if (WsV2._topicError == NULL) if (WsV2._topicError == NULL)
return false; return false;
// Build the error topic // Build the error topic
snprintf(WsV2._topicError, lenUser + lenTopicError + 1, "%s/%s", snprintf(WsV2._topicError, lenTopicError, "%s/%s",
WsV2._configV2.aio_user, "errors"); WsV2._configV2.aio_user, "errors");
WS_DEBUG_PRINT("Error topic: "); WS_DEBUG_PRINT("Error topic: ");
WS_DEBUG_PRINTLN(WsV2._topicError); WS_DEBUG_PRINTLN(WsV2._topicError);
@ -1933,16 +1917,16 @@ bool Wippersnapper_V2::generateWSTopicsV2() {
// Attempt to allocate memory for the error topic // Attempt to allocate memory for the error topic
#ifdef USE_PSRAM #ifdef USE_PSRAM
WsV2._topicThrottle = WsV2._topicThrottle =
(char *)ps_malloc(sizeof(char) * (lenUser + lenTopicThrottle + 1)); (char *)ps_malloc(sizeof(char) * lenTopicThrottle);
#else #else
WsV2._topicThrottle = WsV2._topicThrottle =
(char *)malloc(sizeof(char) * (lenUser + lenTopicThrottle + 1)); (char *)malloc(sizeof(char) * lenTopicThrottle);
#endif #endif
// Check if memory allocation was successful // Check if memory allocation was successful
if (WsV2._topicThrottle == NULL) if (WsV2._topicThrottle == NULL)
return false; return false;
// Build the throttle topic // Build the throttle topic
snprintf(WsV2._topicThrottle, lenUser + lenTopicThrottle + 1, "%s/%s", snprintf(WsV2._topicThrottle, lenTopicThrottle, "%s/%s",
WsV2._configV2.aio_user, "throttle"); WsV2._configV2.aio_user, "throttle");
WS_DEBUG_PRINT("Throttle topic: "); WS_DEBUG_PRINT("Throttle topic: ");
WS_DEBUG_PRINTLN(WsV2._topicThrottle); WS_DEBUG_PRINTLN(WsV2._topicThrottle);

View file

@ -0,0 +1,18 @@
/* Automatically generated nanopb constant definitions */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#include "analogio.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
PB_BIND(wippersnapper_analogio_AnalogIOAdd, wippersnapper_analogio_AnalogIOAdd, AUTO)
PB_BIND(wippersnapper_analogio_AnalogIORemove, wippersnapper_analogio_AnalogIORemove, AUTO)
PB_BIND(wippersnapper_analogio_AnalogIOEvent, wippersnapper_analogio_AnalogIOEvent, AUTO)

View file

@ -0,0 +1,95 @@
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#ifndef PB_WIPPERSNAPPER_ANALOGIO_ANALOGIO_PB_H_INCLUDED
#define PB_WIPPERSNAPPER_ANALOGIO_ANALOGIO_PB_H_INCLUDED
#include <pb.h>
#include "sensor.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
/* Struct definitions */
/* *
AnalogIOAdd adds an analog pin to the device. */
typedef struct _wippersnapper_analogio_AnalogIOAdd {
pb_callback_t pin_name; /* * Name of the pin. */
float period; /* * Time between reads, in seconds. */
wippersnapper_sensor_SensorType read_mode; /* * Desired read mode for the pin. */
} wippersnapper_analogio_AnalogIOAdd;
/* *
AnalogIORemove removes an analog pin from the device. */
typedef struct _wippersnapper_analogio_AnalogIORemove {
pb_callback_t pin_name; /* * Name of the pin. */
} wippersnapper_analogio_AnalogIORemove;
/* *
AnalogIOEvent is contains a value, sent when an analog pin is read. */
typedef struct _wippersnapper_analogio_AnalogIOEvent {
pb_callback_t pin_name; /* * Name of the pin. */
bool has_sensor_event;
wippersnapper_sensor_SensorEvent sensor_event; /* * Reading(s) from an analog pin. */
} wippersnapper_analogio_AnalogIOEvent;
#ifdef __cplusplus
extern "C" {
#endif
/* Initializer values for message structs */
#define wippersnapper_analogio_AnalogIOAdd_init_default {{{NULL}, NULL}, 0, _wippersnapper_sensor_SensorType_MIN}
#define wippersnapper_analogio_AnalogIORemove_init_default {{{NULL}, NULL}}
#define wippersnapper_analogio_AnalogIOEvent_init_default {{{NULL}, NULL}, false, wippersnapper_sensor_SensorEvent_init_default}
#define wippersnapper_analogio_AnalogIOAdd_init_zero {{{NULL}, NULL}, 0, _wippersnapper_sensor_SensorType_MIN}
#define wippersnapper_analogio_AnalogIORemove_init_zero {{{NULL}, NULL}}
#define wippersnapper_analogio_AnalogIOEvent_init_zero {{{NULL}, NULL}, false, wippersnapper_sensor_SensorEvent_init_zero}
/* Field tags (for use in manual encoding/decoding) */
#define wippersnapper_analogio_AnalogIOAdd_pin_name_tag 1
#define wippersnapper_analogio_AnalogIOAdd_period_tag 2
#define wippersnapper_analogio_AnalogIOAdd_read_mode_tag 3
#define wippersnapper_analogio_AnalogIORemove_pin_name_tag 1
#define wippersnapper_analogio_AnalogIOEvent_pin_name_tag 1
#define wippersnapper_analogio_AnalogIOEvent_sensor_event_tag 2
/* Struct field encoding specification for nanopb */
#define wippersnapper_analogio_AnalogIOAdd_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, pin_name, 1) \
X(a, STATIC, SINGULAR, FLOAT, period, 2) \
X(a, STATIC, SINGULAR, UENUM, read_mode, 3)
#define wippersnapper_analogio_AnalogIOAdd_CALLBACK pb_default_field_callback
#define wippersnapper_analogio_AnalogIOAdd_DEFAULT NULL
#define wippersnapper_analogio_AnalogIORemove_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, pin_name, 1)
#define wippersnapper_analogio_AnalogIORemove_CALLBACK pb_default_field_callback
#define wippersnapper_analogio_AnalogIORemove_DEFAULT NULL
#define wippersnapper_analogio_AnalogIOEvent_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, pin_name, 1) \
X(a, STATIC, OPTIONAL, MESSAGE, sensor_event, 2)
#define wippersnapper_analogio_AnalogIOEvent_CALLBACK pb_default_field_callback
#define wippersnapper_analogio_AnalogIOEvent_DEFAULT NULL
#define wippersnapper_analogio_AnalogIOEvent_sensor_event_MSGTYPE wippersnapper_sensor_SensorEvent
extern const pb_msgdesc_t wippersnapper_analogio_AnalogIOAdd_msg;
extern const pb_msgdesc_t wippersnapper_analogio_AnalogIORemove_msg;
extern const pb_msgdesc_t wippersnapper_analogio_AnalogIOEvent_msg;
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define wippersnapper_analogio_AnalogIOAdd_fields &wippersnapper_analogio_AnalogIOAdd_msg
#define wippersnapper_analogio_AnalogIORemove_fields &wippersnapper_analogio_AnalogIORemove_msg
#define wippersnapper_analogio_AnalogIOEvent_fields &wippersnapper_analogio_AnalogIOEvent_msg
/* Maximum encoded size of messages (where known) */
/* wippersnapper_analogio_AnalogIOAdd_size depends on runtime parameters */
/* wippersnapper_analogio_AnalogIORemove_size depends on runtime parameters */
/* wippersnapper_analogio_AnalogIOEvent_size depends on runtime parameters */
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif

View file

@ -0,0 +1,16 @@
/* Automatically generated nanopb constant definitions */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#include "checkin.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
PB_BIND(wippersnapper_checkin_CheckinRequest, wippersnapper_checkin_CheckinRequest, AUTO)
PB_BIND(wippersnapper_checkin_CheckinResponse, wippersnapper_checkin_CheckinResponse, AUTO)

View file

@ -0,0 +1,97 @@
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#ifndef PB_WIPPERSNAPPER_CHECKIN_CHECKIN_PB_H_INCLUDED
#define PB_WIPPERSNAPPER_CHECKIN_CHECKIN_PB_H_INCLUDED
#include <pb.h>
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
/* Enum definitions */
/* *
Response. Specifies if the hardware definiton is within the database. */
typedef enum _wippersnapper_checkin_CheckinResponse_Response {
wippersnapper_checkin_CheckinResponse_Response_RESPONSE_UNSPECIFIED = 0, /* * Invalid response from server */
wippersnapper_checkin_CheckinResponse_Response_RESPONSE_OK = 1, /* * Board found within definition index */
wippersnapper_checkin_CheckinResponse_Response_RESPONSE_BOARD_NOT_FOUND = 2 /* * Board not found in definition index */
} wippersnapper_checkin_CheckinResponse_Response;
/* Struct definitions */
/* *
CheckinRequest notifies the MQTT broker that a new/existing device is requesting to connect. */
typedef struct _wippersnapper_checkin_CheckinRequest {
pb_callback_t hardware_uid; /* * Identifies the client's physical hardware (board name + last 3 of NIC's MAC address). */
pb_callback_t firmware_version; /* * Identifies the client's firmware version. */
} wippersnapper_checkin_CheckinRequest;
/* *
CheckinResponse sends a broker response to the client's CheckinRequest. */
typedef struct _wippersnapper_checkin_CheckinResponse {
wippersnapper_checkin_CheckinResponse_Response response; /* * Specifies if the hardware definition exists on the server. */
int32_t total_gpio_pins; /* * Specifies the number of GPIO pins on the device. */
int32_t total_analog_pins; /* * Specifies the number of analog pins on the device. */
float reference_voltage; /* * Specifies the hardware's default reference voltage. */
} wippersnapper_checkin_CheckinResponse;
#ifdef __cplusplus
extern "C" {
#endif
/* Helper constants for enums */
#define _wippersnapper_checkin_CheckinResponse_Response_MIN wippersnapper_checkin_CheckinResponse_Response_RESPONSE_UNSPECIFIED
#define _wippersnapper_checkin_CheckinResponse_Response_MAX wippersnapper_checkin_CheckinResponse_Response_RESPONSE_BOARD_NOT_FOUND
#define _wippersnapper_checkin_CheckinResponse_Response_ARRAYSIZE ((wippersnapper_checkin_CheckinResponse_Response)(wippersnapper_checkin_CheckinResponse_Response_RESPONSE_BOARD_NOT_FOUND+1))
#define wippersnapper_checkin_CheckinResponse_response_ENUMTYPE wippersnapper_checkin_CheckinResponse_Response
/* Initializer values for message structs */
#define wippersnapper_checkin_CheckinRequest_init_default {{{NULL}, NULL}, {{NULL}, NULL}}
#define wippersnapper_checkin_CheckinResponse_init_default {_wippersnapper_checkin_CheckinResponse_Response_MIN, 0, 0, 0}
#define wippersnapper_checkin_CheckinRequest_init_zero {{{NULL}, NULL}, {{NULL}, NULL}}
#define wippersnapper_checkin_CheckinResponse_init_zero {_wippersnapper_checkin_CheckinResponse_Response_MIN, 0, 0, 0}
/* Field tags (for use in manual encoding/decoding) */
#define wippersnapper_checkin_CheckinRequest_hardware_uid_tag 1
#define wippersnapper_checkin_CheckinRequest_firmware_version_tag 2
#define wippersnapper_checkin_CheckinResponse_response_tag 1
#define wippersnapper_checkin_CheckinResponse_total_gpio_pins_tag 2
#define wippersnapper_checkin_CheckinResponse_total_analog_pins_tag 3
#define wippersnapper_checkin_CheckinResponse_reference_voltage_tag 4
/* Struct field encoding specification for nanopb */
#define wippersnapper_checkin_CheckinRequest_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, hardware_uid, 1) \
X(a, CALLBACK, SINGULAR, STRING, firmware_version, 2)
#define wippersnapper_checkin_CheckinRequest_CALLBACK pb_default_field_callback
#define wippersnapper_checkin_CheckinRequest_DEFAULT NULL
#define wippersnapper_checkin_CheckinResponse_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, UENUM, response, 1) \
X(a, STATIC, SINGULAR, INT32, total_gpio_pins, 2) \
X(a, STATIC, SINGULAR, INT32, total_analog_pins, 3) \
X(a, STATIC, SINGULAR, FLOAT, reference_voltage, 4)
#define wippersnapper_checkin_CheckinResponse_CALLBACK NULL
#define wippersnapper_checkin_CheckinResponse_DEFAULT NULL
extern const pb_msgdesc_t wippersnapper_checkin_CheckinRequest_msg;
extern const pb_msgdesc_t wippersnapper_checkin_CheckinResponse_msg;
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define wippersnapper_checkin_CheckinRequest_fields &wippersnapper_checkin_CheckinRequest_msg
#define wippersnapper_checkin_CheckinResponse_fields &wippersnapper_checkin_CheckinResponse_msg
/* Maximum encoded size of messages (where known) */
/* wippersnapper_checkin_CheckinRequest_size depends on runtime parameters */
#define WIPPERSNAPPER_CHECKIN_CHECKIN_PB_H_MAX_SIZE wippersnapper_checkin_CheckinResponse_size
#define wippersnapper_checkin_CheckinResponse_size 29
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif

View file

@ -0,0 +1,23 @@
/* Automatically generated nanopb constant definitions */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#include "digitalio.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
PB_BIND(wippersnapper_digitalio_DigitalIOAdd, wippersnapper_digitalio_DigitalIOAdd, AUTO)
PB_BIND(wippersnapper_digitalio_DigitalIORemove, wippersnapper_digitalio_DigitalIORemove, AUTO)
PB_BIND(wippersnapper_digitalio_DigitalIOEvent, wippersnapper_digitalio_DigitalIOEvent, AUTO)
PB_BIND(wippersnapper_digitalio_DigitalIOWrite, wippersnapper_digitalio_DigitalIOWrite, AUTO)

View file

@ -0,0 +1,157 @@
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#ifndef PB_WIPPERSNAPPER_DIGITALIO_DIGITALIO_PB_H_INCLUDED
#define PB_WIPPERSNAPPER_DIGITALIO_DIGITALIO_PB_H_INCLUDED
#include <pb.h>
#include "sensor.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
/* Enum definitions */
/* *
DigitalIOSampleMode specifies the pin's sample mode. */
typedef enum _wippersnapper_digitalio_DigitalIOSampleMode {
wippersnapper_digitalio_DigitalIOSampleMode_DIGITAL_IO_SAMPLE_MODE_UNSPECIFIED = 0, /* * Invalid Sample Mode from Broker. */
wippersnapper_digitalio_DigitalIOSampleMode_DIGITAL_IO_SAMPLE_MODE_TIMER = 1, /* * Periodically sample the pin's value. */
wippersnapper_digitalio_DigitalIOSampleMode_DIGITAL_IO_SAMPLE_MODE_EVENT = 2 /* * Sample the pin's value when an event occurs. */
} wippersnapper_digitalio_DigitalIOSampleMode;
/* *
DigitalIODirection specifies the pin's direction, INPUT/INPUT_PULL_UP/OUTPUT. */
typedef enum _wippersnapper_digitalio_DigitalIODirection {
wippersnapper_digitalio_DigitalIODirection_DIGITAL_IO_DIRECTION_UNSPECIFIED = 0, /* * Invalid Direction from Broker. */
wippersnapper_digitalio_DigitalIODirection_DIGITAL_IO_DIRECTION_INPUT = 1, /* * Set the pin to behave as an input. */
wippersnapper_digitalio_DigitalIODirection_DIGITAL_IO_DIRECTION_INPUT_PULL_UP = 2, /* * Set the pin to behave as an input. */
wippersnapper_digitalio_DigitalIODirection_DIGITAL_IO_DIRECTION_OUTPUT = 3 /* * Set the pin to behave as an output. */
} wippersnapper_digitalio_DigitalIODirection;
/* Struct definitions */
/* *
DigitalIOAdd adds a digital pin to the device. */
typedef struct _wippersnapper_digitalio_DigitalIOAdd {
pb_callback_t pin_name; /* * The pin's name. */
wippersnapper_digitalio_DigitalIODirection gpio_direction; /* * The pin's direction. */
wippersnapper_digitalio_DigitalIOSampleMode sample_mode; /* * Specifies the pin's sample mode. */
float period; /* * Time between measurements in seconds, if MODE_TIMER. */
bool value; /* * Re-sync only - send the pin's value. */
} wippersnapper_digitalio_DigitalIOAdd;
/* *
DigitalIORemove removes a digital pin from the device. */
typedef struct _wippersnapper_digitalio_DigitalIORemove {
pb_callback_t pin_name; /* * The pin's name. */
} wippersnapper_digitalio_DigitalIORemove;
/* *
DigitalIOEvent is sent from the device to the broker when a digital pin's value changes. */
typedef struct _wippersnapper_digitalio_DigitalIOEvent {
pb_callback_t pin_name; /* * The pin's name. */
bool has_value;
wippersnapper_sensor_SensorEvent value; /* * The pin's value. */
} wippersnapper_digitalio_DigitalIOEvent;
/* *
DigitalIOWrite writes a boolean value to a digital pin. */
typedef struct _wippersnapper_digitalio_DigitalIOWrite {
pb_callback_t pin_name; /* * The pin's name. */
bool has_value;
wippersnapper_sensor_SensorEvent value; /* * The pin's value. */
} wippersnapper_digitalio_DigitalIOWrite;
#ifdef __cplusplus
extern "C" {
#endif
/* Helper constants for enums */
#define _wippersnapper_digitalio_DigitalIOSampleMode_MIN wippersnapper_digitalio_DigitalIOSampleMode_DIGITAL_IO_SAMPLE_MODE_UNSPECIFIED
#define _wippersnapper_digitalio_DigitalIOSampleMode_MAX wippersnapper_digitalio_DigitalIOSampleMode_DIGITAL_IO_SAMPLE_MODE_EVENT
#define _wippersnapper_digitalio_DigitalIOSampleMode_ARRAYSIZE ((wippersnapper_digitalio_DigitalIOSampleMode)(wippersnapper_digitalio_DigitalIOSampleMode_DIGITAL_IO_SAMPLE_MODE_EVENT+1))
#define _wippersnapper_digitalio_DigitalIODirection_MIN wippersnapper_digitalio_DigitalIODirection_DIGITAL_IO_DIRECTION_UNSPECIFIED
#define _wippersnapper_digitalio_DigitalIODirection_MAX wippersnapper_digitalio_DigitalIODirection_DIGITAL_IO_DIRECTION_OUTPUT
#define _wippersnapper_digitalio_DigitalIODirection_ARRAYSIZE ((wippersnapper_digitalio_DigitalIODirection)(wippersnapper_digitalio_DigitalIODirection_DIGITAL_IO_DIRECTION_OUTPUT+1))
#define wippersnapper_digitalio_DigitalIOAdd_gpio_direction_ENUMTYPE wippersnapper_digitalio_DigitalIODirection
#define wippersnapper_digitalio_DigitalIOAdd_sample_mode_ENUMTYPE wippersnapper_digitalio_DigitalIOSampleMode
/* Initializer values for message structs */
#define wippersnapper_digitalio_DigitalIOAdd_init_default {{{NULL}, NULL}, _wippersnapper_digitalio_DigitalIODirection_MIN, _wippersnapper_digitalio_DigitalIOSampleMode_MIN, 0, 0}
#define wippersnapper_digitalio_DigitalIORemove_init_default {{{NULL}, NULL}}
#define wippersnapper_digitalio_DigitalIOEvent_init_default {{{NULL}, NULL}, false, wippersnapper_sensor_SensorEvent_init_default}
#define wippersnapper_digitalio_DigitalIOWrite_init_default {{{NULL}, NULL}, false, wippersnapper_sensor_SensorEvent_init_default}
#define wippersnapper_digitalio_DigitalIOAdd_init_zero {{{NULL}, NULL}, _wippersnapper_digitalio_DigitalIODirection_MIN, _wippersnapper_digitalio_DigitalIOSampleMode_MIN, 0, 0}
#define wippersnapper_digitalio_DigitalIORemove_init_zero {{{NULL}, NULL}}
#define wippersnapper_digitalio_DigitalIOEvent_init_zero {{{NULL}, NULL}, false, wippersnapper_sensor_SensorEvent_init_zero}
#define wippersnapper_digitalio_DigitalIOWrite_init_zero {{{NULL}, NULL}, false, wippersnapper_sensor_SensorEvent_init_zero}
/* Field tags (for use in manual encoding/decoding) */
#define wippersnapper_digitalio_DigitalIOAdd_pin_name_tag 1
#define wippersnapper_digitalio_DigitalIOAdd_gpio_direction_tag 2
#define wippersnapper_digitalio_DigitalIOAdd_sample_mode_tag 3
#define wippersnapper_digitalio_DigitalIOAdd_period_tag 4
#define wippersnapper_digitalio_DigitalIOAdd_value_tag 5
#define wippersnapper_digitalio_DigitalIORemove_pin_name_tag 1
#define wippersnapper_digitalio_DigitalIOEvent_pin_name_tag 1
#define wippersnapper_digitalio_DigitalIOEvent_value_tag 2
#define wippersnapper_digitalio_DigitalIOWrite_pin_name_tag 1
#define wippersnapper_digitalio_DigitalIOWrite_value_tag 2
/* Struct field encoding specification for nanopb */
#define wippersnapper_digitalio_DigitalIOAdd_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, pin_name, 1) \
X(a, STATIC, SINGULAR, UENUM, gpio_direction, 2) \
X(a, STATIC, SINGULAR, UENUM, sample_mode, 3) \
X(a, STATIC, SINGULAR, FLOAT, period, 4) \
X(a, STATIC, SINGULAR, BOOL, value, 5)
#define wippersnapper_digitalio_DigitalIOAdd_CALLBACK pb_default_field_callback
#define wippersnapper_digitalio_DigitalIOAdd_DEFAULT NULL
#define wippersnapper_digitalio_DigitalIORemove_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, pin_name, 1)
#define wippersnapper_digitalio_DigitalIORemove_CALLBACK pb_default_field_callback
#define wippersnapper_digitalio_DigitalIORemove_DEFAULT NULL
#define wippersnapper_digitalio_DigitalIOEvent_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, pin_name, 1) \
X(a, STATIC, OPTIONAL, MESSAGE, value, 2)
#define wippersnapper_digitalio_DigitalIOEvent_CALLBACK pb_default_field_callback
#define wippersnapper_digitalio_DigitalIOEvent_DEFAULT NULL
#define wippersnapper_digitalio_DigitalIOEvent_value_MSGTYPE wippersnapper_sensor_SensorEvent
#define wippersnapper_digitalio_DigitalIOWrite_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, pin_name, 1) \
X(a, STATIC, OPTIONAL, MESSAGE, value, 2)
#define wippersnapper_digitalio_DigitalIOWrite_CALLBACK pb_default_field_callback
#define wippersnapper_digitalio_DigitalIOWrite_DEFAULT NULL
#define wippersnapper_digitalio_DigitalIOWrite_value_MSGTYPE wippersnapper_sensor_SensorEvent
extern const pb_msgdesc_t wippersnapper_digitalio_DigitalIOAdd_msg;
extern const pb_msgdesc_t wippersnapper_digitalio_DigitalIORemove_msg;
extern const pb_msgdesc_t wippersnapper_digitalio_DigitalIOEvent_msg;
extern const pb_msgdesc_t wippersnapper_digitalio_DigitalIOWrite_msg;
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define wippersnapper_digitalio_DigitalIOAdd_fields &wippersnapper_digitalio_DigitalIOAdd_msg
#define wippersnapper_digitalio_DigitalIORemove_fields &wippersnapper_digitalio_DigitalIORemove_msg
#define wippersnapper_digitalio_DigitalIOEvent_fields &wippersnapper_digitalio_DigitalIOEvent_msg
#define wippersnapper_digitalio_DigitalIOWrite_fields &wippersnapper_digitalio_DigitalIOWrite_msg
/* Maximum encoded size of messages (where known) */
/* wippersnapper_digitalio_DigitalIOAdd_size depends on runtime parameters */
/* wippersnapper_digitalio_DigitalIORemove_size depends on runtime parameters */
/* wippersnapper_digitalio_DigitalIOEvent_size depends on runtime parameters */
/* wippersnapper_digitalio_DigitalIOWrite_size depends on runtime parameters */
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif

View file

@ -0,0 +1,21 @@
/* Automatically generated nanopb constant definitions */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#include "ds18x20.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
PB_BIND(wippersnapper_ds18x20_Ds18x20Add, wippersnapper_ds18x20_Ds18x20Add, AUTO)
PB_BIND(wippersnapper_ds18x20_Ds18x20Added, wippersnapper_ds18x20_Ds18x20Added, AUTO)
PB_BIND(wippersnapper_ds18x20_Ds18x20Remove, wippersnapper_ds18x20_Ds18x20Remove, AUTO)
PB_BIND(wippersnapper_ds18x20_Ds18x20Event, wippersnapper_ds18x20_Ds18x20Event, AUTO)

View file

@ -0,0 +1,121 @@
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#ifndef PB_WIPPERSNAPPER_DS18X20_DS18X20_PB_H_INCLUDED
#define PB_WIPPERSNAPPER_DS18X20_DS18X20_PB_H_INCLUDED
#include <pb.h>
#include "sensor.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
/* Struct definitions */
/* *
Ds18x20Add represents a to initialize
a DS18X20 Maxim temperature sensor, from the broker.
NOTE: This API currently only supports ONE device per OneWire bus. */
typedef struct _wippersnapper_ds18x20_Ds18x20Add {
pb_callback_t onewire_pin; /* * The desired pin to use as a OneWire bus. */
int32_t sensor_resolution; /* * The desired sensor resolution (9, 10, 11, or 12 bits). */
float period; /* * The desired period to read the sensor, in seconds. */
pb_callback_t sensor_types; /* * SI types used by the DS18x20 sensor. */
} wippersnapper_ds18x20_Ds18x20Add;
/* *
Ds18x20AddDs18x20AddedResponse represents a device's response
to a Ds18x20Add message. */
typedef struct _wippersnapper_ds18x20_Ds18x20Added {
bool is_initialized; /* * True if the 1-wire bus has been initialized successfully, False otherwise. */
pb_callback_t onewire_pin; /* * The pin being used as a OneWire bus. */
} wippersnapper_ds18x20_Ds18x20Added;
/* *
Ds18x20Remove represents a to de-initialize a DS18X20
Maxim temperature sensor, from the broker. */
typedef struct _wippersnapper_ds18x20_Ds18x20Remove {
pb_callback_t onewire_pin; /* * The desired onewire bus to de-initialize a DS18x sensor on and release. */
} wippersnapper_ds18x20_Ds18x20Remove;
/* *
Ds18x20Event event represents data from **one** DS18X20 sensor. */
typedef struct _wippersnapper_ds18x20_Ds18x20Event {
pb_callback_t onewire_pin; /* * The desired pin to use as a OneWire bus. */
pb_callback_t sensor_events; /* * The DS18X20's SensorEvent. */
} wippersnapper_ds18x20_Ds18x20Event;
#ifdef __cplusplus
extern "C" {
#endif
/* Initializer values for message structs */
#define wippersnapper_ds18x20_Ds18x20Add_init_default {{{NULL}, NULL}, 0, 0, {{NULL}, NULL}}
#define wippersnapper_ds18x20_Ds18x20Added_init_default {0, {{NULL}, NULL}}
#define wippersnapper_ds18x20_Ds18x20Remove_init_default {{{NULL}, NULL}}
#define wippersnapper_ds18x20_Ds18x20Event_init_default {{{NULL}, NULL}, {{NULL}, NULL}}
#define wippersnapper_ds18x20_Ds18x20Add_init_zero {{{NULL}, NULL}, 0, 0, {{NULL}, NULL}}
#define wippersnapper_ds18x20_Ds18x20Added_init_zero {0, {{NULL}, NULL}}
#define wippersnapper_ds18x20_Ds18x20Remove_init_zero {{{NULL}, NULL}}
#define wippersnapper_ds18x20_Ds18x20Event_init_zero {{{NULL}, NULL}, {{NULL}, NULL}}
/* Field tags (for use in manual encoding/decoding) */
#define wippersnapper_ds18x20_Ds18x20Add_onewire_pin_tag 1
#define wippersnapper_ds18x20_Ds18x20Add_sensor_resolution_tag 2
#define wippersnapper_ds18x20_Ds18x20Add_period_tag 3
#define wippersnapper_ds18x20_Ds18x20Add_sensor_types_tag 4
#define wippersnapper_ds18x20_Ds18x20Added_is_initialized_tag 1
#define wippersnapper_ds18x20_Ds18x20Added_onewire_pin_tag 2
#define wippersnapper_ds18x20_Ds18x20Remove_onewire_pin_tag 1
#define wippersnapper_ds18x20_Ds18x20Event_onewire_pin_tag 1
#define wippersnapper_ds18x20_Ds18x20Event_sensor_events_tag 2
/* Struct field encoding specification for nanopb */
#define wippersnapper_ds18x20_Ds18x20Add_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, onewire_pin, 1) \
X(a, STATIC, SINGULAR, INT32, sensor_resolution, 2) \
X(a, STATIC, SINGULAR, FLOAT, period, 3) \
X(a, CALLBACK, REPEATED, UENUM, sensor_types, 4)
#define wippersnapper_ds18x20_Ds18x20Add_CALLBACK pb_default_field_callback
#define wippersnapper_ds18x20_Ds18x20Add_DEFAULT NULL
#define wippersnapper_ds18x20_Ds18x20Added_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, BOOL, is_initialized, 1) \
X(a, CALLBACK, SINGULAR, STRING, onewire_pin, 2)
#define wippersnapper_ds18x20_Ds18x20Added_CALLBACK pb_default_field_callback
#define wippersnapper_ds18x20_Ds18x20Added_DEFAULT NULL
#define wippersnapper_ds18x20_Ds18x20Remove_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, onewire_pin, 1)
#define wippersnapper_ds18x20_Ds18x20Remove_CALLBACK pb_default_field_callback
#define wippersnapper_ds18x20_Ds18x20Remove_DEFAULT NULL
#define wippersnapper_ds18x20_Ds18x20Event_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, onewire_pin, 1) \
X(a, CALLBACK, REPEATED, MESSAGE, sensor_events, 2)
#define wippersnapper_ds18x20_Ds18x20Event_CALLBACK pb_default_field_callback
#define wippersnapper_ds18x20_Ds18x20Event_DEFAULT NULL
#define wippersnapper_ds18x20_Ds18x20Event_sensor_events_MSGTYPE wippersnapper_sensor_SensorEvent
extern const pb_msgdesc_t wippersnapper_ds18x20_Ds18x20Add_msg;
extern const pb_msgdesc_t wippersnapper_ds18x20_Ds18x20Added_msg;
extern const pb_msgdesc_t wippersnapper_ds18x20_Ds18x20Remove_msg;
extern const pb_msgdesc_t wippersnapper_ds18x20_Ds18x20Event_msg;
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define wippersnapper_ds18x20_Ds18x20Add_fields &wippersnapper_ds18x20_Ds18x20Add_msg
#define wippersnapper_ds18x20_Ds18x20Added_fields &wippersnapper_ds18x20_Ds18x20Added_msg
#define wippersnapper_ds18x20_Ds18x20Remove_fields &wippersnapper_ds18x20_Ds18x20Remove_msg
#define wippersnapper_ds18x20_Ds18x20Event_fields &wippersnapper_ds18x20_Ds18x20Event_msg
/* Maximum encoded size of messages (where known) */
/* wippersnapper_ds18x20_Ds18x20Add_size depends on runtime parameters */
/* wippersnapper_ds18x20_Ds18x20Added_size depends on runtime parameters */
/* wippersnapper_ds18x20_Ds18x20Remove_size depends on runtime parameters */
/* wippersnapper_ds18x20_Ds18x20Event_size depends on runtime parameters */
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif

View file

@ -0,0 +1,12 @@
/* Automatically generated nanopb constant definitions */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#include "error.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
PB_BIND(wippersnapper_error_Error, wippersnapper_error_Error, AUTO)

View file

@ -0,0 +1,54 @@
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#ifndef PB_WIPPERSNAPPER_ERROR_ERROR_PB_H_INCLUDED
#define PB_WIPPERSNAPPER_ERROR_ERROR_PB_H_INCLUDED
#include <pb.h>
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
/* Struct definitions */
typedef struct _wippersnapper_error_Error {
pb_size_t which_payload;
union {
int32_t ban_time; /* Account ban time, in seconds */
int32_t throttle_time; /* Account time, in seconds */
} payload;
} wippersnapper_error_Error;
#ifdef __cplusplus
extern "C" {
#endif
/* Initializer values for message structs */
#define wippersnapper_error_Error_init_default {0, {0}}
#define wippersnapper_error_Error_init_zero {0, {0}}
/* Field tags (for use in manual encoding/decoding) */
#define wippersnapper_error_Error_ban_time_tag 1
#define wippersnapper_error_Error_throttle_time_tag 2
/* Struct field encoding specification for nanopb */
#define wippersnapper_error_Error_FIELDLIST(X, a) \
X(a, STATIC, ONEOF, INT32, (payload,ban_time,payload.ban_time), 1) \
X(a, STATIC, ONEOF, INT32, (payload,throttle_time,payload.throttle_time), 2)
#define wippersnapper_error_Error_CALLBACK NULL
#define wippersnapper_error_Error_DEFAULT NULL
extern const pb_msgdesc_t wippersnapper_error_Error_msg;
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define wippersnapper_error_Error_fields &wippersnapper_error_Error_msg
/* Maximum encoded size of messages (where known) */
#define WIPPERSNAPPER_ERROR_ERROR_PB_H_MAX_SIZE wippersnapper_error_Error_size
#define wippersnapper_error_Error_size 11
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif

View file

@ -0,0 +1,35 @@
/* Automatically generated nanopb constant definitions */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#include "i2c.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
PB_BIND(wippersnapper_i2c_I2cBusScan, wippersnapper_i2c_I2cBusScan, AUTO)
PB_BIND(wippersnapper_i2c_I2cBusScanned, wippersnapper_i2c_I2cBusScanned, AUTO)
PB_BIND(wippersnapper_i2c_I2cDeviceDescriptor, wippersnapper_i2c_I2cDeviceDescriptor, AUTO)
PB_BIND(wippersnapper_i2c_I2cDeviceAddOrReplace, wippersnapper_i2c_I2cDeviceAddOrReplace, AUTO)
PB_BIND(wippersnapper_i2c_I2cDeviceAddedOrReplaced, wippersnapper_i2c_I2cDeviceAddedOrReplaced, AUTO)
PB_BIND(wippersnapper_i2c_I2cDeviceRemove, wippersnapper_i2c_I2cDeviceRemove, AUTO)
PB_BIND(wippersnapper_i2c_I2cDeviceRemoved, wippersnapper_i2c_I2cDeviceRemoved, AUTO)
PB_BIND(wippersnapper_i2c_I2cDeviceEvent, wippersnapper_i2c_I2cDeviceEvent, AUTO)

View file

@ -0,0 +1,265 @@
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#ifndef PB_WIPPERSNAPPER_I2C_I2C_PB_H_INCLUDED
#define PB_WIPPERSNAPPER_I2C_I2C_PB_H_INCLUDED
#include <pb.h>
#include "sensor.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
/* Enum definitions */
/* *
I2cBusStatus represents the status of a board's I2C bus */
typedef enum _wippersnapper_i2c_I2cBusStatus {
wippersnapper_i2c_I2cBusStatus_I2C_BUS_STATUS_UNSPECIFIED = 0, /* * Unspecified error occurred. * */
wippersnapper_i2c_I2cBusStatus_I2C_BUS_STATUS_SUCCESS = 1, /* * I2C bus successfully initialized. * */
wippersnapper_i2c_I2cBusStatus_I2C_BUS_STATUS_ERROR_HANG = 2, /* * I2C Bus hang, user should reset their board if this persists. * */
wippersnapper_i2c_I2cBusStatus_I2C_BUS_STATUS_ERROR_PULLUPS = 3, /* * I2C bus failed to initialize - SDA or SCL needs a pull up. * */
wippersnapper_i2c_I2cBusStatus_I2C_BUS_STATUS_ERROR_WIRING = 4, /* * I2C bus failed to communicate - Please check your wiring. * */
wippersnapper_i2c_I2cBusStatus_I2C_BUS_STATUS_ERROR_INVALID_CHANNEL = 5 /* * I2C MUX failed - Output channel must be within range 0-7. * */
} wippersnapper_i2c_I2cBusStatus;
/* *
I2cDeviceStatus represents the state of an I2C device/peripheral */
typedef enum _wippersnapper_i2c_I2cDeviceStatus {
wippersnapper_i2c_I2cDeviceStatus_I2C_DEVICE_STATUS_UNSPECIFIED = 0, /* * Unspecified error occurred. * */
wippersnapper_i2c_I2cDeviceStatus_I2C_DEVICE_STATUS_SUCCESS = 1, /* * I2C device successfully initialized. * */
wippersnapper_i2c_I2cDeviceStatus_I2C_DEVICE_STATUS_FAIL_INIT = 2, /* * I2C device failed to initialize. * */
wippersnapper_i2c_I2cDeviceStatus_I2C_DEVICE_STATUS_FAIL_DEINIT = 3, /* * I2C device failed to deinitialize. * */
wippersnapper_i2c_I2cDeviceStatus_I2C_DEVICE_STATUS_FAIL_UNSUPPORTED_SENSOR = 4, /* * WipperSnapper version is outdated and does not include this device. * */
wippersnapper_i2c_I2cDeviceStatus_I2C_DEVICE_STATUS_NOT_FOUND = 5 /* * I2C device not found on the bus. * */
} wippersnapper_i2c_I2cDeviceStatus;
/* Struct definitions */
/* *
I2cBusScan represents a command for a device to perform an i2c scan. It is an empty message. */
typedef struct _wippersnapper_i2c_I2cBusScan {
char dummy_field;
} wippersnapper_i2c_I2cBusScan;
/* *
I2cBusScanned represents a list of I2c addresses
found on the bus after I2cScan has executed. */
typedef struct _wippersnapper_i2c_I2cBusScanned {
pb_callback_t i2c_bus_found_devices; /* * The 7-bit addresses of the I2c devices found on the bus, empty if not found. */
wippersnapper_i2c_I2cBusStatus i2c_bus_status; /* * The I2c bus' status. * */
} wippersnapper_i2c_I2cBusScanned;
/* *
I2cDeviceDescriptor represents the I2c device's address and related metadata. */
typedef struct _wippersnapper_i2c_I2cDeviceDescriptor {
uint32_t i2c_bus; /* * The desired i2c bus to address.* */
uint32_t i2c_device_mux_address; /* * The desired address of the I2C device or (optionally) the I2C MUX address.* */
uint32_t i2c_mux_channel; /* * (Optional) The desired I2C mux's output channel, from 0-7.* */
} wippersnapper_i2c_I2cDeviceDescriptor;
/* *
I2cDeviceAddOrReplace is a message for initializing (or replacing/updating) an i2c device. */
typedef struct _wippersnapper_i2c_I2cDeviceAddOrReplace {
bool has_i2c_device_description;
wippersnapper_i2c_I2cDeviceDescriptor i2c_device_description; /* * The I2c device's address and metadata. */
pb_callback_t i2c_device_name; /* * The I2c device's name, MUST MATCH the name on the JSON definition file on
https://github.com/adafruit/Wippersnapper_Components. */
float i2c_device_period; /* * The desired period to update the I2c device's sensor(s), in seconds. */
pb_callback_t i2c_device_sensor_types; /* * SI Types for each sensor on the I2c device. */
} wippersnapper_i2c_I2cDeviceAddOrReplace;
/* *
I2cDeviceAddedOrReplaced contains the response from a device after processing a I2cDeviceAddOrReplace message. */
typedef struct _wippersnapper_i2c_I2cDeviceAddedOrReplaced {
bool has_i2c_device_description;
wippersnapper_i2c_I2cDeviceDescriptor i2c_device_description; /* * The I2c device's address and metadata. */
wippersnapper_i2c_I2cBusStatus i2c_bus_status; /* * The I2c bus' status. * */
wippersnapper_i2c_I2cDeviceStatus i2c_device_status; /* * The I2c device's status. * */
} wippersnapper_i2c_I2cDeviceAddedOrReplaced;
/* *
I2cDeviceRemove represents a request to de-init an i2c device. */
typedef struct _wippersnapper_i2c_I2cDeviceRemove {
bool has_i2c_device_description;
wippersnapper_i2c_I2cDeviceDescriptor i2c_device_description; /* * The I2c device's address and metadata. */
} wippersnapper_i2c_I2cDeviceRemove;
/* *
I2cDeviceRemoved represents a response to a I2cDeviceRemove message. */
typedef struct _wippersnapper_i2c_I2cDeviceRemoved {
bool has_i2c_device_description;
wippersnapper_i2c_I2cDeviceDescriptor i2c_device_description; /* * The I2c device's address and metadata. */
wippersnapper_i2c_I2cBusStatus i2c_bus_status; /* * The I2c bus' status. * */
wippersnapper_i2c_I2cDeviceStatus i2c_device_status; /* * The I2c device's status. * */
} wippersnapper_i2c_I2cDeviceRemoved;
/* *
Each I2cDeviceEvent represents data from **one** I2c sensor.
NOTE: An I2cDeviceEvent can have multiple sensor events if
the I2c device contains > 1 sensor. */
typedef struct _wippersnapper_i2c_I2cDeviceEvent {
bool has_i2c_device_description;
wippersnapper_i2c_I2cDeviceDescriptor i2c_device_description; /* * The I2c device's address and metadata. */
pb_callback_t i2c_device_events; /* * A, optionally repeated, SensorEvent from a sensor. */
} wippersnapper_i2c_I2cDeviceEvent;
#ifdef __cplusplus
extern "C" {
#endif
/* Helper constants for enums */
#define _wippersnapper_i2c_I2cBusStatus_MIN wippersnapper_i2c_I2cBusStatus_I2C_BUS_STATUS_UNSPECIFIED
#define _wippersnapper_i2c_I2cBusStatus_MAX wippersnapper_i2c_I2cBusStatus_I2C_BUS_STATUS_ERROR_INVALID_CHANNEL
#define _wippersnapper_i2c_I2cBusStatus_ARRAYSIZE ((wippersnapper_i2c_I2cBusStatus)(wippersnapper_i2c_I2cBusStatus_I2C_BUS_STATUS_ERROR_INVALID_CHANNEL+1))
#define _wippersnapper_i2c_I2cDeviceStatus_MIN wippersnapper_i2c_I2cDeviceStatus_I2C_DEVICE_STATUS_UNSPECIFIED
#define _wippersnapper_i2c_I2cDeviceStatus_MAX wippersnapper_i2c_I2cDeviceStatus_I2C_DEVICE_STATUS_NOT_FOUND
#define _wippersnapper_i2c_I2cDeviceStatus_ARRAYSIZE ((wippersnapper_i2c_I2cDeviceStatus)(wippersnapper_i2c_I2cDeviceStatus_I2C_DEVICE_STATUS_NOT_FOUND+1))
#define wippersnapper_i2c_I2cBusScanned_i2c_bus_status_ENUMTYPE wippersnapper_i2c_I2cBusStatus
#define wippersnapper_i2c_I2cDeviceAddOrReplace_i2c_device_sensor_types_ENUMTYPE wippersnapper_sensor_SensorType
#define wippersnapper_i2c_I2cDeviceAddedOrReplaced_i2c_bus_status_ENUMTYPE wippersnapper_i2c_I2cBusStatus
#define wippersnapper_i2c_I2cDeviceAddedOrReplaced_i2c_device_status_ENUMTYPE wippersnapper_i2c_I2cDeviceStatus
#define wippersnapper_i2c_I2cDeviceRemoved_i2c_bus_status_ENUMTYPE wippersnapper_i2c_I2cBusStatus
#define wippersnapper_i2c_I2cDeviceRemoved_i2c_device_status_ENUMTYPE wippersnapper_i2c_I2cDeviceStatus
/* Initializer values for message structs */
#define wippersnapper_i2c_I2cBusScan_init_default {0}
#define wippersnapper_i2c_I2cBusScanned_init_default {{{NULL}, NULL}, _wippersnapper_i2c_I2cBusStatus_MIN}
#define wippersnapper_i2c_I2cDeviceDescriptor_init_default {0, 0, 0}
#define wippersnapper_i2c_I2cDeviceAddOrReplace_init_default {false, wippersnapper_i2c_I2cDeviceDescriptor_init_default, {{NULL}, NULL}, 0, {{NULL}, NULL}}
#define wippersnapper_i2c_I2cDeviceAddedOrReplaced_init_default {false, wippersnapper_i2c_I2cDeviceDescriptor_init_default, _wippersnapper_i2c_I2cBusStatus_MIN, _wippersnapper_i2c_I2cDeviceStatus_MIN}
#define wippersnapper_i2c_I2cDeviceRemove_init_default {false, wippersnapper_i2c_I2cDeviceDescriptor_init_default}
#define wippersnapper_i2c_I2cDeviceRemoved_init_default {false, wippersnapper_i2c_I2cDeviceDescriptor_init_default, _wippersnapper_i2c_I2cBusStatus_MIN, _wippersnapper_i2c_I2cDeviceStatus_MIN}
#define wippersnapper_i2c_I2cDeviceEvent_init_default {false, wippersnapper_i2c_I2cDeviceDescriptor_init_default, {{NULL}, NULL}}
#define wippersnapper_i2c_I2cBusScan_init_zero {0}
#define wippersnapper_i2c_I2cBusScanned_init_zero {{{NULL}, NULL}, _wippersnapper_i2c_I2cBusStatus_MIN}
#define wippersnapper_i2c_I2cDeviceDescriptor_init_zero {0, 0, 0}
#define wippersnapper_i2c_I2cDeviceAddOrReplace_init_zero {false, wippersnapper_i2c_I2cDeviceDescriptor_init_zero, {{NULL}, NULL}, 0, {{NULL}, NULL}}
#define wippersnapper_i2c_I2cDeviceAddedOrReplaced_init_zero {false, wippersnapper_i2c_I2cDeviceDescriptor_init_zero, _wippersnapper_i2c_I2cBusStatus_MIN, _wippersnapper_i2c_I2cDeviceStatus_MIN}
#define wippersnapper_i2c_I2cDeviceRemove_init_zero {false, wippersnapper_i2c_I2cDeviceDescriptor_init_zero}
#define wippersnapper_i2c_I2cDeviceRemoved_init_zero {false, wippersnapper_i2c_I2cDeviceDescriptor_init_zero, _wippersnapper_i2c_I2cBusStatus_MIN, _wippersnapper_i2c_I2cDeviceStatus_MIN}
#define wippersnapper_i2c_I2cDeviceEvent_init_zero {false, wippersnapper_i2c_I2cDeviceDescriptor_init_zero, {{NULL}, NULL}}
/* Field tags (for use in manual encoding/decoding) */
#define wippersnapper_i2c_I2cBusScanned_i2c_bus_found_devices_tag 1
#define wippersnapper_i2c_I2cBusScanned_i2c_bus_status_tag 2
#define wippersnapper_i2c_I2cDeviceDescriptor_i2c_bus_tag 1
#define wippersnapper_i2c_I2cDeviceDescriptor_i2c_device_mux_address_tag 2
#define wippersnapper_i2c_I2cDeviceDescriptor_i2c_mux_channel_tag 3
#define wippersnapper_i2c_I2cDeviceAddOrReplace_i2c_device_description_tag 1
#define wippersnapper_i2c_I2cDeviceAddOrReplace_i2c_device_name_tag 2
#define wippersnapper_i2c_I2cDeviceAddOrReplace_i2c_device_period_tag 3
#define wippersnapper_i2c_I2cDeviceAddOrReplace_i2c_device_sensor_types_tag 4
#define wippersnapper_i2c_I2cDeviceAddedOrReplaced_i2c_device_description_tag 1
#define wippersnapper_i2c_I2cDeviceAddedOrReplaced_i2c_bus_status_tag 2
#define wippersnapper_i2c_I2cDeviceAddedOrReplaced_i2c_device_status_tag 3
#define wippersnapper_i2c_I2cDeviceRemove_i2c_device_description_tag 1
#define wippersnapper_i2c_I2cDeviceRemoved_i2c_device_description_tag 1
#define wippersnapper_i2c_I2cDeviceRemoved_i2c_bus_status_tag 2
#define wippersnapper_i2c_I2cDeviceRemoved_i2c_device_status_tag 3
#define wippersnapper_i2c_I2cDeviceEvent_i2c_device_description_tag 1
#define wippersnapper_i2c_I2cDeviceEvent_i2c_device_events_tag 2
/* Struct field encoding specification for nanopb */
#define wippersnapper_i2c_I2cBusScan_FIELDLIST(X, a) \
#define wippersnapper_i2c_I2cBusScan_CALLBACK NULL
#define wippersnapper_i2c_I2cBusScan_DEFAULT NULL
#define wippersnapper_i2c_I2cBusScanned_FIELDLIST(X, a) \
X(a, CALLBACK, REPEATED, MESSAGE, i2c_bus_found_devices, 1) \
X(a, STATIC, SINGULAR, UENUM, i2c_bus_status, 2)
#define wippersnapper_i2c_I2cBusScanned_CALLBACK pb_default_field_callback
#define wippersnapper_i2c_I2cBusScanned_DEFAULT NULL
#define wippersnapper_i2c_I2cBusScanned_i2c_bus_found_devices_MSGTYPE wippersnapper_i2c_I2cDeviceDescriptor
#define wippersnapper_i2c_I2cDeviceDescriptor_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, UINT32, i2c_bus, 1) \
X(a, STATIC, SINGULAR, UINT32, i2c_device_mux_address, 2) \
X(a, STATIC, SINGULAR, UINT32, i2c_mux_channel, 3)
#define wippersnapper_i2c_I2cDeviceDescriptor_CALLBACK NULL
#define wippersnapper_i2c_I2cDeviceDescriptor_DEFAULT NULL
#define wippersnapper_i2c_I2cDeviceAddOrReplace_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, MESSAGE, i2c_device_description, 1) \
X(a, CALLBACK, SINGULAR, STRING, i2c_device_name, 2) \
X(a, STATIC, SINGULAR, FLOAT, i2c_device_period, 3) \
X(a, CALLBACK, REPEATED, UENUM, i2c_device_sensor_types, 4)
#define wippersnapper_i2c_I2cDeviceAddOrReplace_CALLBACK pb_default_field_callback
#define wippersnapper_i2c_I2cDeviceAddOrReplace_DEFAULT NULL
#define wippersnapper_i2c_I2cDeviceAddOrReplace_i2c_device_description_MSGTYPE wippersnapper_i2c_I2cDeviceDescriptor
#define wippersnapper_i2c_I2cDeviceAddedOrReplaced_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, MESSAGE, i2c_device_description, 1) \
X(a, STATIC, SINGULAR, UENUM, i2c_bus_status, 2) \
X(a, STATIC, SINGULAR, UENUM, i2c_device_status, 3)
#define wippersnapper_i2c_I2cDeviceAddedOrReplaced_CALLBACK NULL
#define wippersnapper_i2c_I2cDeviceAddedOrReplaced_DEFAULT NULL
#define wippersnapper_i2c_I2cDeviceAddedOrReplaced_i2c_device_description_MSGTYPE wippersnapper_i2c_I2cDeviceDescriptor
#define wippersnapper_i2c_I2cDeviceRemove_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, MESSAGE, i2c_device_description, 1)
#define wippersnapper_i2c_I2cDeviceRemove_CALLBACK NULL
#define wippersnapper_i2c_I2cDeviceRemove_DEFAULT NULL
#define wippersnapper_i2c_I2cDeviceRemove_i2c_device_description_MSGTYPE wippersnapper_i2c_I2cDeviceDescriptor
#define wippersnapper_i2c_I2cDeviceRemoved_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, MESSAGE, i2c_device_description, 1) \
X(a, STATIC, SINGULAR, UENUM, i2c_bus_status, 2) \
X(a, STATIC, SINGULAR, UENUM, i2c_device_status, 3)
#define wippersnapper_i2c_I2cDeviceRemoved_CALLBACK NULL
#define wippersnapper_i2c_I2cDeviceRemoved_DEFAULT NULL
#define wippersnapper_i2c_I2cDeviceRemoved_i2c_device_description_MSGTYPE wippersnapper_i2c_I2cDeviceDescriptor
#define wippersnapper_i2c_I2cDeviceEvent_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, MESSAGE, i2c_device_description, 1) \
X(a, CALLBACK, REPEATED, MESSAGE, i2c_device_events, 2)
#define wippersnapper_i2c_I2cDeviceEvent_CALLBACK pb_default_field_callback
#define wippersnapper_i2c_I2cDeviceEvent_DEFAULT NULL
#define wippersnapper_i2c_I2cDeviceEvent_i2c_device_description_MSGTYPE wippersnapper_i2c_I2cDeviceDescriptor
#define wippersnapper_i2c_I2cDeviceEvent_i2c_device_events_MSGTYPE wippersnapper_sensor_SensorEvent
extern const pb_msgdesc_t wippersnapper_i2c_I2cBusScan_msg;
extern const pb_msgdesc_t wippersnapper_i2c_I2cBusScanned_msg;
extern const pb_msgdesc_t wippersnapper_i2c_I2cDeviceDescriptor_msg;
extern const pb_msgdesc_t wippersnapper_i2c_I2cDeviceAddOrReplace_msg;
extern const pb_msgdesc_t wippersnapper_i2c_I2cDeviceAddedOrReplaced_msg;
extern const pb_msgdesc_t wippersnapper_i2c_I2cDeviceRemove_msg;
extern const pb_msgdesc_t wippersnapper_i2c_I2cDeviceRemoved_msg;
extern const pb_msgdesc_t wippersnapper_i2c_I2cDeviceEvent_msg;
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define wippersnapper_i2c_I2cBusScan_fields &wippersnapper_i2c_I2cBusScan_msg
#define wippersnapper_i2c_I2cBusScanned_fields &wippersnapper_i2c_I2cBusScanned_msg
#define wippersnapper_i2c_I2cDeviceDescriptor_fields &wippersnapper_i2c_I2cDeviceDescriptor_msg
#define wippersnapper_i2c_I2cDeviceAddOrReplace_fields &wippersnapper_i2c_I2cDeviceAddOrReplace_msg
#define wippersnapper_i2c_I2cDeviceAddedOrReplaced_fields &wippersnapper_i2c_I2cDeviceAddedOrReplaced_msg
#define wippersnapper_i2c_I2cDeviceRemove_fields &wippersnapper_i2c_I2cDeviceRemove_msg
#define wippersnapper_i2c_I2cDeviceRemoved_fields &wippersnapper_i2c_I2cDeviceRemoved_msg
#define wippersnapper_i2c_I2cDeviceEvent_fields &wippersnapper_i2c_I2cDeviceEvent_msg
/* Maximum encoded size of messages (where known) */
/* wippersnapper_i2c_I2cBusScanned_size depends on runtime parameters */
/* wippersnapper_i2c_I2cDeviceAddOrReplace_size depends on runtime parameters */
/* wippersnapper_i2c_I2cDeviceEvent_size depends on runtime parameters */
#define WIPPERSNAPPER_I2C_I2C_PB_H_MAX_SIZE wippersnapper_i2c_I2cDeviceAddedOrReplaced_size
#define wippersnapper_i2c_I2cBusScan_size 0
#define wippersnapper_i2c_I2cDeviceAddedOrReplaced_size 24
#define wippersnapper_i2c_I2cDeviceDescriptor_size 18
#define wippersnapper_i2c_I2cDeviceRemove_size 20
#define wippersnapper_i2c_I2cDeviceRemoved_size 24
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif

View file

@ -0,0 +1,23 @@
/* Automatically generated nanopb constant definitions */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#include "pixels.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
PB_BIND(wippersnapper_pixels_PixelsAdd, wippersnapper_pixels_PixelsAdd, AUTO)
PB_BIND(wippersnapper_pixels_PixelsAdded, wippersnapper_pixels_PixelsAdded, AUTO)
PB_BIND(wippersnapper_pixels_PixelsRemove, wippersnapper_pixels_PixelsRemove, AUTO)
PB_BIND(wippersnapper_pixels_PixelsWrite, wippersnapper_pixels_PixelsWrite, AUTO)

View file

@ -0,0 +1,166 @@
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#ifndef PB_WIPPERSNAPPER_PIXELS_PIXELS_PB_H_INCLUDED
#define PB_WIPPERSNAPPER_PIXELS_PIXELS_PB_H_INCLUDED
#include <pb.h>
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
/* Enum definitions */
/* *
PixelsType defines the type/model of pixel strand. */
typedef enum _wippersnapper_pixels_PixelsType {
wippersnapper_pixels_PixelsType_PIXELS_TYPE_UNSPECIFIED = 0, /* * Unspecified pixel type, error. */
wippersnapper_pixels_PixelsType_PIXELS_TYPE_NEOPIXEL = 1, /* * NeoPixel pixel strand. */
wippersnapper_pixels_PixelsType_PIXELS_TYPE_DOTSTAR = 2 /* * DotStar pixel strand. */
} wippersnapper_pixels_PixelsType;
/* *
PixelsOrder defines the color ordering. */
typedef enum _wippersnapper_pixels_PixelsOrder {
wippersnapper_pixels_PixelsOrder_PIXELS_ORDER_UNSPECIFIED = 0, /* * Unspecified color ordering, error. */
wippersnapper_pixels_PixelsOrder_PIXELS_ORDER_GRB = 1, /* * DEFAULT for NeoPixels - Green, Red, Blue */
wippersnapper_pixels_PixelsOrder_PIXELS_ORDER_GRBW = 2, /* * Green, Red, Blue, White */
wippersnapper_pixels_PixelsOrder_PIXELS_ORDER_RGB = 3, /* * Red, Green, Blue */
wippersnapper_pixels_PixelsOrder_PIXELS_ORDER_RGBW = 4, /* * Red, Green, Blue, White */
wippersnapper_pixels_PixelsOrder_PIXELS_ORDER_BRG = 5, /* * DEFAULT for DotStars - Blue, Red, Green */
wippersnapper_pixels_PixelsOrder_PIXELS_ORDER_RBG = 6, /* * Red, Blue Green */
wippersnapper_pixels_PixelsOrder_PIXELS_ORDER_GBR = 7, /* * Green, Blue, Red */
wippersnapper_pixels_PixelsOrder_PIXELS_ORDER_BGR = 8 /* * Blue, Green, Red */
} wippersnapper_pixels_PixelsOrder;
/* Struct definitions */
/* *
PixelsAdd represents a call from IO to a device.
Adds a strand of addressable pixels.
Initial brightness is always 128. */
typedef struct _wippersnapper_pixels_PixelsAdd {
wippersnapper_pixels_PixelsType pixels_type; /* * Defines the model/type of pixel strand */
uint32_t pixels_num; /* * Number of pixels attached to strand. */
wippersnapper_pixels_PixelsOrder pixels_ordering; /* * Defines the pixel strand's color ordering. */
uint32_t pixels_brightness; /* * Strand brightness, 0 to 255 */
pb_callback_t pixels_pin_data; /* * Data pin a NeoPixel or DotStar strand is connected to. */
pb_callback_t pixels_pin_dotstar_clock; /* * Clock pin a DotStar strand is connected to. */
} wippersnapper_pixels_PixelsAdd;
/* *
PixelsAdded represents response from a WipperSnapper
device to IO after a PixelsAdd call */
typedef struct _wippersnapper_pixels_PixelsAdded {
bool is_success; /* * True if the strand initialized successfully, False otherwise. */
pb_callback_t pixels_pin_data; /* * Data pin the responding strand is connected to. */
} wippersnapper_pixels_PixelsAdded;
/* *
PixelAdd represents a call from IO to a device
Removes a strand of addressable pixels and release the resources and pin. */
typedef struct _wippersnapper_pixels_PixelsRemove {
pb_callback_t pixels_pin_data; /* * Data pin the pixel strand is connected to. */
} wippersnapper_pixels_PixelsRemove;
/* *
PixelsWrite represents a call from IO to a device.
Writes to a strand of pixels. */
typedef struct _wippersnapper_pixels_PixelsWrite {
pb_callback_t pixels_pin_data; /* * Data pin a strand is connected to. */
uint32_t pixels_color; /* 32-bit color value. Most significant byte is white (for RGBW pixels) or ignored (for RGB pixels),
next is red, then green, and least significant byte is blue. */
} wippersnapper_pixels_PixelsWrite;
#ifdef __cplusplus
extern "C" {
#endif
/* Helper constants for enums */
#define _wippersnapper_pixels_PixelsType_MIN wippersnapper_pixels_PixelsType_PIXELS_TYPE_UNSPECIFIED
#define _wippersnapper_pixels_PixelsType_MAX wippersnapper_pixels_PixelsType_PIXELS_TYPE_DOTSTAR
#define _wippersnapper_pixels_PixelsType_ARRAYSIZE ((wippersnapper_pixels_PixelsType)(wippersnapper_pixels_PixelsType_PIXELS_TYPE_DOTSTAR+1))
#define _wippersnapper_pixels_PixelsOrder_MIN wippersnapper_pixels_PixelsOrder_PIXELS_ORDER_UNSPECIFIED
#define _wippersnapper_pixels_PixelsOrder_MAX wippersnapper_pixels_PixelsOrder_PIXELS_ORDER_BGR
#define _wippersnapper_pixels_PixelsOrder_ARRAYSIZE ((wippersnapper_pixels_PixelsOrder)(wippersnapper_pixels_PixelsOrder_PIXELS_ORDER_BGR+1))
#define wippersnapper_pixels_PixelsAdd_pixels_type_ENUMTYPE wippersnapper_pixels_PixelsType
#define wippersnapper_pixels_PixelsAdd_pixels_ordering_ENUMTYPE wippersnapper_pixels_PixelsOrder
/* Initializer values for message structs */
#define wippersnapper_pixels_PixelsAdd_init_default {_wippersnapper_pixels_PixelsType_MIN, 0, _wippersnapper_pixels_PixelsOrder_MIN, 0, {{NULL}, NULL}, {{NULL}, NULL}}
#define wippersnapper_pixels_PixelsAdded_init_default {0, {{NULL}, NULL}}
#define wippersnapper_pixels_PixelsRemove_init_default {{{NULL}, NULL}}
#define wippersnapper_pixels_PixelsWrite_init_default {{{NULL}, NULL}, 0}
#define wippersnapper_pixels_PixelsAdd_init_zero {_wippersnapper_pixels_PixelsType_MIN, 0, _wippersnapper_pixels_PixelsOrder_MIN, 0, {{NULL}, NULL}, {{NULL}, NULL}}
#define wippersnapper_pixels_PixelsAdded_init_zero {0, {{NULL}, NULL}}
#define wippersnapper_pixels_PixelsRemove_init_zero {{{NULL}, NULL}}
#define wippersnapper_pixels_PixelsWrite_init_zero {{{NULL}, NULL}, 0}
/* Field tags (for use in manual encoding/decoding) */
#define wippersnapper_pixels_PixelsAdd_pixels_type_tag 1
#define wippersnapper_pixels_PixelsAdd_pixels_num_tag 2
#define wippersnapper_pixels_PixelsAdd_pixels_ordering_tag 3
#define wippersnapper_pixels_PixelsAdd_pixels_brightness_tag 4
#define wippersnapper_pixels_PixelsAdd_pixels_pin_data_tag 5
#define wippersnapper_pixels_PixelsAdd_pixels_pin_dotstar_clock_tag 6
#define wippersnapper_pixels_PixelsAdded_is_success_tag 1
#define wippersnapper_pixels_PixelsAdded_pixels_pin_data_tag 2
#define wippersnapper_pixels_PixelsRemove_pixels_pin_data_tag 1
#define wippersnapper_pixels_PixelsWrite_pixels_pin_data_tag 1
#define wippersnapper_pixels_PixelsWrite_pixels_color_tag 2
/* Struct field encoding specification for nanopb */
#define wippersnapper_pixels_PixelsAdd_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, UENUM, pixels_type, 1) \
X(a, STATIC, SINGULAR, UINT32, pixels_num, 2) \
X(a, STATIC, SINGULAR, UENUM, pixels_ordering, 3) \
X(a, STATIC, SINGULAR, UINT32, pixels_brightness, 4) \
X(a, CALLBACK, SINGULAR, STRING, pixels_pin_data, 5) \
X(a, CALLBACK, SINGULAR, STRING, pixels_pin_dotstar_clock, 6)
#define wippersnapper_pixels_PixelsAdd_CALLBACK pb_default_field_callback
#define wippersnapper_pixels_PixelsAdd_DEFAULT NULL
#define wippersnapper_pixels_PixelsAdded_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, BOOL, is_success, 1) \
X(a, CALLBACK, SINGULAR, STRING, pixels_pin_data, 2)
#define wippersnapper_pixels_PixelsAdded_CALLBACK pb_default_field_callback
#define wippersnapper_pixels_PixelsAdded_DEFAULT NULL
#define wippersnapper_pixels_PixelsRemove_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, pixels_pin_data, 1)
#define wippersnapper_pixels_PixelsRemove_CALLBACK pb_default_field_callback
#define wippersnapper_pixels_PixelsRemove_DEFAULT NULL
#define wippersnapper_pixels_PixelsWrite_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, pixels_pin_data, 1) \
X(a, STATIC, SINGULAR, UINT32, pixels_color, 2)
#define wippersnapper_pixels_PixelsWrite_CALLBACK pb_default_field_callback
#define wippersnapper_pixels_PixelsWrite_DEFAULT NULL
extern const pb_msgdesc_t wippersnapper_pixels_PixelsAdd_msg;
extern const pb_msgdesc_t wippersnapper_pixels_PixelsAdded_msg;
extern const pb_msgdesc_t wippersnapper_pixels_PixelsRemove_msg;
extern const pb_msgdesc_t wippersnapper_pixels_PixelsWrite_msg;
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define wippersnapper_pixels_PixelsAdd_fields &wippersnapper_pixels_PixelsAdd_msg
#define wippersnapper_pixels_PixelsAdded_fields &wippersnapper_pixels_PixelsAdded_msg
#define wippersnapper_pixels_PixelsRemove_fields &wippersnapper_pixels_PixelsRemove_msg
#define wippersnapper_pixels_PixelsWrite_fields &wippersnapper_pixels_PixelsWrite_msg
/* Maximum encoded size of messages (where known) */
/* wippersnapper_pixels_PixelsAdd_size depends on runtime parameters */
/* wippersnapper_pixels_PixelsAdded_size depends on runtime parameters */
/* wippersnapper_pixels_PixelsRemove_size depends on runtime parameters */
/* wippersnapper_pixels_PixelsWrite_size depends on runtime parameters */
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif

View file

@ -0,0 +1,27 @@
/* Automatically generated nanopb constant definitions */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#include "pwm.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
PB_BIND(wippersnapper_pwm_PWMAdd, wippersnapper_pwm_PWMAdd, AUTO)
PB_BIND(wippersnapper_pwm_PWMAdded, wippersnapper_pwm_PWMAdded, AUTO)
PB_BIND(wippersnapper_pwm_PWMRemove, wippersnapper_pwm_PWMRemove, AUTO)
PB_BIND(wippersnapper_pwm_PWMWriteDutyCycle, wippersnapper_pwm_PWMWriteDutyCycle, AUTO)
PB_BIND(wippersnapper_pwm_PWMWriteDutyCycleMulti, wippersnapper_pwm_PWMWriteDutyCycleMulti, AUTO)
PB_BIND(wippersnapper_pwm_PWMWriteFrequency, wippersnapper_pwm_PWMWriteFrequency, AUTO)

View file

@ -0,0 +1,159 @@
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#ifndef PB_WIPPERSNAPPER_PWM_PWM_PB_H_INCLUDED
#define PB_WIPPERSNAPPER_PWM_PWM_PB_H_INCLUDED
#include <pb.h>
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
/* Struct definitions */
/* *
PWMAdd represents a to a device to attach/allocate a PWM pin.
On ESP32 Arduino, this will "attach" a pin to a LEDC channel/timer group.
On non-ESP32 Arduino, this does nothing. */
typedef struct _wippersnapper_pwm_PWMAdd {
pb_callback_t pin; /* * The pin to be attached. */
int32_t frequency; /* * PWM frequency of an analog pin, in Hz. * */
int32_t resolution; /* * The resolution of an analog pin, in bits. * */
} wippersnapper_pwm_PWMAdd;
/* *
PWMAdded represents a response from a device's execution of an
Add message. */
typedef struct _wippersnapper_pwm_PWMAdded {
pb_callback_t pin; /* * The ed pin. */
bool did_attach; /* * True if Add successful, False otherwise. */
} wippersnapper_pwm_PWMAdded;
/* *
PWMRemove represents a to stop PWM'ing and release the pin for re-use.
On ESP32, this will "detach" a pin from a LEDC channel/timer group.
On non-ESP32 Arduino, this calls digitalWrite(LOW) on the pin */
typedef struct _wippersnapper_pwm_PWMRemove {
pb_callback_t pin; /* * The PWM pin to de-initialized. */
} wippersnapper_pwm_PWMRemove;
/* *
PWMWriteDutyCycle represents a to write a duty cycle to a pin with a frequency (fixed).
This is used for controlling LEDs. */
typedef struct _wippersnapper_pwm_PWMWriteDutyCycle {
pb_callback_t pin; /* * The pin to write to. */
int32_t duty_cycle; /* * The desired duty cycle to write (range is from 0 to (2 ** duty_resolution)).
This value will be changed by the slider on Adafruit IO. * */
} wippersnapper_pwm_PWMWriteDutyCycle;
/* *
PWMWriteDutyCycleMulti represents a wrapper to write duty cycles to multiple pins.
This is used for controlling RGB/RGBW LEDs. */
typedef struct _wippersnapper_pwm_PWMWriteDutyCycleMulti {
pb_callback_t write_duty_cycle_reqs; /* * Multiple duty cycles to write, one per pin of a RGB LED. * */
} wippersnapper_pwm_PWMWriteDutyCycleMulti;
/* *
PWMWriteFrequency represents a to write a Frequency, in Hz, to a pin with a duty cycle of 50%.
This is used for playing tones using a piezo buzzer or speaker. */
typedef struct _wippersnapper_pwm_PWMWriteFrequency {
pb_callback_t pin; /* * The pin to write to. */
int32_t frequency; /* * The desired PWM frequency, in Hz. This value will be changed by the slider on Adafruit IO. * */
} wippersnapper_pwm_PWMWriteFrequency;
#ifdef __cplusplus
extern "C" {
#endif
/* Initializer values for message structs */
#define wippersnapper_pwm_PWMAdd_init_default {{{NULL}, NULL}, 0, 0}
#define wippersnapper_pwm_PWMAdded_init_default {{{NULL}, NULL}, 0}
#define wippersnapper_pwm_PWMRemove_init_default {{{NULL}, NULL}}
#define wippersnapper_pwm_PWMWriteDutyCycle_init_default {{{NULL}, NULL}, 0}
#define wippersnapper_pwm_PWMWriteDutyCycleMulti_init_default {{{NULL}, NULL}}
#define wippersnapper_pwm_PWMWriteFrequency_init_default {{{NULL}, NULL}, 0}
#define wippersnapper_pwm_PWMAdd_init_zero {{{NULL}, NULL}, 0, 0}
#define wippersnapper_pwm_PWMAdded_init_zero {{{NULL}, NULL}, 0}
#define wippersnapper_pwm_PWMRemove_init_zero {{{NULL}, NULL}}
#define wippersnapper_pwm_PWMWriteDutyCycle_init_zero {{{NULL}, NULL}, 0}
#define wippersnapper_pwm_PWMWriteDutyCycleMulti_init_zero {{{NULL}, NULL}}
#define wippersnapper_pwm_PWMWriteFrequency_init_zero {{{NULL}, NULL}, 0}
/* Field tags (for use in manual encoding/decoding) */
#define wippersnapper_pwm_PWMAdd_pin_tag 1
#define wippersnapper_pwm_PWMAdd_frequency_tag 2
#define wippersnapper_pwm_PWMAdd_resolution_tag 3
#define wippersnapper_pwm_PWMAdded_pin_tag 1
#define wippersnapper_pwm_PWMAdded_did_attach_tag 2
#define wippersnapper_pwm_PWMRemove_pin_tag 1
#define wippersnapper_pwm_PWMWriteDutyCycle_pin_tag 1
#define wippersnapper_pwm_PWMWriteDutyCycle_duty_cycle_tag 2
#define wippersnapper_pwm_PWMWriteDutyCycleMulti_write_duty_cycle_reqs_tag 1
#define wippersnapper_pwm_PWMWriteFrequency_pin_tag 1
#define wippersnapper_pwm_PWMWriteFrequency_frequency_tag 2
/* Struct field encoding specification for nanopb */
#define wippersnapper_pwm_PWMAdd_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, pin, 1) \
X(a, STATIC, SINGULAR, INT32, frequency, 2) \
X(a, STATIC, SINGULAR, INT32, resolution, 3)
#define wippersnapper_pwm_PWMAdd_CALLBACK pb_default_field_callback
#define wippersnapper_pwm_PWMAdd_DEFAULT NULL
#define wippersnapper_pwm_PWMAdded_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, pin, 1) \
X(a, STATIC, SINGULAR, BOOL, did_attach, 2)
#define wippersnapper_pwm_PWMAdded_CALLBACK pb_default_field_callback
#define wippersnapper_pwm_PWMAdded_DEFAULT NULL
#define wippersnapper_pwm_PWMRemove_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, pin, 1)
#define wippersnapper_pwm_PWMRemove_CALLBACK pb_default_field_callback
#define wippersnapper_pwm_PWMRemove_DEFAULT NULL
#define wippersnapper_pwm_PWMWriteDutyCycle_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, pin, 1) \
X(a, STATIC, SINGULAR, INT32, duty_cycle, 2)
#define wippersnapper_pwm_PWMWriteDutyCycle_CALLBACK pb_default_field_callback
#define wippersnapper_pwm_PWMWriteDutyCycle_DEFAULT NULL
#define wippersnapper_pwm_PWMWriteDutyCycleMulti_FIELDLIST(X, a) \
X(a, CALLBACK, REPEATED, MESSAGE, write_duty_cycle_reqs, 1)
#define wippersnapper_pwm_PWMWriteDutyCycleMulti_CALLBACK pb_default_field_callback
#define wippersnapper_pwm_PWMWriteDutyCycleMulti_DEFAULT NULL
#define wippersnapper_pwm_PWMWriteDutyCycleMulti_write_duty_cycle_reqs_MSGTYPE wippersnapper_pwm_PWMWriteDutyCycle
#define wippersnapper_pwm_PWMWriteFrequency_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, pin, 1) \
X(a, STATIC, SINGULAR, INT32, frequency, 2)
#define wippersnapper_pwm_PWMWriteFrequency_CALLBACK pb_default_field_callback
#define wippersnapper_pwm_PWMWriteFrequency_DEFAULT NULL
extern const pb_msgdesc_t wippersnapper_pwm_PWMAdd_msg;
extern const pb_msgdesc_t wippersnapper_pwm_PWMAdded_msg;
extern const pb_msgdesc_t wippersnapper_pwm_PWMRemove_msg;
extern const pb_msgdesc_t wippersnapper_pwm_PWMWriteDutyCycle_msg;
extern const pb_msgdesc_t wippersnapper_pwm_PWMWriteDutyCycleMulti_msg;
extern const pb_msgdesc_t wippersnapper_pwm_PWMWriteFrequency_msg;
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define wippersnapper_pwm_PWMAdd_fields &wippersnapper_pwm_PWMAdd_msg
#define wippersnapper_pwm_PWMAdded_fields &wippersnapper_pwm_PWMAdded_msg
#define wippersnapper_pwm_PWMRemove_fields &wippersnapper_pwm_PWMRemove_msg
#define wippersnapper_pwm_PWMWriteDutyCycle_fields &wippersnapper_pwm_PWMWriteDutyCycle_msg
#define wippersnapper_pwm_PWMWriteDutyCycleMulti_fields &wippersnapper_pwm_PWMWriteDutyCycleMulti_msg
#define wippersnapper_pwm_PWMWriteFrequency_fields &wippersnapper_pwm_PWMWriteFrequency_msg
/* Maximum encoded size of messages (where known) */
/* wippersnapper_pwm_PWMAdd_size depends on runtime parameters */
/* wippersnapper_pwm_PWMAdded_size depends on runtime parameters */
/* wippersnapper_pwm_PWMRemove_size depends on runtime parameters */
/* wippersnapper_pwm_PWMWriteDutyCycle_size depends on runtime parameters */
/* wippersnapper_pwm_PWMWriteDutyCycleMulti_size depends on runtime parameters */
/* wippersnapper_pwm_PWMWriteFrequency_size depends on runtime parameters */
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif

View file

@ -0,0 +1,22 @@
/* Automatically generated nanopb constant definitions */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#include "sensor.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
PB_BIND(wippersnapper_sensor_SensorEvent, wippersnapper_sensor_SensorEvent, AUTO)
PB_BIND(wippersnapper_sensor_SensorEvent_SensorEventColor, wippersnapper_sensor_SensorEvent_SensorEventColor, AUTO)
PB_BIND(wippersnapper_sensor_SensorEvent_SensorEvent3DVector, wippersnapper_sensor_SensorEvent_SensorEvent3DVector, AUTO)
PB_BIND(wippersnapper_sensor_SensorEvent_SensorEventOrientation, wippersnapper_sensor_SensorEvent_SensorEventOrientation, AUTO)

View file

@ -0,0 +1,201 @@
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#ifndef PB_WIPPERSNAPPER_SENSOR_SENSOR_PB_H_INCLUDED
#define PB_WIPPERSNAPPER_SENSOR_SENSOR_PB_H_INCLUDED
#include <pb.h>
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
/* Enum definitions */
/* *
SensorType allows us determine what types of units the sensor uses, etc. */
typedef enum _wippersnapper_sensor_SensorType {
wippersnapper_sensor_SensorType_SENSOR_TYPE_UNSPECIFIED = 0, /* * Sensor value type which is not defined by this list, "Raw Value: {value}". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_ACCELEROMETER = 1, /* * Acceleration, in meter per second per second, "{value}m/s/s". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_MAGNETIC_FIELD = 2, /* * Magnetic field strength, in micro-Tesla, "{value}µT". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_ORIENTATION = 3, /* * Orientation angle, in degrees, "{value}°". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_GYROSCOPE = 4, /* * Angular rate, in radians per second, "{value}rad/s". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_LIGHT = 5, /* * Light-level, non-unit-specific (For a unit-specific measurement, see: Lux),
"Raw Value: {value}". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_PRESSURE = 6, /* * Pressure, in hectopascal, , "{value}hPa". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_PROXIMITY = 8, /* * Distance from an object to a sensor, non-unit-specific, "Raw Value: {value}". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_GRAVITY = 9, /* * Metres per second squared, "{value}m/s^2". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_LINEAR_ACCELERATION = 10, /* * Acceleration not including gravity, in meter per second squared, "{value}m/s^2". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_ROTATION_VECTOR = 11, /* * An angle in radians, "{value} rad". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_RELATIVE_HUMIDITY = 12, /* * in percent (%), "{value}%". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_AMBIENT_TEMPERATURE = 13, /* * Temperature of the air around a sensor, in degrees Celsius, "{value}°C". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_OBJECT_TEMPERATURE = 14, /* * Temperature of the object a sensor is touching/pointed at, in degrees Celsius, "{value}°C". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_VOLTAGE = 15, /* * Volts, "{value}V". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_CURRENT = 16, /* * Milliamps, "{value}mA". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_COLOR = 17, /* * Values are in 0..1.0 RGB channel luminosity and 32-bit RGBA format. "Color: {value}". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_RAW = 18, /* * Sensor reads a value which is not defined by this list, "Raw Value: {value}". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_PM10_STD = 19, /* * Standard Particulate Matter 1.0, in ppm, "{value}ppm". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_PM25_STD = 20, /* * Standard Particulate Matter 2.5, in ppm, "{value}ppm". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_PM100_STD = 21, /* * Standard Particulate Matter 100, in ppm, "{value}ppm". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_PM10_ENV = 22, /* * Environmental Particulate Matter 1.0, in ppm, "{value}ppm". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_PM25_ENV = 23, /* * Environmental Particulate Matter 2.5, in ppm, "{value}ppm". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_PM100_ENV = 24, /* * Environmental Particulate Matter 100, in ppm, "{value}ppm". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_CO2 = 25, /* * Measured CO2, in ppm, "{value}ppm". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_GAS_RESISTANCE = 26, /* * Proportional to the amount of VOC particles in the air, in Ohms, "{value}Ω". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_ALTITUDE = 27, /* * Values are in meters (m), "${$v} m". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_LUX = 28, /* * Light level, in lux, "Lux: {value}". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_ECO2 = 29, /* * equivalent/estimated CO2 in ppm (estimated from some other measurement), "{value}ppm". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_UNITLESS_PERCENT = 30, /* * Percentage, unit-less, "{value}%". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_AMBIENT_TEMPERATURE_FAHRENHEIT = 31, /* * Temperature of the air around a sensor, in degrees Fahrenheit, "{value}°F". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_OBJECT_TEMPERATURE_FAHRENHEIT = 32, /* * Temperature of the object a sensor is touching/pointed at, in Fahrenheit, "{value}°F". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_VOC_INDEX = 33, /* * Values are an index from 1-500 with 100 being normal, "${$v} VOC". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_NOX_INDEX = 34, /* * Values are an index from 1-500 with 100 being normal, "${$v} NOx". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_TVOC = 35, /* * Values are in parts per billion (ppb), "${$v} ppb". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_BYTES = 36, /* * Values are in bytes, "${$v} bytes". */
wippersnapper_sensor_SensorType_SENSOR_TYPE_BOOLEAN = 37 /* * Values are boolean, "Boolean Value: ${$v}". */
} wippersnapper_sensor_SensorType;
/* Struct definitions */
/* *
SensorEventColor is used to return a sensor's color values in RGB colorspace. */
typedef struct _wippersnapper_sensor_SensorEvent_SensorEventColor {
float r; /* * The sensor's red channel value as a float. */
float g; /* * The sensor's green channel value as a float. */
float b; /* * The sensor's blue channel value as a float. */
float a; /* * The sensor's (optional) alpha channel value as a float. */
} wippersnapper_sensor_SensorEvent_SensorEventColor;
/* *
SensorEvent3DVector is used to return a sensor's 3D vector values. */
typedef struct _wippersnapper_sensor_SensorEvent_SensorEvent3DVector {
float x; /* * The sensor's x-axis value as a float. */
float y; /* * The sensor's y-axis value as a float. */
float z; /* * The sensor's z-axis value as a float. */
} wippersnapper_sensor_SensorEvent_SensorEvent3DVector;
/* *
SensorEventOrientation is used to return an orientation sensor's values. */
typedef struct _wippersnapper_sensor_SensorEvent_SensorEventOrientation {
float roll; /* * The sensor's roll value as a float. */
float pitch; /* * The sensor's pitch value as a float. */
float heading; /* * The sensor's heading value as a float. */
} wippersnapper_sensor_SensorEvent_SensorEventOrientation;
/* *
SensorEvent is used to return the sensor's value and type. */
typedef struct _wippersnapper_sensor_SensorEvent {
wippersnapper_sensor_SensorType type; /* * The sensor's type and corresponding SI unit */
pb_size_t which_value;
union {
float float_value; /* * The sensor's value as a float. */
pb_callback_t bytes_value; /* * The sensor's value as a byte array. */
wippersnapper_sensor_SensorEvent_SensorEvent3DVector vector_value; /* * The sensor's 3D vector values, as floats. */
wippersnapper_sensor_SensorEvent_SensorEventOrientation orientation_value; /* * The sensor's orientation values, as floats. */
wippersnapper_sensor_SensorEvent_SensorEventColor color_value; /* * The sensor's color values, as floats. */
bool bool_value; /* * The sensor's value, as a boolean. */
} value;
} wippersnapper_sensor_SensorEvent;
#ifdef __cplusplus
extern "C" {
#endif
/* Helper constants for enums */
#define _wippersnapper_sensor_SensorType_MIN wippersnapper_sensor_SensorType_SENSOR_TYPE_UNSPECIFIED
#define _wippersnapper_sensor_SensorType_MAX wippersnapper_sensor_SensorType_SENSOR_TYPE_BOOLEAN
#define _wippersnapper_sensor_SensorType_ARRAYSIZE ((wippersnapper_sensor_SensorType)(wippersnapper_sensor_SensorType_SENSOR_TYPE_BOOLEAN+1))
#define wippersnapper_sensor_SensorEvent_type_ENUMTYPE wippersnapper_sensor_SensorType
/* Initializer values for message structs */
#define wippersnapper_sensor_SensorEvent_init_default {_wippersnapper_sensor_SensorType_MIN, 0, {0}}
#define wippersnapper_sensor_SensorEvent_SensorEventColor_init_default {0, 0, 0, 0}
#define wippersnapper_sensor_SensorEvent_SensorEvent3DVector_init_default {0, 0, 0}
#define wippersnapper_sensor_SensorEvent_SensorEventOrientation_init_default {0, 0, 0}
#define wippersnapper_sensor_SensorEvent_init_zero {_wippersnapper_sensor_SensorType_MIN, 0, {0}}
#define wippersnapper_sensor_SensorEvent_SensorEventColor_init_zero {0, 0, 0, 0}
#define wippersnapper_sensor_SensorEvent_SensorEvent3DVector_init_zero {0, 0, 0}
#define wippersnapper_sensor_SensorEvent_SensorEventOrientation_init_zero {0, 0, 0}
/* Field tags (for use in manual encoding/decoding) */
#define wippersnapper_sensor_SensorEvent_SensorEventColor_r_tag 1
#define wippersnapper_sensor_SensorEvent_SensorEventColor_g_tag 2
#define wippersnapper_sensor_SensorEvent_SensorEventColor_b_tag 3
#define wippersnapper_sensor_SensorEvent_SensorEventColor_a_tag 4
#define wippersnapper_sensor_SensorEvent_SensorEvent3DVector_x_tag 1
#define wippersnapper_sensor_SensorEvent_SensorEvent3DVector_y_tag 2
#define wippersnapper_sensor_SensorEvent_SensorEvent3DVector_z_tag 3
#define wippersnapper_sensor_SensorEvent_SensorEventOrientation_roll_tag 1
#define wippersnapper_sensor_SensorEvent_SensorEventOrientation_pitch_tag 2
#define wippersnapper_sensor_SensorEvent_SensorEventOrientation_heading_tag 3
#define wippersnapper_sensor_SensorEvent_type_tag 1
#define wippersnapper_sensor_SensorEvent_float_value_tag 2
#define wippersnapper_sensor_SensorEvent_bytes_value_tag 3
#define wippersnapper_sensor_SensorEvent_vector_value_tag 4
#define wippersnapper_sensor_SensorEvent_orientation_value_tag 5
#define wippersnapper_sensor_SensorEvent_color_value_tag 6
#define wippersnapper_sensor_SensorEvent_bool_value_tag 7
/* Struct field encoding specification for nanopb */
#define wippersnapper_sensor_SensorEvent_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, UENUM, type, 1) \
X(a, STATIC, ONEOF, FLOAT, (value,float_value,value.float_value), 2) \
X(a, CALLBACK, ONEOF, BYTES, (value,bytes_value,value.bytes_value), 3) \
X(a, STATIC, ONEOF, MESSAGE, (value,vector_value,value.vector_value), 4) \
X(a, STATIC, ONEOF, MESSAGE, (value,orientation_value,value.orientation_value), 5) \
X(a, STATIC, ONEOF, MESSAGE, (value,color_value,value.color_value), 6) \
X(a, STATIC, ONEOF, BOOL, (value,bool_value,value.bool_value), 7)
#define wippersnapper_sensor_SensorEvent_CALLBACK pb_default_field_callback
#define wippersnapper_sensor_SensorEvent_DEFAULT NULL
#define wippersnapper_sensor_SensorEvent_value_vector_value_MSGTYPE wippersnapper_sensor_SensorEvent_SensorEvent3DVector
#define wippersnapper_sensor_SensorEvent_value_orientation_value_MSGTYPE wippersnapper_sensor_SensorEvent_SensorEventOrientation
#define wippersnapper_sensor_SensorEvent_value_color_value_MSGTYPE wippersnapper_sensor_SensorEvent_SensorEventColor
#define wippersnapper_sensor_SensorEvent_SensorEventColor_FIELDLIST(X, a_) \
X(a_, STATIC, SINGULAR, FLOAT, r, 1) \
X(a_, STATIC, SINGULAR, FLOAT, g, 2) \
X(a_, STATIC, SINGULAR, FLOAT, b, 3) \
X(a_, STATIC, SINGULAR, FLOAT, a, 4)
#define wippersnapper_sensor_SensorEvent_SensorEventColor_CALLBACK NULL
#define wippersnapper_sensor_SensorEvent_SensorEventColor_DEFAULT NULL
#define wippersnapper_sensor_SensorEvent_SensorEvent3DVector_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, FLOAT, x, 1) \
X(a, STATIC, SINGULAR, FLOAT, y, 2) \
X(a, STATIC, SINGULAR, FLOAT, z, 3)
#define wippersnapper_sensor_SensorEvent_SensorEvent3DVector_CALLBACK NULL
#define wippersnapper_sensor_SensorEvent_SensorEvent3DVector_DEFAULT NULL
#define wippersnapper_sensor_SensorEvent_SensorEventOrientation_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, FLOAT, roll, 1) \
X(a, STATIC, SINGULAR, FLOAT, pitch, 2) \
X(a, STATIC, SINGULAR, FLOAT, heading, 3)
#define wippersnapper_sensor_SensorEvent_SensorEventOrientation_CALLBACK NULL
#define wippersnapper_sensor_SensorEvent_SensorEventOrientation_DEFAULT NULL
extern const pb_msgdesc_t wippersnapper_sensor_SensorEvent_msg;
extern const pb_msgdesc_t wippersnapper_sensor_SensorEvent_SensorEventColor_msg;
extern const pb_msgdesc_t wippersnapper_sensor_SensorEvent_SensorEvent3DVector_msg;
extern const pb_msgdesc_t wippersnapper_sensor_SensorEvent_SensorEventOrientation_msg;
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define wippersnapper_sensor_SensorEvent_fields &wippersnapper_sensor_SensorEvent_msg
#define wippersnapper_sensor_SensorEvent_SensorEventColor_fields &wippersnapper_sensor_SensorEvent_SensorEventColor_msg
#define wippersnapper_sensor_SensorEvent_SensorEvent3DVector_fields &wippersnapper_sensor_SensorEvent_SensorEvent3DVector_msg
#define wippersnapper_sensor_SensorEvent_SensorEventOrientation_fields &wippersnapper_sensor_SensorEvent_SensorEventOrientation_msg
/* Maximum encoded size of messages (where known) */
/* wippersnapper_sensor_SensorEvent_size depends on runtime parameters */
#define WIPPERSNAPPER_SENSOR_SENSOR_PB_H_MAX_SIZE wippersnapper_sensor_SensorEvent_SensorEventColor_size
#define wippersnapper_sensor_SensorEvent_SensorEvent3DVector_size 15
#define wippersnapper_sensor_SensorEvent_SensorEventColor_size 20
#define wippersnapper_sensor_SensorEvent_SensorEventOrientation_size 15
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif

View file

@ -0,0 +1,21 @@
/* Automatically generated nanopb constant definitions */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#include "servo.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
PB_BIND(wippersnapper_servo_ServoAdd, wippersnapper_servo_ServoAdd, AUTO)
PB_BIND(wippersnapper_servo_ServoAdded, wippersnapper_servo_ServoAdded, AUTO)
PB_BIND(wippersnapper_servo_ServoRemove, wippersnapper_servo_ServoRemove, AUTO)
PB_BIND(wippersnapper_servo_ServoWrite, wippersnapper_servo_ServoWrite, AUTO)

View file

@ -0,0 +1,119 @@
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#ifndef PB_WIPPERSNAPPER_SERVO_SERVO_PB_H_INCLUDED
#define PB_WIPPERSNAPPER_SERVO_SERVO_PB_H_INCLUDED
#include <pb.h>
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
/* Struct definitions */
/* *
ServoAdd represents a request to attach a servo to a pin. */
typedef struct _wippersnapper_servo_ServoAdd {
pb_callback_t servo_pin; /* * The name of pin to attach a servo to. */
int32_t servo_freq; /* * The overall PWM frequency, default sent by Adafruit IO is 50Hz. * */
int32_t min_pulse_width; /* * The minimum pulse length in uS. Default sent by Adafruit IO is 500uS. * */
int32_t max_pulse_width; /* * The maximum pulse length in uS. Default sent by Adafruit IO is 2500uS. * */
} wippersnapper_servo_ServoAdd;
/* *
ServoAdded represents the result of attaching a servo to a pin. */
typedef struct _wippersnapper_servo_ServoAdded {
bool attach_success; /* * True if a servo was attached successfully, False otherwise. * */
pb_callback_t servo_pin; /* * The name of pin we're responding about. */
} wippersnapper_servo_ServoAdded;
/* *
ServoRemove represents a request to detach a servo from a pin and de-initialize the pin for other uses. */
typedef struct _wippersnapper_servo_ServoRemove {
pb_callback_t servo_pin; /* * The name of pin to use as a servo pin. */
} wippersnapper_servo_ServoRemove;
/* *
ServoWrite represents a message to write the servo's position.
NOTE: Position is sent from Adafruit IO as a pulse width in uS between 0uS
and 2500uS. The client application must convert pulse width to duty cycle w/fixed
freq of 50Hz prior to writing to the servo pin. */
typedef struct _wippersnapper_servo_ServoWrite {
pb_callback_t servo_pin; /* * The name of pin we're addressing. */
int32_t pulse_width; /* * The pulse width to write to the servo, in uS * */
} wippersnapper_servo_ServoWrite;
#ifdef __cplusplus
extern "C" {
#endif
/* Initializer values for message structs */
#define wippersnapper_servo_ServoAdd_init_default {{{NULL}, NULL}, 0, 0, 0}
#define wippersnapper_servo_ServoAdded_init_default {0, {{NULL}, NULL}}
#define wippersnapper_servo_ServoRemove_init_default {{{NULL}, NULL}}
#define wippersnapper_servo_ServoWrite_init_default {{{NULL}, NULL}, 0}
#define wippersnapper_servo_ServoAdd_init_zero {{{NULL}, NULL}, 0, 0, 0}
#define wippersnapper_servo_ServoAdded_init_zero {0, {{NULL}, NULL}}
#define wippersnapper_servo_ServoRemove_init_zero {{{NULL}, NULL}}
#define wippersnapper_servo_ServoWrite_init_zero {{{NULL}, NULL}, 0}
/* Field tags (for use in manual encoding/decoding) */
#define wippersnapper_servo_ServoAdd_servo_pin_tag 1
#define wippersnapper_servo_ServoAdd_servo_freq_tag 2
#define wippersnapper_servo_ServoAdd_min_pulse_width_tag 3
#define wippersnapper_servo_ServoAdd_max_pulse_width_tag 4
#define wippersnapper_servo_ServoAdded_attach_success_tag 1
#define wippersnapper_servo_ServoAdded_servo_pin_tag 2
#define wippersnapper_servo_ServoRemove_servo_pin_tag 1
#define wippersnapper_servo_ServoWrite_servo_pin_tag 1
#define wippersnapper_servo_ServoWrite_pulse_width_tag 2
/* Struct field encoding specification for nanopb */
#define wippersnapper_servo_ServoAdd_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, servo_pin, 1) \
X(a, STATIC, SINGULAR, INT32, servo_freq, 2) \
X(a, STATIC, SINGULAR, INT32, min_pulse_width, 3) \
X(a, STATIC, SINGULAR, INT32, max_pulse_width, 4)
#define wippersnapper_servo_ServoAdd_CALLBACK pb_default_field_callback
#define wippersnapper_servo_ServoAdd_DEFAULT NULL
#define wippersnapper_servo_ServoAdded_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, BOOL, attach_success, 1) \
X(a, CALLBACK, SINGULAR, STRING, servo_pin, 2)
#define wippersnapper_servo_ServoAdded_CALLBACK pb_default_field_callback
#define wippersnapper_servo_ServoAdded_DEFAULT NULL
#define wippersnapper_servo_ServoRemove_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, servo_pin, 1)
#define wippersnapper_servo_ServoRemove_CALLBACK pb_default_field_callback
#define wippersnapper_servo_ServoRemove_DEFAULT NULL
#define wippersnapper_servo_ServoWrite_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, servo_pin, 1) \
X(a, STATIC, SINGULAR, INT32, pulse_width, 2)
#define wippersnapper_servo_ServoWrite_CALLBACK pb_default_field_callback
#define wippersnapper_servo_ServoWrite_DEFAULT NULL
extern const pb_msgdesc_t wippersnapper_servo_ServoAdd_msg;
extern const pb_msgdesc_t wippersnapper_servo_ServoAdded_msg;
extern const pb_msgdesc_t wippersnapper_servo_ServoRemove_msg;
extern const pb_msgdesc_t wippersnapper_servo_ServoWrite_msg;
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define wippersnapper_servo_ServoAdd_fields &wippersnapper_servo_ServoAdd_msg
#define wippersnapper_servo_ServoAdded_fields &wippersnapper_servo_ServoAdded_msg
#define wippersnapper_servo_ServoRemove_fields &wippersnapper_servo_ServoRemove_msg
#define wippersnapper_servo_ServoWrite_fields &wippersnapper_servo_ServoWrite_msg
/* Maximum encoded size of messages (where known) */
/* wippersnapper_servo_ServoAdd_size depends on runtime parameters */
/* wippersnapper_servo_ServoAdded_size depends on runtime parameters */
/* wippersnapper_servo_ServoRemove_size depends on runtime parameters */
/* wippersnapper_servo_ServoWrite_size depends on runtime parameters */
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif

View file

@ -0,0 +1,15 @@
/* Automatically generated nanopb constant definitions */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#include "signal.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
PB_BIND(wippersnapper_signal_BrokerToDevice, wippersnapper_signal_BrokerToDevice, 2)
PB_BIND(wippersnapper_signal_DeviceToBroker, wippersnapper_signal_DeviceToBroker, 2)

View file

@ -0,0 +1,271 @@
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#ifndef PB_WIPPERSNAPPER_SIGNAL_SIGNAL_PB_H_INCLUDED
#define PB_WIPPERSNAPPER_SIGNAL_SIGNAL_PB_H_INCLUDED
#include <pb.h>
#include "analogio.pb.h"
#include "checkin.pb.h"
#include "digitalio.pb.h"
#include "ds18x20.pb.h"
#include "error.pb.h"
#include "i2c.pb.h"
#include "pixels.pb.h"
#include "pwm.pb.h"
#include "servo.pb.h"
#include "uart.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
/* Struct definitions */
/* BrokerToDevice
The BrokerToDevice message is sent from the broker to the device.
It contains a oneof payload, which is a union of all the possible
messages that can be sent from the broker to a device. */
typedef struct _wippersnapper_signal_BrokerToDevice {
pb_size_t which_payload;
union {
/* digitalio.proto */
wippersnapper_digitalio_DigitalIOAdd digitalio_add;
wippersnapper_digitalio_DigitalIORemove digitalio_remove;
wippersnapper_digitalio_DigitalIOEvent digitalio_event;
wippersnapper_digitalio_DigitalIOWrite digitalio_write;
/* analogio.proto */
wippersnapper_analogio_AnalogIOAdd analogio_add;
wippersnapper_analogio_AnalogIORemove analogio_remove;
/* checkin.proto */
wippersnapper_checkin_CheckinResponse checkin_response;
/* servo.proto */
wippersnapper_servo_ServoAdd servo_add;
wippersnapper_servo_ServoRemove servo_remove;
wippersnapper_servo_ServoWrite servo_write;
/* pwm.proto */
wippersnapper_pwm_PWMAdd pwm_add;
wippersnapper_pwm_PWMRemove pwm_remove;
wippersnapper_pwm_PWMWriteDutyCycle pwm_write_duty;
wippersnapper_pwm_PWMWriteDutyCycleMulti pwm_write_duty_multi;
wippersnapper_pwm_PWMWriteFrequency pwm_write_freq;
/* pixels.proto */
wippersnapper_pixels_PixelsAdd pixels_add;
wippersnapper_pixels_PixelsRemove pixels_remove;
wippersnapper_pixels_PixelsWrite pixels_write;
/* ds18x20.proto */
wippersnapper_ds18x20_Ds18x20Add ds18x20_add;
wippersnapper_ds18x20_Ds18x20Remove ds18x20_remove;
/* uart.proto */
wippersnapper_uart_UARTAdd uart_add;
wippersnapper_uart_UARTRemove uart_remove;
/* i2c.proto */
wippersnapper_i2c_I2cBusScan i2c_bus_scan;
wippersnapper_i2c_I2cDeviceAddOrReplace i2c_device_add_replace;
wippersnapper_i2c_I2cDeviceRemove i2c_device_remove;
/* error.proto */
wippersnapper_error_Error error;
} payload;
} wippersnapper_signal_BrokerToDevice;
/* DeviceToBroker
The DeviceToBroker message is sent from the device to the broker.
It contains a oneof payload, which is a union of all the possible
messages that can be sent from a device to the broker. */
typedef struct _wippersnapper_signal_DeviceToBroker {
pb_callback_t cb_payload;
pb_size_t which_payload;
union {
/* digitalio.proto */
wippersnapper_digitalio_DigitalIOEvent digitalio_event;
/* analogio.proto */
wippersnapper_analogio_AnalogIOEvent analogio_event;
/* checkin.proto */
wippersnapper_checkin_CheckinRequest checkin_request;
/* servo.proto */
wippersnapper_servo_ServoAdded servo_added;
/* pwm.proto */
wippersnapper_pwm_PWMAdded pwm_added;
/* pixels.proto */
wippersnapper_pixels_PixelsAdded pixels_added;
/* ds18x20.proto */
wippersnapper_ds18x20_Ds18x20Added ds18x20_added;
wippersnapper_ds18x20_Ds18x20Event ds18x20_event;
/* uart.proto */
wippersnapper_uart_UARTAdded uart_added;
wippersnapper_uart_UARTEvent uart_event;
/* i2c.proto */
wippersnapper_i2c_I2cBusScanned i2c_bus_scanned;
wippersnapper_i2c_I2cDeviceAddedOrReplaced i2c_device_added_replaced;
wippersnapper_i2c_I2cDeviceRemoved i2c_device_removed;
wippersnapper_i2c_I2cDeviceEvent i2c_device_event;
} payload;
} wippersnapper_signal_DeviceToBroker;
#ifdef __cplusplus
extern "C" {
#endif
/* Initializer values for message structs */
#define wippersnapper_signal_BrokerToDevice_init_default {0, {wippersnapper_digitalio_DigitalIOAdd_init_default}}
#define wippersnapper_signal_DeviceToBroker_init_default {{{NULL}, NULL}, 0, {wippersnapper_digitalio_DigitalIOEvent_init_default}}
#define wippersnapper_signal_BrokerToDevice_init_zero {0, {wippersnapper_digitalio_DigitalIOAdd_init_zero}}
#define wippersnapper_signal_DeviceToBroker_init_zero {{{NULL}, NULL}, 0, {wippersnapper_digitalio_DigitalIOEvent_init_zero}}
/* Field tags (for use in manual encoding/decoding) */
#define wippersnapper_signal_BrokerToDevice_digitalio_add_tag 10
#define wippersnapper_signal_BrokerToDevice_digitalio_remove_tag 11
#define wippersnapper_signal_BrokerToDevice_digitalio_event_tag 12
#define wippersnapper_signal_BrokerToDevice_digitalio_write_tag 13
#define wippersnapper_signal_BrokerToDevice_analogio_add_tag 20
#define wippersnapper_signal_BrokerToDevice_analogio_remove_tag 21
#define wippersnapper_signal_BrokerToDevice_checkin_response_tag 30
#define wippersnapper_signal_BrokerToDevice_servo_add_tag 40
#define wippersnapper_signal_BrokerToDevice_servo_remove_tag 41
#define wippersnapper_signal_BrokerToDevice_servo_write_tag 42
#define wippersnapper_signal_BrokerToDevice_pwm_add_tag 50
#define wippersnapper_signal_BrokerToDevice_pwm_remove_tag 51
#define wippersnapper_signal_BrokerToDevice_pwm_write_duty_tag 52
#define wippersnapper_signal_BrokerToDevice_pwm_write_duty_multi_tag 53
#define wippersnapper_signal_BrokerToDevice_pwm_write_freq_tag 54
#define wippersnapper_signal_BrokerToDevice_pixels_add_tag 60
#define wippersnapper_signal_BrokerToDevice_pixels_remove_tag 61
#define wippersnapper_signal_BrokerToDevice_pixels_write_tag 62
#define wippersnapper_signal_BrokerToDevice_ds18x20_add_tag 70
#define wippersnapper_signal_BrokerToDevice_ds18x20_remove_tag 71
#define wippersnapper_signal_BrokerToDevice_uart_add_tag 80
#define wippersnapper_signal_BrokerToDevice_uart_remove_tag 81
#define wippersnapper_signal_BrokerToDevice_i2c_bus_scan_tag 90
#define wippersnapper_signal_BrokerToDevice_i2c_device_add_replace_tag 91
#define wippersnapper_signal_BrokerToDevice_i2c_device_remove_tag 92
#define wippersnapper_signal_BrokerToDevice_error_tag 100
#define wippersnapper_signal_DeviceToBroker_digitalio_event_tag 10
#define wippersnapper_signal_DeviceToBroker_analogio_event_tag 20
#define wippersnapper_signal_DeviceToBroker_checkin_request_tag 30
#define wippersnapper_signal_DeviceToBroker_servo_added_tag 40
#define wippersnapper_signal_DeviceToBroker_pwm_added_tag 50
#define wippersnapper_signal_DeviceToBroker_pixels_added_tag 60
#define wippersnapper_signal_DeviceToBroker_ds18x20_added_tag 70
#define wippersnapper_signal_DeviceToBroker_ds18x20_event_tag 80
#define wippersnapper_signal_DeviceToBroker_uart_added_tag 90
#define wippersnapper_signal_DeviceToBroker_uart_event_tag 100
#define wippersnapper_signal_DeviceToBroker_i2c_bus_scanned_tag 110
#define wippersnapper_signal_DeviceToBroker_i2c_device_added_replaced_tag 111
#define wippersnapper_signal_DeviceToBroker_i2c_device_removed_tag 112
#define wippersnapper_signal_DeviceToBroker_i2c_device_event_tag 113
/* Struct field encoding specification for nanopb */
#define wippersnapper_signal_BrokerToDevice_FIELDLIST(X, a) \
X(a, STATIC, ONEOF, MESSAGE, (payload,digitalio_add,payload.digitalio_add), 10) \
X(a, STATIC, ONEOF, MESSAGE, (payload,digitalio_remove,payload.digitalio_remove), 11) \
X(a, STATIC, ONEOF, MESSAGE, (payload,digitalio_event,payload.digitalio_event), 12) \
X(a, STATIC, ONEOF, MESSAGE, (payload,digitalio_write,payload.digitalio_write), 13) \
X(a, STATIC, ONEOF, MESSAGE, (payload,analogio_add,payload.analogio_add), 20) \
X(a, STATIC, ONEOF, MESSAGE, (payload,analogio_remove,payload.analogio_remove), 21) \
X(a, STATIC, ONEOF, MESSAGE, (payload,checkin_response,payload.checkin_response), 30) \
X(a, STATIC, ONEOF, MESSAGE, (payload,servo_add,payload.servo_add), 40) \
X(a, STATIC, ONEOF, MESSAGE, (payload,servo_remove,payload.servo_remove), 41) \
X(a, STATIC, ONEOF, MESSAGE, (payload,servo_write,payload.servo_write), 42) \
X(a, STATIC, ONEOF, MESSAGE, (payload,pwm_add,payload.pwm_add), 50) \
X(a, STATIC, ONEOF, MESSAGE, (payload,pwm_remove,payload.pwm_remove), 51) \
X(a, STATIC, ONEOF, MESSAGE, (payload,pwm_write_duty,payload.pwm_write_duty), 52) \
X(a, STATIC, ONEOF, MESSAGE, (payload,pwm_write_duty_multi,payload.pwm_write_duty_multi), 53) \
X(a, STATIC, ONEOF, MESSAGE, (payload,pwm_write_freq,payload.pwm_write_freq), 54) \
X(a, STATIC, ONEOF, MESSAGE, (payload,pixels_add,payload.pixels_add), 60) \
X(a, STATIC, ONEOF, MESSAGE, (payload,pixels_remove,payload.pixels_remove), 61) \
X(a, STATIC, ONEOF, MESSAGE, (payload,pixels_write,payload.pixels_write), 62) \
X(a, STATIC, ONEOF, MESSAGE, (payload,ds18x20_add,payload.ds18x20_add), 70) \
X(a, STATIC, ONEOF, MESSAGE, (payload,ds18x20_remove,payload.ds18x20_remove), 71) \
X(a, STATIC, ONEOF, MESSAGE, (payload,uart_add,payload.uart_add), 80) \
X(a, STATIC, ONEOF, MESSAGE, (payload,uart_remove,payload.uart_remove), 81) \
X(a, STATIC, ONEOF, MESSAGE, (payload,i2c_bus_scan,payload.i2c_bus_scan), 90) \
X(a, STATIC, ONEOF, MESSAGE, (payload,i2c_device_add_replace,payload.i2c_device_add_replace), 91) \
X(a, STATIC, ONEOF, MESSAGE, (payload,i2c_device_remove,payload.i2c_device_remove), 92) \
X(a, STATIC, ONEOF, MESSAGE, (payload,error,payload.error), 100)
#define wippersnapper_signal_BrokerToDevice_CALLBACK NULL
#define wippersnapper_signal_BrokerToDevice_DEFAULT NULL
#define wippersnapper_signal_BrokerToDevice_payload_digitalio_add_MSGTYPE wippersnapper_digitalio_DigitalIOAdd
#define wippersnapper_signal_BrokerToDevice_payload_digitalio_remove_MSGTYPE wippersnapper_digitalio_DigitalIORemove
#define wippersnapper_signal_BrokerToDevice_payload_digitalio_event_MSGTYPE wippersnapper_digitalio_DigitalIOEvent
#define wippersnapper_signal_BrokerToDevice_payload_digitalio_write_MSGTYPE wippersnapper_digitalio_DigitalIOWrite
#define wippersnapper_signal_BrokerToDevice_payload_analogio_add_MSGTYPE wippersnapper_analogio_AnalogIOAdd
#define wippersnapper_signal_BrokerToDevice_payload_analogio_remove_MSGTYPE wippersnapper_analogio_AnalogIORemove
#define wippersnapper_signal_BrokerToDevice_payload_checkin_response_MSGTYPE wippersnapper_checkin_CheckinResponse
#define wippersnapper_signal_BrokerToDevice_payload_servo_add_MSGTYPE wippersnapper_servo_ServoAdd
#define wippersnapper_signal_BrokerToDevice_payload_servo_remove_MSGTYPE wippersnapper_servo_ServoRemove
#define wippersnapper_signal_BrokerToDevice_payload_servo_write_MSGTYPE wippersnapper_servo_ServoWrite
#define wippersnapper_signal_BrokerToDevice_payload_pwm_add_MSGTYPE wippersnapper_pwm_PWMAdd
#define wippersnapper_signal_BrokerToDevice_payload_pwm_remove_MSGTYPE wippersnapper_pwm_PWMRemove
#define wippersnapper_signal_BrokerToDevice_payload_pwm_write_duty_MSGTYPE wippersnapper_pwm_PWMWriteDutyCycle
#define wippersnapper_signal_BrokerToDevice_payload_pwm_write_duty_multi_MSGTYPE wippersnapper_pwm_PWMWriteDutyCycleMulti
#define wippersnapper_signal_BrokerToDevice_payload_pwm_write_freq_MSGTYPE wippersnapper_pwm_PWMWriteFrequency
#define wippersnapper_signal_BrokerToDevice_payload_pixels_add_MSGTYPE wippersnapper_pixels_PixelsAdd
#define wippersnapper_signal_BrokerToDevice_payload_pixels_remove_MSGTYPE wippersnapper_pixels_PixelsRemove
#define wippersnapper_signal_BrokerToDevice_payload_pixels_write_MSGTYPE wippersnapper_pixels_PixelsWrite
#define wippersnapper_signal_BrokerToDevice_payload_ds18x20_add_MSGTYPE wippersnapper_ds18x20_Ds18x20Add
#define wippersnapper_signal_BrokerToDevice_payload_ds18x20_remove_MSGTYPE wippersnapper_ds18x20_Ds18x20Remove
#define wippersnapper_signal_BrokerToDevice_payload_uart_add_MSGTYPE wippersnapper_uart_UARTAdd
#define wippersnapper_signal_BrokerToDevice_payload_uart_remove_MSGTYPE wippersnapper_uart_UARTRemove
#define wippersnapper_signal_BrokerToDevice_payload_i2c_bus_scan_MSGTYPE wippersnapper_i2c_I2cBusScan
#define wippersnapper_signal_BrokerToDevice_payload_i2c_device_add_replace_MSGTYPE wippersnapper_i2c_I2cDeviceAddOrReplace
#define wippersnapper_signal_BrokerToDevice_payload_i2c_device_remove_MSGTYPE wippersnapper_i2c_I2cDeviceRemove
#define wippersnapper_signal_BrokerToDevice_payload_error_MSGTYPE wippersnapper_error_Error
#define wippersnapper_signal_DeviceToBroker_FIELDLIST(X, a) \
X(a, STATIC, ONEOF, MSG_W_CB, (payload,digitalio_event,payload.digitalio_event), 10) \
X(a, STATIC, ONEOF, MSG_W_CB, (payload,analogio_event,payload.analogio_event), 20) \
X(a, STATIC, ONEOF, MSG_W_CB, (payload,checkin_request,payload.checkin_request), 30) \
X(a, STATIC, ONEOF, MSG_W_CB, (payload,servo_added,payload.servo_added), 40) \
X(a, STATIC, ONEOF, MSG_W_CB, (payload,pwm_added,payload.pwm_added), 50) \
X(a, STATIC, ONEOF, MSG_W_CB, (payload,pixels_added,payload.pixels_added), 60) \
X(a, STATIC, ONEOF, MSG_W_CB, (payload,ds18x20_added,payload.ds18x20_added), 70) \
X(a, STATIC, ONEOF, MSG_W_CB, (payload,ds18x20_event,payload.ds18x20_event), 80) \
X(a, STATIC, ONEOF, MSG_W_CB, (payload,uart_added,payload.uart_added), 90) \
X(a, STATIC, ONEOF, MSG_W_CB, (payload,uart_event,payload.uart_event), 100) \
X(a, STATIC, ONEOF, MSG_W_CB, (payload,i2c_bus_scanned,payload.i2c_bus_scanned), 110) \
X(a, STATIC, ONEOF, MSG_W_CB, (payload,i2c_device_added_replaced,payload.i2c_device_added_replaced), 111) \
X(a, STATIC, ONEOF, MSG_W_CB, (payload,i2c_device_removed,payload.i2c_device_removed), 112) \
X(a, STATIC, ONEOF, MSG_W_CB, (payload,i2c_device_event,payload.i2c_device_event), 113)
#define wippersnapper_signal_DeviceToBroker_CALLBACK NULL
#define wippersnapper_signal_DeviceToBroker_DEFAULT NULL
#define wippersnapper_signal_DeviceToBroker_payload_digitalio_event_MSGTYPE wippersnapper_digitalio_DigitalIOEvent
#define wippersnapper_signal_DeviceToBroker_payload_analogio_event_MSGTYPE wippersnapper_analogio_AnalogIOEvent
#define wippersnapper_signal_DeviceToBroker_payload_checkin_request_MSGTYPE wippersnapper_checkin_CheckinRequest
#define wippersnapper_signal_DeviceToBroker_payload_servo_added_MSGTYPE wippersnapper_servo_ServoAdded
#define wippersnapper_signal_DeviceToBroker_payload_pwm_added_MSGTYPE wippersnapper_pwm_PWMAdded
#define wippersnapper_signal_DeviceToBroker_payload_pixels_added_MSGTYPE wippersnapper_pixels_PixelsAdded
#define wippersnapper_signal_DeviceToBroker_payload_ds18x20_added_MSGTYPE wippersnapper_ds18x20_Ds18x20Added
#define wippersnapper_signal_DeviceToBroker_payload_ds18x20_event_MSGTYPE wippersnapper_ds18x20_Ds18x20Event
#define wippersnapper_signal_DeviceToBroker_payload_uart_added_MSGTYPE wippersnapper_uart_UARTAdded
#define wippersnapper_signal_DeviceToBroker_payload_uart_event_MSGTYPE wippersnapper_uart_UARTEvent
#define wippersnapper_signal_DeviceToBroker_payload_i2c_bus_scanned_MSGTYPE wippersnapper_i2c_I2cBusScanned
#define wippersnapper_signal_DeviceToBroker_payload_i2c_device_added_replaced_MSGTYPE wippersnapper_i2c_I2cDeviceAddedOrReplaced
#define wippersnapper_signal_DeviceToBroker_payload_i2c_device_removed_MSGTYPE wippersnapper_i2c_I2cDeviceRemoved
#define wippersnapper_signal_DeviceToBroker_payload_i2c_device_event_MSGTYPE wippersnapper_i2c_I2cDeviceEvent
extern const pb_msgdesc_t wippersnapper_signal_BrokerToDevice_msg;
extern const pb_msgdesc_t wippersnapper_signal_DeviceToBroker_msg;
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define wippersnapper_signal_BrokerToDevice_fields &wippersnapper_signal_BrokerToDevice_msg
#define wippersnapper_signal_DeviceToBroker_fields &wippersnapper_signal_DeviceToBroker_msg
/* Maximum encoded size of messages (where known) */
#if defined(wippersnapper_digitalio_DigitalIOAdd_size) && defined(wippersnapper_digitalio_DigitalIORemove_size) && defined(wippersnapper_digitalio_DigitalIOEvent_size) && defined(wippersnapper_digitalio_DigitalIOWrite_size) && defined(wippersnapper_analogio_AnalogIOAdd_size) && defined(wippersnapper_analogio_AnalogIORemove_size) && defined(wippersnapper_servo_ServoAdd_size) && defined(wippersnapper_servo_ServoRemove_size) && defined(wippersnapper_servo_ServoWrite_size) && defined(wippersnapper_pwm_PWMAdd_size) && defined(wippersnapper_pwm_PWMRemove_size) && defined(wippersnapper_pwm_PWMWriteDutyCycle_size) && defined(wippersnapper_pwm_PWMWriteDutyCycleMulti_size) && defined(wippersnapper_pwm_PWMWriteFrequency_size) && defined(wippersnapper_pixels_PixelsAdd_size) && defined(wippersnapper_pixels_PixelsRemove_size) && defined(wippersnapper_pixels_PixelsWrite_size) && defined(wippersnapper_ds18x20_Ds18x20Add_size) && defined(wippersnapper_ds18x20_Ds18x20Remove_size) && defined(wippersnapper_uart_UARTAdd_size) && defined(wippersnapper_uart_UARTRemove_size) && defined(wippersnapper_i2c_I2cDeviceAddOrReplace_size)
union wippersnapper_signal_BrokerToDevice_payload_size_union {char f10[(6 + wippersnapper_digitalio_DigitalIOAdd_size)]; char f11[(6 + wippersnapper_digitalio_DigitalIORemove_size)]; char f12[(6 + wippersnapper_digitalio_DigitalIOEvent_size)]; char f13[(6 + wippersnapper_digitalio_DigitalIOWrite_size)]; char f20[(7 + wippersnapper_analogio_AnalogIOAdd_size)]; char f21[(7 + wippersnapper_analogio_AnalogIORemove_size)]; char f40[(7 + wippersnapper_servo_ServoAdd_size)]; char f41[(7 + wippersnapper_servo_ServoRemove_size)]; char f42[(7 + wippersnapper_servo_ServoWrite_size)]; char f50[(7 + wippersnapper_pwm_PWMAdd_size)]; char f51[(7 + wippersnapper_pwm_PWMRemove_size)]; char f52[(7 + wippersnapper_pwm_PWMWriteDutyCycle_size)]; char f53[(7 + wippersnapper_pwm_PWMWriteDutyCycleMulti_size)]; char f54[(7 + wippersnapper_pwm_PWMWriteFrequency_size)]; char f60[(7 + wippersnapper_pixels_PixelsAdd_size)]; char f61[(7 + wippersnapper_pixels_PixelsRemove_size)]; char f62[(7 + wippersnapper_pixels_PixelsWrite_size)]; char f70[(7 + wippersnapper_ds18x20_Ds18x20Add_size)]; char f71[(7 + wippersnapper_ds18x20_Ds18x20Remove_size)]; char f80[(7 + wippersnapper_uart_UARTAdd_size)]; char f81[(7 + wippersnapper_uart_UARTRemove_size)]; char f91[(7 + wippersnapper_i2c_I2cDeviceAddOrReplace_size)]; char f0[32];};
#endif
#if defined(wippersnapper_digitalio_DigitalIOEvent_size) && defined(wippersnapper_analogio_AnalogIOEvent_size) && defined(wippersnapper_checkin_CheckinRequest_size) && defined(wippersnapper_servo_ServoAdded_size) && defined(wippersnapper_pwm_PWMAdded_size) && defined(wippersnapper_pixels_PixelsAdded_size) && defined(wippersnapper_ds18x20_Ds18x20Added_size) && defined(wippersnapper_ds18x20_Ds18x20Event_size) && defined(wippersnapper_uart_UARTAdded_size) && defined(wippersnapper_uart_UARTEvent_size) && defined(wippersnapper_i2c_I2cBusScanned_size) && defined(wippersnapper_i2c_I2cDeviceEvent_size)
union wippersnapper_signal_DeviceToBroker_payload_size_union {char f10[(6 + wippersnapper_digitalio_DigitalIOEvent_size)]; char f20[(7 + wippersnapper_analogio_AnalogIOEvent_size)]; char f30[(7 + wippersnapper_checkin_CheckinRequest_size)]; char f40[(7 + wippersnapper_servo_ServoAdded_size)]; char f50[(7 + wippersnapper_pwm_PWMAdded_size)]; char f60[(7 + wippersnapper_pixels_PixelsAdded_size)]; char f70[(7 + wippersnapper_ds18x20_Ds18x20Added_size)]; char f80[(7 + wippersnapper_ds18x20_Ds18x20Event_size)]; char f90[(7 + wippersnapper_uart_UARTAdded_size)]; char f100[(7 + wippersnapper_uart_UARTEvent_size)]; char f110[(7 + wippersnapper_i2c_I2cBusScanned_size)]; char f113[(7 + wippersnapper_i2c_I2cDeviceEvent_size)]; char f0[27];};
#endif
#if defined(wippersnapper_digitalio_DigitalIOAdd_size) && defined(wippersnapper_digitalio_DigitalIORemove_size) && defined(wippersnapper_digitalio_DigitalIOEvent_size) && defined(wippersnapper_digitalio_DigitalIOWrite_size) && defined(wippersnapper_analogio_AnalogIOAdd_size) && defined(wippersnapper_analogio_AnalogIORemove_size) && defined(wippersnapper_servo_ServoAdd_size) && defined(wippersnapper_servo_ServoRemove_size) && defined(wippersnapper_servo_ServoWrite_size) && defined(wippersnapper_pwm_PWMAdd_size) && defined(wippersnapper_pwm_PWMRemove_size) && defined(wippersnapper_pwm_PWMWriteDutyCycle_size) && defined(wippersnapper_pwm_PWMWriteDutyCycleMulti_size) && defined(wippersnapper_pwm_PWMWriteFrequency_size) && defined(wippersnapper_pixels_PixelsAdd_size) && defined(wippersnapper_pixels_PixelsRemove_size) && defined(wippersnapper_pixels_PixelsWrite_size) && defined(wippersnapper_ds18x20_Ds18x20Add_size) && defined(wippersnapper_ds18x20_Ds18x20Remove_size) && defined(wippersnapper_uart_UARTAdd_size) && defined(wippersnapper_uart_UARTRemove_size) && defined(wippersnapper_i2c_I2cDeviceAddOrReplace_size)
#define WIPPERSNAPPER_SIGNAL_SIGNAL_PB_H_MAX_SIZE wippersnapper_signal_BrokerToDevice_size
#define wippersnapper_signal_BrokerToDevice_size (0 + sizeof(union wippersnapper_signal_BrokerToDevice_payload_size_union))
#endif
#if defined(wippersnapper_digitalio_DigitalIOEvent_size) && defined(wippersnapper_analogio_AnalogIOEvent_size) && defined(wippersnapper_checkin_CheckinRequest_size) && defined(wippersnapper_servo_ServoAdded_size) && defined(wippersnapper_pwm_PWMAdded_size) && defined(wippersnapper_pixels_PixelsAdded_size) && defined(wippersnapper_ds18x20_Ds18x20Added_size) && defined(wippersnapper_ds18x20_Ds18x20Event_size) && defined(wippersnapper_uart_UARTAdded_size) && defined(wippersnapper_uart_UARTEvent_size) && defined(wippersnapper_i2c_I2cBusScanned_size) && defined(wippersnapper_i2c_I2cDeviceEvent_size)
#define wippersnapper_signal_DeviceToBroker_size (0 + sizeof(union wippersnapper_signal_DeviceToBroker_payload_size_union))
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif

View file

@ -0,0 +1,24 @@
/* Automatically generated nanopb constant definitions */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#include "uart.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
PB_BIND(wippersnapper_uart_UARTBusData, wippersnapper_uart_UARTBusData, AUTO)
PB_BIND(wippersnapper_uart_UARTAdd, wippersnapper_uart_UARTAdd, AUTO)
PB_BIND(wippersnapper_uart_UARTAdded, wippersnapper_uart_UARTAdded, AUTO)
PB_BIND(wippersnapper_uart_UARTRemove, wippersnapper_uart_UARTRemove, AUTO)
PB_BIND(wippersnapper_uart_UARTEvent, wippersnapper_uart_UARTEvent, AUTO)

View file

@ -0,0 +1,146 @@
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.8 at Tue Aug 20 16:38:43 2024. */
#ifndef PB_WIPPERSNAPPER_UART_UART_PB_H_INCLUDED
#define PB_WIPPERSNAPPER_UART_UART_PB_H_INCLUDED
#include <pb.h>
#include "sensor.pb.h"
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
/* Struct definitions */
/* *
UARTBusData represents a message to configure a UART bus for communication with a device.
NOTE: This message is never sent directly, it is packed inside UARTAdd. */
typedef struct _wippersnapper_uart_UARTBusData {
int32_t baudrate; /* * The baudrate to use for UART communication (may be a common baud rate such as:
1200bps, 2400bps, 4800bps, 19200bps, 38400bps, 57600bps, or 115200bps). */
pb_callback_t pin_rx; /* * The pin on which to receive UART stream data. */
pb_callback_t pin_tx; /* * The pin on which to transmit UART stream data. */
bool is_invert; /* * Inverts the UART signal on RX and TX pins. Defaults to False. */
} wippersnapper_uart_UARTBusData;
/* *
UARTAdd represents a message sent from IO to a device
to configure the UART bus (if not already configured) and attach a device. */
typedef struct _wippersnapper_uart_UARTAdd {
bool has_bus_info;
wippersnapper_uart_UARTBusData bus_info; /* * The UART bus configuration. */
pb_callback_t device_id; /* * The unique identifier of the device to attach to the UART bus, from Adafruit_WipperSnapper_Components. */
int32_t polling_interval; /* * The polling interval, in milliseconds, to use for the device. */
} wippersnapper_uart_UARTAdd;
/* *
UARTAdded represents a message sent from a device to IO to
confirm that a device has been attached to the UART bus. */
typedef struct _wippersnapper_uart_UARTAdded {
pb_callback_t device_id; /* * The unique identifier of the device to attach to the UART bus, from Adafruit_WipperSnapper_Components. */
bool is_success; /* * True if the UARTInit was successful, False otherwise. */
} wippersnapper_uart_UARTAdded;
/* UARTRemove represents a message sent from IO to a device
to detach a device from the UART bus. */
typedef struct _wippersnapper_uart_UARTRemove {
pb_callback_t device_id; /* * The unique identifier of the device to detach from the UART bus. */
} wippersnapper_uart_UARTRemove;
/* *
UARTEvent represents incoming data from a UART sensor. */
typedef struct _wippersnapper_uart_UARTEvent {
pb_callback_t device_id; /* * Unique identifier of the device to attach to the UART bus, from Adafruit_WipperSnapper_Components. */
pb_callback_t sensor_events; /* * An optionally repeated event from a sensor. */
} wippersnapper_uart_UARTEvent;
#ifdef __cplusplus
extern "C" {
#endif
/* Initializer values for message structs */
#define wippersnapper_uart_UARTBusData_init_default {0, {{NULL}, NULL}, {{NULL}, NULL}, 0}
#define wippersnapper_uart_UARTAdd_init_default {false, wippersnapper_uart_UARTBusData_init_default, {{NULL}, NULL}, 0}
#define wippersnapper_uart_UARTAdded_init_default {{{NULL}, NULL}, 0}
#define wippersnapper_uart_UARTRemove_init_default {{{NULL}, NULL}}
#define wippersnapper_uart_UARTEvent_init_default {{{NULL}, NULL}, {{NULL}, NULL}}
#define wippersnapper_uart_UARTBusData_init_zero {0, {{NULL}, NULL}, {{NULL}, NULL}, 0}
#define wippersnapper_uart_UARTAdd_init_zero {false, wippersnapper_uart_UARTBusData_init_zero, {{NULL}, NULL}, 0}
#define wippersnapper_uart_UARTAdded_init_zero {{{NULL}, NULL}, 0}
#define wippersnapper_uart_UARTRemove_init_zero {{{NULL}, NULL}}
#define wippersnapper_uart_UARTEvent_init_zero {{{NULL}, NULL}, {{NULL}, NULL}}
/* Field tags (for use in manual encoding/decoding) */
#define wippersnapper_uart_UARTBusData_baudrate_tag 1
#define wippersnapper_uart_UARTBusData_pin_rx_tag 2
#define wippersnapper_uart_UARTBusData_pin_tx_tag 3
#define wippersnapper_uart_UARTBusData_is_invert_tag 4
#define wippersnapper_uart_UARTAdd_bus_info_tag 1
#define wippersnapper_uart_UARTAdd_device_id_tag 2
#define wippersnapper_uart_UARTAdd_polling_interval_tag 3
#define wippersnapper_uart_UARTAdded_device_id_tag 1
#define wippersnapper_uart_UARTAdded_is_success_tag 2
#define wippersnapper_uart_UARTRemove_device_id_tag 1
#define wippersnapper_uart_UARTEvent_device_id_tag 1
#define wippersnapper_uart_UARTEvent_sensor_events_tag 2
/* Struct field encoding specification for nanopb */
#define wippersnapper_uart_UARTBusData_FIELDLIST(X, a) \
X(a, STATIC, SINGULAR, INT32, baudrate, 1) \
X(a, CALLBACK, SINGULAR, STRING, pin_rx, 2) \
X(a, CALLBACK, SINGULAR, STRING, pin_tx, 3) \
X(a, STATIC, SINGULAR, BOOL, is_invert, 4)
#define wippersnapper_uart_UARTBusData_CALLBACK pb_default_field_callback
#define wippersnapper_uart_UARTBusData_DEFAULT NULL
#define wippersnapper_uart_UARTAdd_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, MESSAGE, bus_info, 1) \
X(a, CALLBACK, SINGULAR, STRING, device_id, 2) \
X(a, STATIC, SINGULAR, INT32, polling_interval, 3)
#define wippersnapper_uart_UARTAdd_CALLBACK pb_default_field_callback
#define wippersnapper_uart_UARTAdd_DEFAULT NULL
#define wippersnapper_uart_UARTAdd_bus_info_MSGTYPE wippersnapper_uart_UARTBusData
#define wippersnapper_uart_UARTAdded_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, device_id, 1) \
X(a, STATIC, SINGULAR, BOOL, is_success, 2)
#define wippersnapper_uart_UARTAdded_CALLBACK pb_default_field_callback
#define wippersnapper_uart_UARTAdded_DEFAULT NULL
#define wippersnapper_uart_UARTRemove_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, device_id, 1)
#define wippersnapper_uart_UARTRemove_CALLBACK pb_default_field_callback
#define wippersnapper_uart_UARTRemove_DEFAULT NULL
#define wippersnapper_uart_UARTEvent_FIELDLIST(X, a) \
X(a, CALLBACK, SINGULAR, STRING, device_id, 1) \
X(a, CALLBACK, REPEATED, MESSAGE, sensor_events, 2)
#define wippersnapper_uart_UARTEvent_CALLBACK pb_default_field_callback
#define wippersnapper_uart_UARTEvent_DEFAULT NULL
#define wippersnapper_uart_UARTEvent_sensor_events_MSGTYPE wippersnapper_sensor_SensorEvent
extern const pb_msgdesc_t wippersnapper_uart_UARTBusData_msg;
extern const pb_msgdesc_t wippersnapper_uart_UARTAdd_msg;
extern const pb_msgdesc_t wippersnapper_uart_UARTAdded_msg;
extern const pb_msgdesc_t wippersnapper_uart_UARTRemove_msg;
extern const pb_msgdesc_t wippersnapper_uart_UARTEvent_msg;
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define wippersnapper_uart_UARTBusData_fields &wippersnapper_uart_UARTBusData_msg
#define wippersnapper_uart_UARTAdd_fields &wippersnapper_uart_UARTAdd_msg
#define wippersnapper_uart_UARTAdded_fields &wippersnapper_uart_UARTAdded_msg
#define wippersnapper_uart_UARTRemove_fields &wippersnapper_uart_UARTRemove_msg
#define wippersnapper_uart_UARTEvent_fields &wippersnapper_uart_UARTEvent_msg
/* Maximum encoded size of messages (where known) */
/* wippersnapper_uart_UARTBusData_size depends on runtime parameters */
/* wippersnapper_uart_UARTAdd_size depends on runtime parameters */
/* wippersnapper_uart_UARTAdded_size depends on runtime parameters */
/* wippersnapper_uart_UARTRemove_size depends on runtime parameters */
/* wippersnapper_uart_UARTEvent_size depends on runtime parameters */
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif