/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.9 */

#ifndef PB_READER_V1_READER_V1_READER_PB_H_INCLUDED
#define PB_READER_V1_READER_V1_READER_PB_H_INCLUDED
#include <pb.h>
#include "google/protobuf/timestamp.pb.h"
#include "reader/v1/settings.pb.h"
#include "util/uuid.pb.h"

#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif

/* Struct definitions */
typedef struct _reader_v1_Reader {
    bool has_id;
    util_UUID id;
    /* foreign keys */
    bool has_account_id;
    util_UUID account_id;
    bool has_location_id;
    util_UUID location_id;
    /* metadata */
    pb_callback_t name;
    uint32_t manufacturer;
    uint32_t model;
    pb_callback_t firmware;
    uint32_t gpis;
    uint32_t gpos;
    pb_callback_t ip;
    bool has_heartbeat;
    google_protobuf_Timestamp heartbeat;
    bool has_last_updated;
    google_protobuf_Timestamp last_updated;
    /* aggregates */
    bool has_read_count;
    uint64_t read_count;
    bool has_last_read_timestamp;
    google_protobuf_Timestamp last_read_timestamp;
    bool has_last_read_latitude;
    float last_read_latitude;
    bool has_last_read_longitude;
    float last_read_longitude;
    /* settings */
    bool has_settings;
    reader_v1_Settings settings;
} reader_v1_Reader;


#ifdef __cplusplus
extern "C" {
#endif

/* Initializer values for message structs */
#define reader_v1_Reader_init_default            {false, util_UUID_init_default, false, util_UUID_init_default, false, util_UUID_init_default, {{NULL}, NULL}, 0, 0, {{NULL}, NULL}, 0, 0, {{NULL}, NULL}, false, google_protobuf_Timestamp_init_default, false, google_protobuf_Timestamp_init_default, false, 0, false, google_protobuf_Timestamp_init_default, false, 0, false, 0, false, reader_v1_Settings_init_default}
#define reader_v1_Reader_init_zero               {false, util_UUID_init_zero, false, util_UUID_init_zero, false, util_UUID_init_zero, {{NULL}, NULL}, 0, 0, {{NULL}, NULL}, 0, 0, {{NULL}, NULL}, false, google_protobuf_Timestamp_init_zero, false, google_protobuf_Timestamp_init_zero, false, 0, false, google_protobuf_Timestamp_init_zero, false, 0, false, 0, false, reader_v1_Settings_init_zero}

/* Field tags (for use in manual encoding/decoding) */
#define reader_v1_Reader_id_tag                  1
#define reader_v1_Reader_account_id_tag          2
#define reader_v1_Reader_location_id_tag         3
#define reader_v1_Reader_name_tag                4
#define reader_v1_Reader_manufacturer_tag        5
#define reader_v1_Reader_model_tag               6
#define reader_v1_Reader_firmware_tag            7
#define reader_v1_Reader_gpis_tag                8
#define reader_v1_Reader_gpos_tag                9
#define reader_v1_Reader_ip_tag                  10
#define reader_v1_Reader_heartbeat_tag           11
#define reader_v1_Reader_last_updated_tag        12
#define reader_v1_Reader_read_count_tag          13
#define reader_v1_Reader_last_read_timestamp_tag 14
#define reader_v1_Reader_last_read_latitude_tag  15
#define reader_v1_Reader_last_read_longitude_tag 16
#define reader_v1_Reader_settings_tag            17

/* Struct field encoding specification for nanopb */
#define reader_v1_Reader_FIELDLIST(X, a) \
X(a, STATIC,   OPTIONAL, MESSAGE,  id,                1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  account_id,        2) \
X(a, STATIC,   OPTIONAL, MESSAGE,  location_id,       3) \
X(a, CALLBACK, OPTIONAL, STRING,   name,              4) \
X(a, STATIC,   SINGULAR, UINT32,   manufacturer,      5) \
X(a, STATIC,   SINGULAR, UINT32,   model,             6) \
X(a, CALLBACK, SINGULAR, STRING,   firmware,          7) \
X(a, STATIC,   SINGULAR, UINT32,   gpis,              8) \
X(a, STATIC,   SINGULAR, UINT32,   gpos,              9) \
X(a, CALLBACK, SINGULAR, STRING,   ip,               10) \
X(a, STATIC,   OPTIONAL, MESSAGE,  heartbeat,        11) \
X(a, STATIC,   OPTIONAL, MESSAGE,  last_updated,     12) \
X(a, STATIC,   OPTIONAL, UINT64,   read_count,       13) \
X(a, STATIC,   OPTIONAL, MESSAGE,  last_read_timestamp,  14) \
X(a, STATIC,   OPTIONAL, FLOAT,    last_read_latitude,  15) \
X(a, STATIC,   OPTIONAL, FLOAT,    last_read_longitude,  16) \
X(a, STATIC,   OPTIONAL, MESSAGE,  settings,         17)
#define reader_v1_Reader_CALLBACK pb_default_field_callback
#define reader_v1_Reader_DEFAULT NULL
#define reader_v1_Reader_id_MSGTYPE util_UUID
#define reader_v1_Reader_account_id_MSGTYPE util_UUID
#define reader_v1_Reader_location_id_MSGTYPE util_UUID
#define reader_v1_Reader_heartbeat_MSGTYPE google_protobuf_Timestamp
#define reader_v1_Reader_last_updated_MSGTYPE google_protobuf_Timestamp
#define reader_v1_Reader_last_read_timestamp_MSGTYPE google_protobuf_Timestamp
#define reader_v1_Reader_settings_MSGTYPE reader_v1_Settings

extern const pb_msgdesc_t reader_v1_Reader_msg;

/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define reader_v1_Reader_fields &reader_v1_Reader_msg

/* Maximum encoded size of messages (where known) */
/* reader_v1_Reader_size depends on runtime parameters */

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif
