@@ -129,10 +129,11 @@ typedef struct _wippersnapper_i2c_I2cDeviceEvent {
129129typedef struct _wippersnapper_i2c_I2cDeviceOutputWrite {
130130 bool has_i2c_device_description ;
131131 wippersnapper_i2c_I2cDeviceDescriptor i2c_device_description ; /* * Required - The I2c device's address and metadata. */
132- bool has_led_backpack_write ;
133- wippersnapper_i2c_output_LedBackpackWrite led_backpack_write ; /* * Optional - If the I2C device is a LED backpack, fill this field. * */
134- bool has_char_lcd_write ;
135- wippersnapper_i2c_output_CharLCDWrite char_lcd_write ; /* * Optional - If the I2C device is a character LCD, fill this field. * */
132+ pb_size_t which_output_msg ;
133+ union {
134+ wippersnapper_i2c_output_LedBackpackWrite write_led_backpack ; /* * Optional - If the I2C device is a LED backpack, fill this field. * */
135+ wippersnapper_i2c_output_CharLCDWrite write_char_lcd ; /* * Optional - If the I2C device is a character LCD, fill this field. * */
136+ } output_msg ;
136137} wippersnapper_i2c_I2cDeviceOutputWrite ;
137138
138139
@@ -174,7 +175,7 @@ extern "C" {
174175#define wippersnapper_i2c_I2cDeviceRemove_init_default {false, wippersnapper_i2c_I2cDeviceDescriptor_init_default, 0}
175176#define wippersnapper_i2c_I2cDeviceRemoved_init_default {false, wippersnapper_i2c_I2cDeviceDescriptor_init_default, 0}
176177#define wippersnapper_i2c_I2cDeviceEvent_init_default {false, wippersnapper_i2c_I2cDeviceDescriptor_init_default, 0, {wippersnapper_sensor_SensorEvent_init_default, wippersnapper_sensor_SensorEvent_init_default, wippersnapper_sensor_SensorEvent_init_default, wippersnapper_sensor_SensorEvent_init_default, wippersnapper_sensor_SensorEvent_init_default, wippersnapper_sensor_SensorEvent_init_default, wippersnapper_sensor_SensorEvent_init_default, wippersnapper_sensor_SensorEvent_init_default, wippersnapper_sensor_SensorEvent_init_default, wippersnapper_sensor_SensorEvent_init_default, wippersnapper_sensor_SensorEvent_init_default, wippersnapper_sensor_SensorEvent_init_default, wippersnapper_sensor_SensorEvent_init_default, wippersnapper_sensor_SensorEvent_init_default, wippersnapper_sensor_SensorEvent_init_default}}
177- #define wippersnapper_i2c_I2cDeviceOutputWrite_init_default {false, wippersnapper_i2c_I2cDeviceDescriptor_init_default, false, wippersnapper_i2c_output_LedBackpackWrite_init_default, false, wippersnapper_i2c_output_CharLCDWrite_init_default }
178+ #define wippersnapper_i2c_I2cDeviceOutputWrite_init_default {false, wippersnapper_i2c_I2cDeviceDescriptor_init_default, 0, { wippersnapper_i2c_output_LedBackpackWrite_init_default} }
178179#define wippersnapper_i2c_I2cDeviceDescriptor_init_zero {"", "", 0, 0, 0}
179180#define wippersnapper_i2c_I2cBusDescriptor_init_zero {"", ""}
180181#define wippersnapper_i2c_I2cBusScan_init_zero {0, 0, false, wippersnapper_i2c_I2cBusDescriptor_init_zero, 0, 0}
@@ -184,7 +185,7 @@ extern "C" {
184185#define wippersnapper_i2c_I2cDeviceRemove_init_zero {false, wippersnapper_i2c_I2cDeviceDescriptor_init_zero, 0}
185186#define wippersnapper_i2c_I2cDeviceRemoved_init_zero {false, wippersnapper_i2c_I2cDeviceDescriptor_init_zero, 0}
186187#define wippersnapper_i2c_I2cDeviceEvent_init_zero {false, wippersnapper_i2c_I2cDeviceDescriptor_init_zero, 0, {wippersnapper_sensor_SensorEvent_init_zero, wippersnapper_sensor_SensorEvent_init_zero, wippersnapper_sensor_SensorEvent_init_zero, wippersnapper_sensor_SensorEvent_init_zero, wippersnapper_sensor_SensorEvent_init_zero, wippersnapper_sensor_SensorEvent_init_zero, wippersnapper_sensor_SensorEvent_init_zero, wippersnapper_sensor_SensorEvent_init_zero, wippersnapper_sensor_SensorEvent_init_zero, wippersnapper_sensor_SensorEvent_init_zero, wippersnapper_sensor_SensorEvent_init_zero, wippersnapper_sensor_SensorEvent_init_zero, wippersnapper_sensor_SensorEvent_init_zero, wippersnapper_sensor_SensorEvent_init_zero, wippersnapper_sensor_SensorEvent_init_zero}}
187- #define wippersnapper_i2c_I2cDeviceOutputWrite_init_zero {false, wippersnapper_i2c_I2cDeviceDescriptor_init_zero, false, wippersnapper_i2c_output_LedBackpackWrite_init_zero, false, wippersnapper_i2c_output_CharLCDWrite_init_zero }
188+ #define wippersnapper_i2c_I2cDeviceOutputWrite_init_zero {false, wippersnapper_i2c_I2cDeviceDescriptor_init_zero, 0, { wippersnapper_i2c_output_LedBackpackWrite_init_zero} }
188189
189190/* Field tags (for use in manual encoding/decoding) */
190191#define wippersnapper_i2c_I2cDeviceDescriptor_i2c_bus_sda_tag 1
@@ -218,8 +219,8 @@ extern "C" {
218219#define wippersnapper_i2c_I2cDeviceEvent_i2c_device_description_tag 1
219220#define wippersnapper_i2c_I2cDeviceEvent_i2c_device_events_tag 2
220221#define wippersnapper_i2c_I2cDeviceOutputWrite_i2c_device_description_tag 1
221- #define wippersnapper_i2c_I2cDeviceOutputWrite_led_backpack_write_tag 2
222- #define wippersnapper_i2c_I2cDeviceOutputWrite_char_lcd_write_tag 3
222+ #define wippersnapper_i2c_I2cDeviceOutputWrite_write_led_backpack_tag 2
223+ #define wippersnapper_i2c_I2cDeviceOutputWrite_write_char_lcd_tag 3
223224
224225/* Struct field encoding specification for nanopb */
225226#define wippersnapper_i2c_I2cDeviceDescriptor_FIELDLIST (X , a ) \
@@ -299,13 +300,13 @@ X(a, STATIC, REPEATED, MESSAGE, i2c_device_events, 2)
299300
300301#define wippersnapper_i2c_I2cDeviceOutputWrite_FIELDLIST (X , a ) \
301302X(a, STATIC, OPTIONAL, MESSAGE, i2c_device_description, 1) \
302- X(a, STATIC, OPTIONAL, MESSAGE, led_backpack_write , 2) \
303- X(a, STATIC, OPTIONAL, MESSAGE, char_lcd_write, 3)
303+ X(a, STATIC, ONEOF, MESSAGE, (output_msg,write_led_backpack,output_msg.write_led_backpack) , 2) \
304+ X(a, STATIC, ONEOF, MESSAGE, (output_msg,write_char_lcd,output_msg.write_char_lcd), 3)
304305#define wippersnapper_i2c_I2cDeviceOutputWrite_CALLBACK NULL
305306#define wippersnapper_i2c_I2cDeviceOutputWrite_DEFAULT NULL
306307#define wippersnapper_i2c_I2cDeviceOutputWrite_i2c_device_description_MSGTYPE wippersnapper_i2c_I2cDeviceDescriptor
307- #define wippersnapper_i2c_I2cDeviceOutputWrite_led_backpack_write_MSGTYPE wippersnapper_i2c_output_LedBackpackWrite
308- #define wippersnapper_i2c_I2cDeviceOutputWrite_char_lcd_write_MSGTYPE wippersnapper_i2c_output_CharLCDWrite
308+ #define wippersnapper_i2c_I2cDeviceOutputWrite_output_msg_write_led_backpack_MSGTYPE wippersnapper_i2c_output_LedBackpackWrite
309+ #define wippersnapper_i2c_I2cDeviceOutputWrite_output_msg_write_char_lcd_MSGTYPE wippersnapper_i2c_output_CharLCDWrite
309310
310311extern const pb_msgdesc_t wippersnapper_i2c_I2cDeviceDescriptor_msg ;
311312extern const pb_msgdesc_t wippersnapper_i2c_I2cBusDescriptor_msg ;
@@ -338,7 +339,7 @@ extern const pb_msgdesc_t wippersnapper_i2c_I2cDeviceOutputWrite_msg;
338339#define wippersnapper_i2c_I2cDeviceAddOrReplace_size 141
339340#define wippersnapper_i2c_I2cDeviceAddedOrReplaced_size 56
340341#define wippersnapper_i2c_I2cDeviceDescriptor_size 50
341- #define wippersnapper_i2c_I2cDeviceOutputWrite_size 147
342+ #define wippersnapper_i2c_I2cDeviceOutputWrite_size 100
342343#define wippersnapper_i2c_I2cDeviceRemove_size 54
343344#define wippersnapper_i2c_I2cDeviceRemoved_size 54
344345#if defined(wippersnapper_sensor_SensorEvent_size )
0 commit comments