From 4ae462c9e0469dc4572a54e8271ae24404a69db7 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 11 Dec 2017 22:18:31 +0100 Subject: ... --- elegoo/elegoo.ino | 13 +++++----- elegoo/elegoo.pb.c | 36 ++++++++++++++++---------- elegoo/elegoo.pb.h | 76 ++++++++++++++++++++++++++++++++++-------------------- 3 files changed, 78 insertions(+), 47 deletions(-) (limited to 'elegoo') diff --git a/elegoo/elegoo.ino b/elegoo/elegoo.ino index b3d1ced..0911979 100644 --- a/elegoo/elegoo.ino +++ b/elegoo/elegoo.ino @@ -76,23 +76,24 @@ void onPacket(const uint8_t* buf, size_t size) { void events() { uint8_t buf[64]; - elegoo_Events evt = elegoo_Events_init_zero; + elegoo_Event evt = elegoo_Event_init_zero; + + evt.Head.Distance = readDistance(); + evt.Head.Direction = servo.read(); - evt.Distance = readDistance(); evt.Sensor.R = digitalRead(SR); evt.Sensor.C = digitalRead(SC); evt.Sensor.L = digitalRead(SL); if (irrecv.decode(&ir)) { - evt.KeyPress = ir.value; + evt.Remote.Key = ir.value; irrecv.resume(); } - evt.Direction = servo.read(); - evt.Time = millis(); + evt.TimeStamp = millis(); pb_ostream_t ostream = pb_ostream_from_buffer(buf, sizeof(buf)); - pb_encode_delimited(&ostream, elegoo_Events_fields, &evt); + pb_encode_delimited(&ostream, elegoo_Event_fields, &evt); serial.send(buf, ostream.bytes_written); } diff --git a/elegoo/elegoo.pb.c b/elegoo/elegoo.pb.c index fad83e8..93fd007 100644 --- a/elegoo/elegoo.pb.c +++ b/elegoo/elegoo.pb.c @@ -1,5 +1,5 @@ /* Automatically generated nanopb constant definitions */ -/* Generated by nanopb-0.3.9 at Mon Dec 11 21:46:37 2017. */ +/* Generated by nanopb-0.3.9 at Mon Dec 11 22:16:39 2017. */ #include "elegoo.pb.h" @@ -24,19 +24,29 @@ const pb_field_t elegoo_Command_fields[5] = { PB_LAST_FIELD }; -const pb_field_t elegoo_Sensor_fields[4] = { - PB_FIELD( 1, BOOL , SINGULAR, STATIC , FIRST, elegoo_Sensor, R, R, 0), - PB_FIELD( 2, BOOL , SINGULAR, STATIC , OTHER, elegoo_Sensor, C, R, 0), - PB_FIELD( 3, BOOL , SINGULAR, STATIC , OTHER, elegoo_Sensor, L, C, 0), +const pb_field_t elegoo_UltraSonic_fields[3] = { + PB_FIELD( 1, UINT32 , SINGULAR, STATIC , FIRST, elegoo_UltraSonic, Distance, Distance, 0), + PB_FIELD( 2, SINT32 , SINGULAR, STATIC , OTHER, elegoo_UltraSonic, Direction, Distance, 0), PB_LAST_FIELD }; -const pb_field_t elegoo_Events_fields[6] = { - PB_FIELD( 1, UINT32 , SINGULAR, STATIC , FIRST, elegoo_Events, Distance, Distance, 0), - PB_FIELD( 2, SINT32 , SINGULAR, STATIC , OTHER, elegoo_Events, Direction, Distance, 0), - PB_FIELD( 3, MESSAGE , SINGULAR, STATIC , OTHER, elegoo_Events, Sensor, Direction, &elegoo_Sensor_fields), - PB_FIELD( 6, UINT32 , SINGULAR, STATIC , OTHER, elegoo_Events, KeyPress, Sensor, 0), - PB_FIELD( 7, UINT32 , SINGULAR, STATIC , OTHER, elegoo_Events, Time, KeyPress, 0), +const pb_field_t elegoo_InfraRed_fields[4] = { + PB_FIELD( 1, BOOL , SINGULAR, STATIC , FIRST, elegoo_InfraRed, R, R, 0), + PB_FIELD( 2, BOOL , SINGULAR, STATIC , OTHER, elegoo_InfraRed, C, R, 0), + PB_FIELD( 3, BOOL , SINGULAR, STATIC , OTHER, elegoo_InfraRed, L, C, 0), + PB_LAST_FIELD +}; + +const pb_field_t elegoo_RemoteControl_fields[2] = { + PB_FIELD( 1, UINT32 , SINGULAR, STATIC , FIRST, elegoo_RemoteControl, Key, Key, 0), + PB_LAST_FIELD +}; + +const pb_field_t elegoo_Event_fields[5] = { + PB_FIELD( 1, MESSAGE , SINGULAR, STATIC , FIRST, elegoo_Event, Head, Head, &elegoo_UltraSonic_fields), + PB_FIELD( 2, MESSAGE , SINGULAR, STATIC , OTHER, elegoo_Event, Sensor, Head, &elegoo_InfraRed_fields), + PB_FIELD( 3, MESSAGE , SINGULAR, STATIC , OTHER, elegoo_Event, Remote, Sensor, &elegoo_RemoteControl_fields), + PB_FIELD( 4, UINT32 , SINGULAR, STATIC , OTHER, elegoo_Event, TimeStamp, Remote, 0), PB_LAST_FIELD }; @@ -50,7 +60,7 @@ const pb_field_t elegoo_Events_fields[6] = { * numbers or field sizes that are larger than what can fit in 8 or 16 bit * field descriptors. */ -PB_STATIC_ASSERT((pb_membersize(elegoo_Command, Speed) < 65536 && pb_membersize(elegoo_Events, Sensor) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_elegoo_Speed_elegoo_Command_elegoo_Sensor_elegoo_Events) +PB_STATIC_ASSERT((pb_membersize(elegoo_Command, Speed) < 65536 && pb_membersize(elegoo_Event, Head) < 65536 && pb_membersize(elegoo_Event, Sensor) < 65536 && pb_membersize(elegoo_Event, Remote) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_elegoo_Speed_elegoo_Command_elegoo_UltraSonic_elegoo_InfraRed_elegoo_RemoteControl_elegoo_Event) #endif #if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT) @@ -61,7 +71,7 @@ PB_STATIC_ASSERT((pb_membersize(elegoo_Command, Speed) < 65536 && pb_membersize( * numbers or field sizes that are larger than what can fit in the default * 8 bit descriptors. */ -PB_STATIC_ASSERT((pb_membersize(elegoo_Command, Speed) < 256 && pb_membersize(elegoo_Events, Sensor) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_elegoo_Speed_elegoo_Command_elegoo_Sensor_elegoo_Events) +PB_STATIC_ASSERT((pb_membersize(elegoo_Command, Speed) < 256 && pb_membersize(elegoo_Event, Head) < 256 && pb_membersize(elegoo_Event, Sensor) < 256 && pb_membersize(elegoo_Event, Remote) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_elegoo_Speed_elegoo_Command_elegoo_UltraSonic_elegoo_InfraRed_elegoo_RemoteControl_elegoo_Event) #endif diff --git a/elegoo/elegoo.pb.h b/elegoo/elegoo.pb.h index 3d90f3f..9160145 100644 --- a/elegoo/elegoo.pb.h +++ b/elegoo/elegoo.pb.h @@ -1,5 +1,5 @@ /* Automatically generated nanopb header */ -/* Generated by nanopb-0.3.9 at Mon Dec 11 21:46:37 2017. */ +/* Generated by nanopb-0.3.9 at Mon Dec 11 22:16:39 2017. */ #ifndef PB_ELEGOO_ELEGOO_PB_H_INCLUDED #define PB_ELEGOO_ELEGOO_PB_H_INCLUDED @@ -15,12 +15,17 @@ extern "C" { #endif /* Struct definitions */ -typedef struct _elegoo_Sensor { +typedef struct _elegoo_InfraRed { bool R; bool C; bool L; -/* @@protoc_insertion_point(struct:elegoo_Sensor) */ -} elegoo_Sensor; +/* @@protoc_insertion_point(struct:elegoo_InfraRed) */ +} elegoo_InfraRed; + +typedef struct _elegoo_RemoteControl { + uint32_t Key; +/* @@protoc_insertion_point(struct:elegoo_RemoteControl) */ +} elegoo_RemoteControl; typedef struct _elegoo_Speed { int32_t L; @@ -28,6 +33,12 @@ typedef struct _elegoo_Speed { /* @@protoc_insertion_point(struct:elegoo_Speed) */ } elegoo_Speed; +typedef struct _elegoo_UltraSonic { + uint32_t Distance; + int32_t Direction; +/* @@protoc_insertion_point(struct:elegoo_UltraSonic) */ +} elegoo_UltraSonic; + typedef struct _elegoo_Command { elegoo_Speed Speed; bool Stop; @@ -36,54 +47,63 @@ typedef struct _elegoo_Command { /* @@protoc_insertion_point(struct:elegoo_Command) */ } elegoo_Command; -typedef struct _elegoo_Events { - uint32_t Distance; - int32_t Direction; - elegoo_Sensor Sensor; - uint32_t KeyPress; - uint32_t Time; -/* @@protoc_insertion_point(struct:elegoo_Events) */ -} elegoo_Events; +typedef struct _elegoo_Event { + elegoo_UltraSonic Head; + elegoo_InfraRed Sensor; + elegoo_RemoteControl Remote; + uint32_t TimeStamp; +/* @@protoc_insertion_point(struct:elegoo_Event) */ +} elegoo_Event; /* Default values for struct fields */ /* Initializer values for message structs */ #define elegoo_Speed_init_default {0, 0} #define elegoo_Command_init_default {elegoo_Speed_init_default, 0, 0, 0} -#define elegoo_Sensor_init_default {0, 0, 0} -#define elegoo_Events_init_default {0, 0, elegoo_Sensor_init_default, 0, 0} +#define elegoo_UltraSonic_init_default {0, 0} +#define elegoo_InfraRed_init_default {0, 0, 0} +#define elegoo_RemoteControl_init_default {0} +#define elegoo_Event_init_default {elegoo_UltraSonic_init_default, elegoo_InfraRed_init_default, elegoo_RemoteControl_init_default, 0} #define elegoo_Speed_init_zero {0, 0} #define elegoo_Command_init_zero {elegoo_Speed_init_zero, 0, 0, 0} -#define elegoo_Sensor_init_zero {0, 0, 0} -#define elegoo_Events_init_zero {0, 0, elegoo_Sensor_init_zero, 0, 0} +#define elegoo_UltraSonic_init_zero {0, 0} +#define elegoo_InfraRed_init_zero {0, 0, 0} +#define elegoo_RemoteControl_init_zero {0} +#define elegoo_Event_init_zero {elegoo_UltraSonic_init_zero, elegoo_InfraRed_init_zero, elegoo_RemoteControl_init_zero, 0} /* Field tags (for use in manual encoding/decoding) */ -#define elegoo_Sensor_R_tag 1 -#define elegoo_Sensor_C_tag 2 -#define elegoo_Sensor_L_tag 3 +#define elegoo_InfraRed_R_tag 1 +#define elegoo_InfraRed_C_tag 2 +#define elegoo_InfraRed_L_tag 3 +#define elegoo_RemoteControl_Key_tag 1 #define elegoo_Speed_L_tag 1 #define elegoo_Speed_R_tag 2 +#define elegoo_UltraSonic_Distance_tag 1 +#define elegoo_UltraSonic_Direction_tag 2 #define elegoo_Command_Speed_tag 1 #define elegoo_Command_Stop_tag 3 #define elegoo_Command_Direction_tag 4 #define elegoo_Command_StopAfter_tag 5 -#define elegoo_Events_Distance_tag 1 -#define elegoo_Events_Direction_tag 2 -#define elegoo_Events_Sensor_tag 3 -#define elegoo_Events_KeyPress_tag 6 -#define elegoo_Events_Time_tag 7 +#define elegoo_Event_Head_tag 1 +#define elegoo_Event_Sensor_tag 2 +#define elegoo_Event_Remote_tag 3 +#define elegoo_Event_TimeStamp_tag 4 /* Struct field encoding specification for nanopb */ extern const pb_field_t elegoo_Speed_fields[3]; extern const pb_field_t elegoo_Command_fields[5]; -extern const pb_field_t elegoo_Sensor_fields[4]; -extern const pb_field_t elegoo_Events_fields[6]; +extern const pb_field_t elegoo_UltraSonic_fields[3]; +extern const pb_field_t elegoo_InfraRed_fields[4]; +extern const pb_field_t elegoo_RemoteControl_fields[2]; +extern const pb_field_t elegoo_Event_fields[5]; /* Maximum encoded size of messages (where known) */ #define elegoo_Speed_size 12 #define elegoo_Command_size 28 -#define elegoo_Sensor_size 6 -#define elegoo_Events_size 32 +#define elegoo_UltraSonic_size 12 +#define elegoo_InfraRed_size 6 +#define elegoo_RemoteControl_size 6 +#define elegoo_Event_size 36 /* Message IDs (where set with "msgid" option) */ #ifdef PB_MSGID -- cgit v1.2.3