text: /* Automatically generated nanopb header */
  /* Generated by nanopb-0.4.5 */
  
  #ifndef PB_EXAMPLEPROTO_PB_H_INCLUDED
  #define PB_EXAMPLEPROTO_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 */
  typedef enum _DeviceRequest_RequestType { 
      DeviceRequest_RequestType_UNUSED = 0, 
      DeviceRequest_RequestType_CHANGE_LED_STATE = 1, 
      DeviceRequest_RequestType_START = 2, 
      DeviceRequest_RequestType_STOP = 3 
  } DeviceRequest_RequestType;
  
  typedef enum _DeviceResponse_ResponseType { 
      DeviceResponse_ResponseType_UNUSED = 0, 
      DeviceResponse_ResponseType_OK = 1, 
      DeviceResponse_ResponseType_BAD_TYPE = 2, 
      DeviceResponse_ResponseType_PROTOBUF_ERROR = 3 
  } DeviceResponse_ResponseType;
  
  /* Struct definitions */
  /* This message contains the data */
  typedef struct _DataPacket { 
      /* All values are random, in some fixed ranges.
   Values A-C will randomly change after every readout. */
      double valueA; 
      double valueB; 
      double valueC; 
      double constantValue; 
      /* Packet number is counted from 1 and increases after every packet has been sent. */
      uint32_t packetNumber; 
  } DataPacket;
  
  typedef struct _DeviceResponse { 
      DeviceResponse_ResponseType code; 
  } DeviceResponse;
  
  /* This message is for turning onboard LED on and off */
  typedef struct _LED { 
      bool state; 
  } LED;
  
  /* This message is used to tell the device what do you want to do */
  typedef struct _DeviceRequest { 
      DeviceRequest_RequestType code; 
      /* ledState is ignored, unless it's CHANGE_LED_STATE request
   Since proto3 does not track presence by default, you can just
   completely ignore this field on both sides if it's not used. */
      bool has_ledState;
      LED ledState; 
  } DeviceRequest;
  
  
  /* Helper constants for enums */
  #define _DeviceRequest_RequestType_MIN DeviceRequest_RequestType_UNUSED
  #define _DeviceRequest_RequestType_MAX DeviceRequest_RequestType_STOP
  #define _DeviceRequest_RequestType_ARRAYSIZE ((DeviceRequest_RequestType)(DeviceRequest_RequestType_STOP+1))
  
  #define _DeviceResponse_ResponseType_MIN DeviceResponse_ResponseType_UNUSED
  #define _DeviceResponse_ResponseType_MAX DeviceResponse_ResponseType_PROTOBUF_ERROR
  #define _DeviceResponse_ResponseType_ARRAYSIZE ((DeviceResponse_ResponseType)(DeviceResponse_ResponseType_PROTOBUF_ERROR+1))
  
  
  #ifdef __cplusplus
  extern "C" {
  #endif
  
  /* Initializer values for message structs */
  #define LED_init_default                         {0}
  #define DataPacket_init_default                  {0, 0, 0, 0, 0}
  #define DeviceRequest_init_default               {_DeviceRequest_RequestType_MIN, false, LED_init_default}
  #define DeviceResponse_init_default              {_DeviceResponse_ResponseType_MIN}
  #define LED_init_zero                            {0}
  #define DataPacket_init_zero                     {0, 0, 0, 0, 0}
  #define DeviceRequest_init_zero                  {_DeviceRequest_RequestType_MIN, false, LED_init_zero}
  #define DeviceResponse_init_zero                 {_DeviceResponse_ResponseType_MIN}
  
  /* Field tags (for use in manual encoding/decoding) */
  #define DataPacket_valueA_tag                    1
  #define DataPacket_valueB_tag                    2
  #define DataPacket_valueC_tag                    3
  #define DataPacket_constantValue_tag             4
  #define DataPacket_packetNumber_tag              5
  #define DeviceResponse_code_tag                  1
  #define LED_state_tag                            1
  #define DeviceRequest_code_tag                   1
  #define DeviceRequest_ledState_tag               2
  
  /* Struct field encoding specification for nanopb */
  #define LED_FIELDLIST(X, a) \
  X(a, STATIC,   SINGULAR, BOOL,     state,             1)
  #define LED_CALLBACK NULL
  #define LED_DEFAULT NULL
  
  #define DataPacket_FIELDLIST(X, a) \
  X(a, STATIC,   SINGULAR, DOUBLE,   valueA,            1) \
  X(a, STATIC,   SINGULAR, DOUBLE,   valueB,            2) \
  X(a, STATIC,   SINGULAR, DOUBLE,   valueC,            3) \
  X(a, STATIC,   SINGULAR, DOUBLE,   constantValue,     4) \
  X(a, STATIC,   SINGULAR, UINT32,   packetNumber,      5)
  #define DataPacket_CALLBACK NULL
  #define DataPacket_DEFAULT NULL
  
  #define DeviceRequest_FIELDLIST(X, a) \
  X(a, STATIC,   SINGULAR, UENUM,    code,              1) \
  X(a, STATIC,   OPTIONAL, MESSAGE,  ledState,          2)
  #define DeviceRequest_CALLBACK NULL
  #define DeviceRequest_DEFAULT NULL
  #define DeviceRequest_ledState_MSGTYPE LED
  
  #define DeviceResponse_FIELDLIST(X, a) \
  X(a, STATIC,   SINGULAR, UENUM,    code,              1)
  #define DeviceResponse_CALLBACK NULL
  #define DeviceResponse_DEFAULT NULL
  
  extern const pb_msgdesc_t LED_msg;
  extern const pb_msgdesc_t DataPacket_msg;
  extern const pb_msgdesc_t DeviceRequest_msg;
  extern const pb_msgdesc_t DeviceResponse_msg;
  
  /* Defines for backwards compatibility with code written before nanopb-0.4.0 */
  #define LED_fields &LED_msg
  #define DataPacket_fields &DataPacket_msg
  #define DeviceRequest_fields &DeviceRequest_msg
  #define DeviceResponse_fields &DeviceResponse_msg
  
  /* Maximum encoded size of messages (where known) */
  #define DataPacket_size                          42
  #define DeviceRequest_size                       6
  #define DeviceResponse_size                      2
  #define LED_size                                 2
  
  #ifdef __cplusplus
  } /* extern "C" */
  #endif
  
  #endif
  