Itron LCE research protocol on July 12, 2017. The protocol is based on Protocol Buffers developed by Google.

Dependents:   ProtocBufTest Borsch

Files at this revision

API Documentation at this revision

Comitter:
sgnezdov
Date:
Wed Jul 12 23:10:01 2017 +0000
Child:
1:83c12dd43854
Commit message:
Itron LCE research protocol on July 12, 2017

Changed in this revision

source/command.pb.c Show annotated file Show diff for this revision Revisions of this file
source/command.pb.h Show annotated file Show diff for this revision Revisions of this file
source/eagle.pb.c Show annotated file Show diff for this revision Revisions of this file
source/eagle.pb.h Show annotated file Show diff for this revision Revisions of this file
source/gasQuality.pb.c Show annotated file Show diff for this revision Revisions of this file
source/gasQuality.pb.h Show annotated file Show diff for this revision Revisions of this file
source/info.pb.c Show annotated file Show diff for this revision Revisions of this file
source/info.pb.h Show annotated file Show diff for this revision Revisions of this file
source/sample.pb.c Show annotated file Show diff for this revision Revisions of this file
source/sample.pb.h Show annotated file Show diff for this revision Revisions of this file
source/stm.pb.c Show annotated file Show diff for this revision Revisions of this file
source/stm.pb.h Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/command.pb.c	Wed Jul 12 23:10:01 2017 +0000
@@ -0,0 +1,70 @@
+/* Automatically generated nanopb constant definitions */
+/* Generated by nanopb-0.3.8 at Wed Jul 12 11:04:33 2017. */
+
+#include "command.pb.h"
+
+/* @@protoc_insertion_point(includes) */
+#if PB_PROTO_HEADER_VERSION != 30
+#error Regenerate this file with the current version of nanopb generator.
+#endif
+
+
+
+const pb_field_t protocol_Command_fields[4] = {
+    PB_FIELD(  1, MESSAGE , SINGULAR, STATIC  , FIRST, protocol_Command, issuedDT, issuedDT, &google_protobuf_Timestamp_fields),
+    PB_FIELD(  2, UINT32  , SINGULAR, STATIC  , OTHER, protocol_Command, commandType, issuedDT, 0),
+    PB_FIELD( 10, BYTES   , SINGULAR, CALLBACK, OTHER, protocol_Command, payload, commandType, 0),
+    PB_LAST_FIELD
+};
+
+const pb_field_t protocol_CommandBatch_fields[3] = {
+    PB_FIELD(  1, STRING  , SINGULAR, CALLBACK, FIRST, protocol_CommandBatch, sn, sn, 0),
+    PB_FIELD( 10, MESSAGE , REPEATED, CALLBACK, OTHER, protocol_CommandBatch, items, sn, &protocol_Command_fields),
+    PB_LAST_FIELD
+};
+
+const pb_field_t protocol_SecureCommandBatch_fields[3] = {
+    PB_FIELD(  1, BYTES   , SINGULAR, CALLBACK, FIRST, protocol_SecureCommandBatch, signature, signature, 0),
+    PB_FIELD(  2, BYTES   , SINGULAR, CALLBACK, OTHER, protocol_SecureCommandBatch, content, signature, 0),
+    PB_LAST_FIELD
+};
+
+const pb_field_t protocol_CommandResponse_fields[3] = {
+    PB_FIELD(  1, MESSAGE , SINGULAR, STATIC  , FIRST, protocol_CommandResponse, issuedDT, issuedDT, &google_protobuf_Timestamp_fields),
+    PB_FIELD(  2, UENUM   , SINGULAR, STATIC  , OTHER, protocol_CommandResponse, status, issuedDT, 0),
+    PB_LAST_FIELD
+};
+
+const pb_field_t protocol_CommandResponseBatch_fields[3] = {
+    PB_FIELD(  1, STRING  , SINGULAR, CALLBACK, FIRST, protocol_CommandResponseBatch, sn, sn, 0),
+    PB_FIELD(  2, MESSAGE , REPEATED, CALLBACK, OTHER, protocol_CommandResponseBatch, items, sn, &protocol_CommandResponse_fields),
+    PB_LAST_FIELD
+};
+
+
+
+/* Check that field information fits in pb_field_t */
+#if !defined(PB_FIELD_32BIT)
+/* If you get an error here, it means that you need to define PB_FIELD_32BIT
+ * compile-time option. You can do that in pb.h or on compiler command line.
+ * 
+ * The reason you need to do this is that some of your messages contain tag
+ * numbers or field sizes that are larger than what can fit in 8 or 16 bit
+ * field descriptors.
+ */
+PB_STATIC_ASSERT((pb_membersize(protocol_Command, issuedDT) < 65536 && pb_membersize(protocol_CommandResponse, issuedDT) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_protocol_Command_protocol_CommandBatch_protocol_SecureCommandBatch_protocol_CommandResponse_protocol_CommandResponseBatch)
+#endif
+
+#if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT)
+/* If you get an error here, it means that you need to define PB_FIELD_16BIT
+ * compile-time option. You can do that in pb.h or on compiler command line.
+ * 
+ * The reason you need to do this is that some of your messages contain tag
+ * numbers or field sizes that are larger than what can fit in the default
+ * 8 bit descriptors.
+ */
+PB_STATIC_ASSERT((pb_membersize(protocol_Command, issuedDT) < 256 && pb_membersize(protocol_CommandResponse, issuedDT) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_protocol_Command_protocol_CommandBatch_protocol_SecureCommandBatch_protocol_CommandResponse_protocol_CommandResponseBatch)
+#endif
+
+
+/* @@protoc_insertion_point(eof) */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/command.pb.h	Wed Jul 12 23:10:01 2017 +0000
@@ -0,0 +1,113 @@
+/* Automatically generated nanopb header */
+/* Generated by nanopb-0.3.8 at Wed Jul 12 11:04:33 2017. */
+
+#ifndef PB_PROTOCOL_COMMAND_PB_H_INCLUDED
+#define PB_PROTOCOL_COMMAND_PB_H_INCLUDED
+#include <pb.h>
+
+#include "google/protobuf/timestamp.pb.h"
+
+/* @@protoc_insertion_point(includes) */
+#if PB_PROTO_HEADER_VERSION != 30
+#error Regenerate this file with the current version of nanopb generator.
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Enum definitions */
+typedef enum _protocol_CommandStatus {
+    protocol_CommandStatus_Success = 0
+} protocol_CommandStatus;
+#define _protocol_CommandStatus_MIN protocol_CommandStatus_Success
+#define _protocol_CommandStatus_MAX protocol_CommandStatus_Success
+#define _protocol_CommandStatus_ARRAYSIZE ((protocol_CommandStatus)(protocol_CommandStatus_Success+1))
+
+/* Struct definitions */
+typedef struct _protocol_CommandBatch {
+    pb_callback_t sn;
+    pb_callback_t items;
+/* @@protoc_insertion_point(struct:protocol_CommandBatch) */
+} protocol_CommandBatch;
+
+typedef struct _protocol_CommandResponseBatch {
+    pb_callback_t sn;
+    pb_callback_t items;
+/* @@protoc_insertion_point(struct:protocol_CommandResponseBatch) */
+} protocol_CommandResponseBatch;
+
+typedef struct _protocol_SecureCommandBatch {
+    pb_callback_t signature;
+    pb_callback_t content;
+/* @@protoc_insertion_point(struct:protocol_SecureCommandBatch) */
+} protocol_SecureCommandBatch;
+
+typedef struct _protocol_Command {
+    google_protobuf_Timestamp issuedDT;
+    uint32_t commandType;
+    pb_callback_t payload;
+/* @@protoc_insertion_point(struct:protocol_Command) */
+} protocol_Command;
+
+typedef struct _protocol_CommandResponse {
+    google_protobuf_Timestamp issuedDT;
+    protocol_CommandStatus status;
+/* @@protoc_insertion_point(struct:protocol_CommandResponse) */
+} protocol_CommandResponse;
+
+/* Default values for struct fields */
+
+/* Initializer values for message structs */
+#define protocol_Command_init_default            {google_protobuf_Timestamp_init_default, 0, {{NULL}, NULL}}
+#define protocol_CommandBatch_init_default       {{{NULL}, NULL}, {{NULL}, NULL}}
+#define protocol_SecureCommandBatch_init_default {{{NULL}, NULL}, {{NULL}, NULL}}
+#define protocol_CommandResponse_init_default    {google_protobuf_Timestamp_init_default, (protocol_CommandStatus)0}
+#define protocol_CommandResponseBatch_init_default {{{NULL}, NULL}, {{NULL}, NULL}}
+#define protocol_Command_init_zero               {google_protobuf_Timestamp_init_zero, 0, {{NULL}, NULL}}
+#define protocol_CommandBatch_init_zero          {{{NULL}, NULL}, {{NULL}, NULL}}
+#define protocol_SecureCommandBatch_init_zero    {{{NULL}, NULL}, {{NULL}, NULL}}
+#define protocol_CommandResponse_init_zero       {google_protobuf_Timestamp_init_zero, (protocol_CommandStatus)0}
+#define protocol_CommandResponseBatch_init_zero  {{{NULL}, NULL}, {{NULL}, NULL}}
+
+/* Field tags (for use in manual encoding/decoding) */
+#define protocol_CommandBatch_sn_tag             1
+#define protocol_CommandBatch_items_tag          10
+#define protocol_CommandResponseBatch_sn_tag     1
+#define protocol_CommandResponseBatch_items_tag  2
+#define protocol_SecureCommandBatch_signature_tag 1
+#define protocol_SecureCommandBatch_content_tag  2
+#define protocol_Command_issuedDT_tag            1
+#define protocol_Command_commandType_tag         2
+#define protocol_Command_payload_tag             10
+#define protocol_CommandResponse_issuedDT_tag    1
+#define protocol_CommandResponse_status_tag      2
+
+/* Struct field encoding specification for nanopb */
+extern const pb_field_t protocol_Command_fields[4];
+extern const pb_field_t protocol_CommandBatch_fields[3];
+extern const pb_field_t protocol_SecureCommandBatch_fields[3];
+extern const pb_field_t protocol_CommandResponse_fields[3];
+extern const pb_field_t protocol_CommandResponseBatch_fields[3];
+
+/* Maximum encoded size of messages (where known) */
+/* protocol_Command_size depends on runtime parameters */
+/* protocol_CommandBatch_size depends on runtime parameters */
+/* protocol_SecureCommandBatch_size depends on runtime parameters */
+#define protocol_CommandResponse_size            26
+/* protocol_CommandResponseBatch_size depends on runtime parameters */
+
+/* Message IDs (where set with "msgid" option) */
+#ifdef PB_MSGID
+
+#define COMMAND_MESSAGES \
+
+
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+/* @@protoc_insertion_point(eof) */
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/eagle.pb.c	Wed Jul 12 23:10:01 2017 +0000
@@ -0,0 +1,22 @@
+/* Automatically generated nanopb constant definitions */
+/* Generated by nanopb-0.3.8 at Wed Jul 12 11:04:33 2017. */
+
+#include "eagle.pb.h"
+
+/* @@protoc_insertion_point(includes) */
+#if PB_PROTO_HEADER_VERSION != 30
+#error Regenerate this file with the current version of nanopb generator.
+#endif
+
+
+
+const pb_field_t protocol_EagleRawSample_fields[4] = {
+    PB_FIELD(  2, UENUM   , SINGULAR, STATIC  , FIRST, protocol_EagleRawSample, ValveStatusType, ValveStatusType, 0),
+    PB_FIELD(  3, BYTES   , SINGULAR, CALLBACK, OTHER, protocol_EagleRawSample, ValveStatus, ValveStatusType, 0),
+    PB_FIELD(  4, BYTES   , SINGULAR, CALLBACK, OTHER, protocol_EagleRawSample, Consumption, ValveStatus, 0),
+    PB_LAST_FIELD
+};
+
+
+
+/* @@protoc_insertion_point(eof) */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/eagle.pb.h	Wed Jul 12 23:10:01 2017 +0000
@@ -0,0 +1,68 @@
+/* Automatically generated nanopb header */
+/* Generated by nanopb-0.3.8 at Wed Jul 12 11:04:33 2017. */
+
+#ifndef PB_PROTOCOL_EAGLE_PB_H_INCLUDED
+#define PB_PROTOCOL_EAGLE_PB_H_INCLUDED
+#include <pb.h>
+
+#include "google/protobuf/timestamp.pb.h"
+
+/* @@protoc_insertion_point(includes) */
+#if PB_PROTO_HEADER_VERSION != 30
+#error Regenerate this file with the current version of nanopb generator.
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Enum definitions */
+typedef enum _protocol_EagleValveStatusType {
+    protocol_EagleValveStatusType_EagleUndefined = 0,
+    protocol_EagleValveStatusType_EagleValveStatus = 1,
+    protocol_EagleValveStatusType_EagleValveOpen = 2,
+    protocol_EagleValveStatusType_EagleValveClose = 3
+} protocol_EagleValveStatusType;
+#define _protocol_EagleValveStatusType_MIN protocol_EagleValveStatusType_EagleUndefined
+#define _protocol_EagleValveStatusType_MAX protocol_EagleValveStatusType_EagleValveClose
+#define _protocol_EagleValveStatusType_ARRAYSIZE ((protocol_EagleValveStatusType)(protocol_EagleValveStatusType_EagleValveClose+1))
+
+/* Struct definitions */
+typedef struct _protocol_EagleRawSample {
+    protocol_EagleValveStatusType ValveStatusType;
+    pb_callback_t ValveStatus;
+    pb_callback_t Consumption;
+/* @@protoc_insertion_point(struct:protocol_EagleRawSample) */
+} protocol_EagleRawSample;
+
+/* Default values for struct fields */
+
+/* Initializer values for message structs */
+#define protocol_EagleRawSample_init_default     {(protocol_EagleValveStatusType)0, {{NULL}, NULL}, {{NULL}, NULL}}
+#define protocol_EagleRawSample_init_zero        {(protocol_EagleValveStatusType)0, {{NULL}, NULL}, {{NULL}, NULL}}
+
+/* Field tags (for use in manual encoding/decoding) */
+#define protocol_EagleRawSample_ValveStatusType_tag 2
+#define protocol_EagleRawSample_ValveStatus_tag  3
+#define protocol_EagleRawSample_Consumption_tag  4
+
+/* Struct field encoding specification for nanopb */
+extern const pb_field_t protocol_EagleRawSample_fields[4];
+
+/* Maximum encoded size of messages (where known) */
+/* protocol_EagleRawSample_size depends on runtime parameters */
+
+/* Message IDs (where set with "msgid" option) */
+#ifdef PB_MSGID
+
+#define EAGLE_MESSAGES \
+
+
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+/* @@protoc_insertion_point(eof) */
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/gasQuality.pb.c	Wed Jul 12 23:10:01 2017 +0000
@@ -0,0 +1,38 @@
+/* Automatically generated nanopb constant definitions */
+/* Generated by nanopb-0.3.8 at Wed Jul 12 11:04:33 2017. */
+
+#include "gasQuality.pb.h"
+
+/* @@protoc_insertion_point(includes) */
+#if PB_PROTO_HEADER_VERSION != 30
+#error Regenerate this file with the current version of nanopb generator.
+#endif
+
+
+
+const pb_field_t protocol_GQSRawSample_fields[14] = {
+    PB_FIELD(  1, UINT32  , SINGULAR, STATIC  , FIRST, protocol_GQSRawSample, Temperature1, Temperature1, 0),
+    PB_FIELD(  2, UENUM   , SINGULAR, STATIC  , OTHER, protocol_GQSRawSample, Temperature1Err, Temperature1, 0),
+    PB_FIELD(  3, UINT32  , SINGULAR, STATIC  , OTHER, protocol_GQSRawSample, Temperature2, Temperature1Err, 0),
+    PB_FIELD(  4, UENUM   , SINGULAR, STATIC  , OTHER, protocol_GQSRawSample, Temperature2Err, Temperature2, 0),
+    PB_FIELD(  5, UINT32  , SINGULAR, STATIC  , OTHER, protocol_GQSRawSample, Pressure1, Temperature2Err, 0),
+    PB_FIELD(  6, UENUM   , SINGULAR, STATIC  , OTHER, protocol_GQSRawSample, Pressure1Err, Pressure1, 0),
+    PB_FIELD(  7, UINT32  , SINGULAR, STATIC  , OTHER, protocol_GQSRawSample, Pressure2, Pressure1Err, 0),
+    PB_FIELD(  8, UENUM   , SINGULAR, STATIC  , OTHER, protocol_GQSRawSample, Pressure2Err, Pressure2, 0),
+    PB_FIELD(  9, BYTES   , SINGULAR, CALLBACK, OTHER, protocol_GQSRawSample, MemsStatus, Pressure2Err, 0),
+    PB_FIELD( 10, UENUM   , SINGULAR, STATIC  , OTHER, protocol_GQSRawSample, MemsStatusErr, MemsStatus, 0),
+    PB_FIELD( 11, BYTES   , SINGULAR, CALLBACK, OTHER, protocol_GQSRawSample, MemsMeasurement, MemsStatusErr, 0),
+    PB_FIELD( 12, UENUM   , SINGULAR, STATIC  , OTHER, protocol_GQSRawSample, MemsMeasurementErr, MemsMeasurement, 0),
+    PB_FIELD( 15, MESSAGE , REPEATED, CALLBACK, OTHER, protocol_GQSRawSample, errors, MemsMeasurementErr, &protocol_GQSRawSample_ErrorsEntry_fields),
+    PB_LAST_FIELD
+};
+
+const pb_field_t protocol_GQSRawSample_ErrorsEntry_fields[3] = {
+    PB_FIELD(  1, UINT32  , SINGULAR, STATIC  , FIRST, protocol_GQSRawSample_ErrorsEntry, key, key, 0),
+    PB_FIELD(  2, STRING  , SINGULAR, CALLBACK, OTHER, protocol_GQSRawSample_ErrorsEntry, value, key, 0),
+    PB_LAST_FIELD
+};
+
+
+
+/* @@protoc_insertion_point(eof) */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/gasQuality.pb.h	Wed Jul 12 23:10:01 2017 +0000
@@ -0,0 +1,95 @@
+/* Automatically generated nanopb header */
+/* Generated by nanopb-0.3.8 at Wed Jul 12 11:04:33 2017. */
+
+#ifndef PB_PROTOCOL_GASQUALITY_PB_H_INCLUDED
+#define PB_PROTOCOL_GASQUALITY_PB_H_INCLUDED
+#include <pb.h>
+
+/* @@protoc_insertion_point(includes) */
+#if PB_PROTO_HEADER_VERSION != 30
+#error Regenerate this file with the current version of nanopb generator.
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Enum definitions */
+typedef enum _protocol_GQStatus {
+    protocol_GQStatus_CQSuccess = 0
+} protocol_GQStatus;
+#define _protocol_GQStatus_MIN protocol_GQStatus_CQSuccess
+#define _protocol_GQStatus_MAX protocol_GQStatus_CQSuccess
+#define _protocol_GQStatus_ARRAYSIZE ((protocol_GQStatus)(protocol_GQStatus_CQSuccess+1))
+
+/* Struct definitions */
+typedef struct _protocol_GQSRawSample {
+    uint32_t Temperature1;
+    protocol_GQStatus Temperature1Err;
+    uint32_t Temperature2;
+    protocol_GQStatus Temperature2Err;
+    uint32_t Pressure1;
+    protocol_GQStatus Pressure1Err;
+    uint32_t Pressure2;
+    protocol_GQStatus Pressure2Err;
+    pb_callback_t MemsStatus;
+    protocol_GQStatus MemsStatusErr;
+    pb_callback_t MemsMeasurement;
+    protocol_GQStatus MemsMeasurementErr;
+    pb_callback_t errors;
+/* @@protoc_insertion_point(struct:protocol_GQSRawSample) */
+} protocol_GQSRawSample;
+
+typedef struct _protocol_GQSRawSample_ErrorsEntry {
+    uint32_t key;
+    pb_callback_t value;
+/* @@protoc_insertion_point(struct:protocol_GQSRawSample_ErrorsEntry) */
+} protocol_GQSRawSample_ErrorsEntry;
+
+/* Default values for struct fields */
+
+/* Initializer values for message structs */
+#define protocol_GQSRawSample_init_default       {0, (protocol_GQStatus)0, 0, (protocol_GQStatus)0, 0, (protocol_GQStatus)0, 0, (protocol_GQStatus)0, {{NULL}, NULL}, (protocol_GQStatus)0, {{NULL}, NULL}, (protocol_GQStatus)0, {{NULL}, NULL}}
+#define protocol_GQSRawSample_ErrorsEntry_init_default {0, {{NULL}, NULL}}
+#define protocol_GQSRawSample_init_zero          {0, (protocol_GQStatus)0, 0, (protocol_GQStatus)0, 0, (protocol_GQStatus)0, 0, (protocol_GQStatus)0, {{NULL}, NULL}, (protocol_GQStatus)0, {{NULL}, NULL}, (protocol_GQStatus)0, {{NULL}, NULL}}
+#define protocol_GQSRawSample_ErrorsEntry_init_zero {0, {{NULL}, NULL}}
+
+/* Field tags (for use in manual encoding/decoding) */
+#define protocol_GQSRawSample_Temperature1_tag   1
+#define protocol_GQSRawSample_Temperature1Err_tag 2
+#define protocol_GQSRawSample_Temperature2_tag   3
+#define protocol_GQSRawSample_Temperature2Err_tag 4
+#define protocol_GQSRawSample_Pressure1_tag      5
+#define protocol_GQSRawSample_Pressure1Err_tag   6
+#define protocol_GQSRawSample_Pressure2_tag      7
+#define protocol_GQSRawSample_Pressure2Err_tag   8
+#define protocol_GQSRawSample_MemsStatus_tag     9
+#define protocol_GQSRawSample_MemsStatusErr_tag  10
+#define protocol_GQSRawSample_MemsMeasurement_tag 11
+#define protocol_GQSRawSample_MemsMeasurementErr_tag 12
+#define protocol_GQSRawSample_errors_tag         15
+#define protocol_GQSRawSample_ErrorsEntry_key_tag 1
+#define protocol_GQSRawSample_ErrorsEntry_value_tag 2
+
+/* Struct field encoding specification for nanopb */
+extern const pb_field_t protocol_GQSRawSample_fields[14];
+extern const pb_field_t protocol_GQSRawSample_ErrorsEntry_fields[3];
+
+/* Maximum encoded size of messages (where known) */
+/* protocol_GQSRawSample_size depends on runtime parameters */
+/* protocol_GQSRawSample_ErrorsEntry_size depends on runtime parameters */
+
+/* Message IDs (where set with "msgid" option) */
+#ifdef PB_MSGID
+
+#define GASQUALITY_MESSAGES \
+
+
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+/* @@protoc_insertion_point(eof) */
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/info.pb.c	Wed Jul 12 23:10:01 2017 +0000
@@ -0,0 +1,76 @@
+/* Automatically generated nanopb constant definitions */
+/* Generated by nanopb-0.3.8 at Wed Jul 12 11:04:33 2017. */
+
+#include "info.pb.h"
+
+/* @@protoc_insertion_point(includes) */
+#if PB_PROTO_HEADER_VERSION != 30
+#error Regenerate this file with the current version of nanopb generator.
+#endif
+
+
+
+const pb_field_t protocol_ISOMVersion_fields[7] = {
+    PB_FIELD(  1, STRING  , SINGULAR, CALLBACK, FIRST, protocol_ISOMVersion, buildStr, buildStr, 0),
+    PB_FIELD(  2, UINT32  , SINGULAR, STATIC  , OTHER, protocol_ISOMVersion, major, buildStr, 0),
+    PB_FIELD(  3, UINT32  , SINGULAR, STATIC  , OTHER, protocol_ISOMVersion, minor, major, 0),
+    PB_FIELD(  4, UINT32  , SINGULAR, STATIC  , OTHER, protocol_ISOMVersion, revision, minor, 0),
+    PB_FIELD(  5, UINT32  , SINGULAR, STATIC  , OTHER, protocol_ISOMVersion, build, revision, 0),
+    PB_FIELD(  6, UINT32  , SINGULAR, STATIC  , OTHER, protocol_ISOMVersion, changelist, build, 0),
+    PB_LAST_FIELD
+};
+
+const pb_field_t protocol_ErrCodeMsg_fields[3] = {
+    PB_FIELD(  1, UINT32  , SINGULAR, STATIC  , FIRST, protocol_ErrCodeMsg, code, code, 0),
+    PB_FIELD(  2, STRING  , SINGULAR, CALLBACK, OTHER, protocol_ErrCodeMsg, detail, code, 0),
+    PB_LAST_FIELD
+};
+
+const pb_field_t protocol_Info_fields[13] = {
+    PB_FIELD(  1, STRING  , SINGULAR, CALLBACK, FIRST, protocol_Info, hwPushBuildStr, hwPushBuildStr, 0),
+    PB_FIELD(  2, MESSAGE , SINGULAR, STATIC  , OTHER, protocol_Info, isomVer, hwPushBuildStr, &protocol_ISOMVersion_fields),
+    PB_FIELD(  3, STRING  , SINGULAR, CALLBACK, OTHER, protocol_Info, stmBuildStr, isomVer, 0),
+    PB_FIELD(  4, UINT32  , SINGULAR, STATIC  , OTHER, protocol_Info, batteryV, stmBuildStr, 0),
+    PB_FIELD(  5, UINT32  , SINGULAR, STATIC  , OTHER, protocol_Info, isomV, batteryV, 0),
+    PB_FIELD(  6, UINT32  , SINGULAR, STATIC  , OTHER, protocol_Info, isom33V, isomV, 0),
+    PB_FIELD(  7, UINT32  , SINGULAR, STATIC  , OTHER, protocol_Info, sw33V, isom33V, 0),
+    PB_FIELD(  8, UINT32  , SINGULAR, STATIC  , OTHER, protocol_Info, usbV, sw33V, 0),
+    PB_FIELD(  9, STRING  , SINGULAR, CALLBACK, OTHER, protocol_Info, cellIPStr, usbV, 0),
+    PB_FIELD( 10, STRING  , SINGULAR, CALLBACK, OTHER, protocol_Info, rssiStr, cellIPStr, 0),
+    PB_FIELD( 11, MESSAGE , SINGULAR, STATIC  , OTHER, protocol_Info, takenDT, rssiStr, &google_protobuf_Timestamp_fields),
+    PB_FIELD( 12, MESSAGE , REPEATED, CALLBACK, OTHER, protocol_Info, errors, takenDT, &protocol_Info_ErrorsEntry_fields),
+    PB_LAST_FIELD
+};
+
+const pb_field_t protocol_Info_ErrorsEntry_fields[3] = {
+    PB_FIELD(  1, STRING  , SINGULAR, CALLBACK, FIRST, protocol_Info_ErrorsEntry, key, key, 0),
+    PB_FIELD(  2, MESSAGE , SINGULAR, STATIC  , OTHER, protocol_Info_ErrorsEntry, value, key, &protocol_ErrCodeMsg_fields),
+    PB_LAST_FIELD
+};
+
+
+/* Check that field information fits in pb_field_t */
+#if !defined(PB_FIELD_32BIT)
+/* If you get an error here, it means that you need to define PB_FIELD_32BIT
+ * compile-time option. You can do that in pb.h or on compiler command line.
+ * 
+ * The reason you need to do this is that some of your messages contain tag
+ * numbers or field sizes that are larger than what can fit in 8 or 16 bit
+ * field descriptors.
+ */
+PB_STATIC_ASSERT((pb_membersize(protocol_Info, isomVer) < 65536 && pb_membersize(protocol_Info, takenDT) < 65536 && pb_membersize(protocol_Info_ErrorsEntry, value) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_protocol_ISOMVersion_protocol_ErrCodeMsg_protocol_Info_protocol_Info_ErrorsEntry)
+#endif
+
+#if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT)
+/* If you get an error here, it means that you need to define PB_FIELD_16BIT
+ * compile-time option. You can do that in pb.h or on compiler command line.
+ * 
+ * The reason you need to do this is that some of your messages contain tag
+ * numbers or field sizes that are larger than what can fit in the default
+ * 8 bit descriptors.
+ */
+PB_STATIC_ASSERT((pb_membersize(protocol_Info, isomVer) < 256 && pb_membersize(protocol_Info, takenDT) < 256 && pb_membersize(protocol_Info_ErrorsEntry, value) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_protocol_ISOMVersion_protocol_ErrCodeMsg_protocol_Info_protocol_Info_ErrorsEntry)
+#endif
+
+
+/* @@protoc_insertion_point(eof) */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/info.pb.h	Wed Jul 12 23:10:01 2017 +0000
@@ -0,0 +1,119 @@
+/* Automatically generated nanopb header */
+/* Generated by nanopb-0.3.8 at Wed Jul 12 11:04:33 2017. */
+
+#ifndef PB_PROTOCOL_INFO_PB_H_INCLUDED
+#define PB_PROTOCOL_INFO_PB_H_INCLUDED
+#include <pb.h>
+
+#include "google/protobuf/timestamp.pb.h"
+
+/* @@protoc_insertion_point(includes) */
+#if PB_PROTO_HEADER_VERSION != 30
+#error Regenerate this file with the current version of nanopb generator.
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Struct definitions */
+typedef struct _protocol_ErrCodeMsg {
+    uint32_t code;
+    pb_callback_t detail;
+/* @@protoc_insertion_point(struct:protocol_ErrCodeMsg) */
+} protocol_ErrCodeMsg;
+
+typedef struct _protocol_ISOMVersion {
+    pb_callback_t buildStr;
+    uint32_t major;
+    uint32_t minor;
+    uint32_t revision;
+    uint32_t build;
+    uint32_t changelist;
+/* @@protoc_insertion_point(struct:protocol_ISOMVersion) */
+} protocol_ISOMVersion;
+
+typedef struct _protocol_Info {
+    pb_callback_t hwPushBuildStr;
+    protocol_ISOMVersion isomVer;
+    pb_callback_t stmBuildStr;
+    uint32_t batteryV;
+    uint32_t isomV;
+    uint32_t isom33V;
+    uint32_t sw33V;
+    uint32_t usbV;
+    pb_callback_t cellIPStr;
+    pb_callback_t rssiStr;
+    google_protobuf_Timestamp takenDT;
+    pb_callback_t errors;
+/* @@protoc_insertion_point(struct:protocol_Info) */
+} protocol_Info;
+
+typedef struct _protocol_Info_ErrorsEntry {
+    pb_callback_t key;
+    protocol_ErrCodeMsg value;
+/* @@protoc_insertion_point(struct:protocol_Info_ErrorsEntry) */
+} protocol_Info_ErrorsEntry;
+
+/* Default values for struct fields */
+
+/* Initializer values for message structs */
+#define protocol_ISOMVersion_init_default        {{{NULL}, NULL}, 0, 0, 0, 0, 0}
+#define protocol_ErrCodeMsg_init_default         {0, {{NULL}, NULL}}
+#define protocol_Info_init_default               {{{NULL}, NULL}, protocol_ISOMVersion_init_default, {{NULL}, NULL}, 0, 0, 0, 0, 0, {{NULL}, NULL}, {{NULL}, NULL}, google_protobuf_Timestamp_init_default, {{NULL}, NULL}}
+#define protocol_Info_ErrorsEntry_init_default   {{{NULL}, NULL}, protocol_ErrCodeMsg_init_default}
+#define protocol_ISOMVersion_init_zero           {{{NULL}, NULL}, 0, 0, 0, 0, 0}
+#define protocol_ErrCodeMsg_init_zero            {0, {{NULL}, NULL}}
+#define protocol_Info_init_zero                  {{{NULL}, NULL}, protocol_ISOMVersion_init_zero, {{NULL}, NULL}, 0, 0, 0, 0, 0, {{NULL}, NULL}, {{NULL}, NULL}, google_protobuf_Timestamp_init_zero, {{NULL}, NULL}}
+#define protocol_Info_ErrorsEntry_init_zero      {{{NULL}, NULL}, protocol_ErrCodeMsg_init_zero}
+
+/* Field tags (for use in manual encoding/decoding) */
+#define protocol_ErrCodeMsg_code_tag             1
+#define protocol_ErrCodeMsg_detail_tag           2
+#define protocol_ISOMVersion_buildStr_tag        1
+#define protocol_ISOMVersion_major_tag           2
+#define protocol_ISOMVersion_minor_tag           3
+#define protocol_ISOMVersion_revision_tag        4
+#define protocol_ISOMVersion_build_tag           5
+#define protocol_ISOMVersion_changelist_tag      6
+#define protocol_Info_hwPushBuildStr_tag         1
+#define protocol_Info_isomVer_tag                2
+#define protocol_Info_stmBuildStr_tag            3
+#define protocol_Info_batteryV_tag               4
+#define protocol_Info_isomV_tag                  5
+#define protocol_Info_isom33V_tag                6
+#define protocol_Info_sw33V_tag                  7
+#define protocol_Info_usbV_tag                   8
+#define protocol_Info_cellIPStr_tag              9
+#define protocol_Info_rssiStr_tag                10
+#define protocol_Info_takenDT_tag                11
+#define protocol_Info_errors_tag                 12
+#define protocol_Info_ErrorsEntry_key_tag        1
+#define protocol_Info_ErrorsEntry_value_tag      2
+
+/* Struct field encoding specification for nanopb */
+extern const pb_field_t protocol_ISOMVersion_fields[7];
+extern const pb_field_t protocol_ErrCodeMsg_fields[3];
+extern const pb_field_t protocol_Info_fields[13];
+extern const pb_field_t protocol_Info_ErrorsEntry_fields[3];
+
+/* Maximum encoded size of messages (where known) */
+/* protocol_ISOMVersion_size depends on runtime parameters */
+/* protocol_ErrCodeMsg_size depends on runtime parameters */
+/* protocol_Info_size depends on runtime parameters */
+/* protocol_Info_ErrorsEntry_size depends on runtime parameters */
+
+/* Message IDs (where set with "msgid" option) */
+#ifdef PB_MSGID
+
+#define INFO_MESSAGES \
+
+
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+/* @@protoc_insertion_point(eof) */
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/sample.pb.c	Wed Jul 12 23:10:01 2017 +0000
@@ -0,0 +1,59 @@
+/* Automatically generated nanopb constant definitions */
+/* Generated by nanopb-0.3.8 at Wed Jul 12 11:04:33 2017. */
+
+#include "sample.pb.h"
+
+/* @@protoc_insertion_point(includes) */
+#if PB_PROTO_HEADER_VERSION != 30
+#error Regenerate this file with the current version of nanopb generator.
+#endif
+
+
+
+const pb_field_t protocol_Sample_fields[4] = {
+    PB_FIELD(  1, MESSAGE , SINGULAR, STATIC  , FIRST, protocol_Sample, takenDT, takenDT, &google_protobuf_Timestamp_fields),
+    PB_FIELD(  2, UINT32  , SINGULAR, STATIC  , OTHER, protocol_Sample, alarm, takenDT, 0),
+    PB_FIELD( 10, BYTES   , SINGULAR, CALLBACK, OTHER, protocol_Sample, Payload, alarm, 0),
+    PB_LAST_FIELD
+};
+
+const pb_field_t protocol_SampleBatch_fields[5] = {
+    PB_FIELD(  1, STRING  , SINGULAR, CALLBACK, FIRST, protocol_SampleBatch, sn, sn, 0),
+    PB_FIELD(  2, UINT32  , SINGULAR, STATIC  , OTHER, protocol_SampleBatch, dataType, sn, 0),
+    PB_FIELD(  3, UINT32  , SINGULAR, STATIC  , OTHER, protocol_SampleBatch, intervalLenghtInSeconds, dataType, 0),
+    PB_FIELD( 10, MESSAGE , REPEATED, CALLBACK, OTHER, protocol_SampleBatch, items, intervalLenghtInSeconds, &protocol_Sample_fields),
+    PB_LAST_FIELD
+};
+
+const pb_field_t protocol_SecureSampleBatch_fields[3] = {
+    PB_FIELD(  1, BYTES   , SINGULAR, CALLBACK, FIRST, protocol_SecureSampleBatch, signature, signature, 0),
+    PB_FIELD(  2, BYTES   , SINGULAR, CALLBACK, OTHER, protocol_SecureSampleBatch, content, signature, 0),
+    PB_LAST_FIELD
+};
+
+
+/* Check that field information fits in pb_field_t */
+#if !defined(PB_FIELD_32BIT)
+/* If you get an error here, it means that you need to define PB_FIELD_32BIT
+ * compile-time option. You can do that in pb.h or on compiler command line.
+ * 
+ * The reason you need to do this is that some of your messages contain tag
+ * numbers or field sizes that are larger than what can fit in 8 or 16 bit
+ * field descriptors.
+ */
+PB_STATIC_ASSERT((pb_membersize(protocol_Sample, takenDT) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_protocol_Sample_protocol_SampleBatch_protocol_SecureSampleBatch)
+#endif
+
+#if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT)
+/* If you get an error here, it means that you need to define PB_FIELD_16BIT
+ * compile-time option. You can do that in pb.h or on compiler command line.
+ * 
+ * The reason you need to do this is that some of your messages contain tag
+ * numbers or field sizes that are larger than what can fit in the default
+ * 8 bit descriptors.
+ */
+PB_STATIC_ASSERT((pb_membersize(protocol_Sample, takenDT) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_protocol_Sample_protocol_SampleBatch_protocol_SecureSampleBatch)
+#endif
+
+
+/* @@protoc_insertion_point(eof) */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/sample.pb.h	Wed Jul 12 23:10:01 2017 +0000
@@ -0,0 +1,85 @@
+/* Automatically generated nanopb header */
+/* Generated by nanopb-0.3.8 at Wed Jul 12 11:04:33 2017. */
+
+#ifndef PB_PROTOCOL_SAMPLE_PB_H_INCLUDED
+#define PB_PROTOCOL_SAMPLE_PB_H_INCLUDED
+#include <pb.h>
+
+#include "google/protobuf/timestamp.pb.h"
+
+/* @@protoc_insertion_point(includes) */
+#if PB_PROTO_HEADER_VERSION != 30
+#error Regenerate this file with the current version of nanopb generator.
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Struct definitions */
+typedef struct _protocol_SecureSampleBatch {
+    pb_callback_t signature;
+    pb_callback_t content;
+/* @@protoc_insertion_point(struct:protocol_SecureSampleBatch) */
+} protocol_SecureSampleBatch;
+
+typedef struct _protocol_Sample {
+    google_protobuf_Timestamp takenDT;
+    uint32_t alarm;
+    pb_callback_t Payload;
+/* @@protoc_insertion_point(struct:protocol_Sample) */
+} protocol_Sample;
+
+typedef struct _protocol_SampleBatch {
+    pb_callback_t sn;
+    uint32_t dataType;
+    uint32_t intervalLenghtInSeconds;
+    pb_callback_t items;
+/* @@protoc_insertion_point(struct:protocol_SampleBatch) */
+} protocol_SampleBatch;
+
+/* Default values for struct fields */
+
+/* Initializer values for message structs */
+#define protocol_Sample_init_default             {google_protobuf_Timestamp_init_default, 0, {{NULL}, NULL}}
+#define protocol_SampleBatch_init_default        {{{NULL}, NULL}, 0, 0, {{NULL}, NULL}}
+#define protocol_SecureSampleBatch_init_default  {{{NULL}, NULL}, {{NULL}, NULL}}
+#define protocol_Sample_init_zero                {google_protobuf_Timestamp_init_zero, 0, {{NULL}, NULL}}
+#define protocol_SampleBatch_init_zero           {{{NULL}, NULL}, 0, 0, {{NULL}, NULL}}
+#define protocol_SecureSampleBatch_init_zero     {{{NULL}, NULL}, {{NULL}, NULL}}
+
+/* Field tags (for use in manual encoding/decoding) */
+#define protocol_SecureSampleBatch_signature_tag 1
+#define protocol_SecureSampleBatch_content_tag   2
+#define protocol_Sample_takenDT_tag              1
+#define protocol_Sample_alarm_tag                2
+#define protocol_Sample_Payload_tag              10
+#define protocol_SampleBatch_sn_tag              1
+#define protocol_SampleBatch_dataType_tag        2
+#define protocol_SampleBatch_intervalLenghtInSeconds_tag 3
+#define protocol_SampleBatch_items_tag           10
+
+/* Struct field encoding specification for nanopb */
+extern const pb_field_t protocol_Sample_fields[4];
+extern const pb_field_t protocol_SampleBatch_fields[5];
+extern const pb_field_t protocol_SecureSampleBatch_fields[3];
+
+/* Maximum encoded size of messages (where known) */
+/* protocol_Sample_size depends on runtime parameters */
+/* protocol_SampleBatch_size depends on runtime parameters */
+/* protocol_SecureSampleBatch_size depends on runtime parameters */
+
+/* Message IDs (where set with "msgid" option) */
+#ifdef PB_MSGID
+
+#define SAMPLE_MESSAGES \
+
+
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+/* @@protoc_insertion_point(eof) */
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/stm.pb.c	Wed Jul 12 23:10:01 2017 +0000
@@ -0,0 +1,26 @@
+/* Automatically generated nanopb constant definitions */
+/* Generated by nanopb-0.3.8 at Wed Jul 12 11:04:33 2017. */
+
+#include "stm.pb.h"
+
+/* @@protoc_insertion_point(includes) */
+#if PB_PROTO_HEADER_VERSION != 30
+#error Regenerate this file with the current version of nanopb generator.
+#endif
+
+
+
+const pb_field_t protocol_StmAdcSchedule_fields[9] = {
+    PB_FIELD(  1, UINT32  , SINGULAR, STATIC  , FIRST, protocol_StmAdcSchedule, ReadingStepSizeSecs, ReadingStepSizeSecs, 0),
+    PB_FIELD(  2, UINT32  , REPEATED, CALLBACK, OTHER, protocol_StmAdcSchedule, LoThreshold, ReadingStepSizeSecs, 0),
+    PB_FIELD(  3, UINT32  , REPEATED, CALLBACK, OTHER, protocol_StmAdcSchedule, HiThreshold, LoThreshold, 0),
+    PB_FIELD(  4, UINT32  , REPEATED, CALLBACK, OTHER, protocol_StmAdcSchedule, Deadband, HiThreshold, 0),
+    PB_FIELD(  5, UINT32  , SINGULAR, STATIC  , OTHER, protocol_StmAdcSchedule, RecPeriod, Deadband, 0),
+    PB_FIELD(  6, UINT32  , SINGULAR, STATIC  , OTHER, protocol_StmAdcSchedule, LoDelayd, RecPeriod, 0),
+    PB_FIELD(  7, UINT32  , SINGULAR, STATIC  , OTHER, protocol_StmAdcSchedule, HiDelayd, LoDelayd, 0),
+    PB_FIELD(  8, UINT32  , SINGULAR, STATIC  , OTHER, protocol_StmAdcSchedule, FlagDelayd, HiDelayd, 0),
+    PB_LAST_FIELD
+};
+
+
+/* @@protoc_insertion_point(eof) */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/stm.pb.h	Wed Jul 12 23:10:01 2017 +0000
@@ -0,0 +1,67 @@
+/* Automatically generated nanopb header */
+/* Generated by nanopb-0.3.8 at Wed Jul 12 11:04:33 2017. */
+
+#ifndef PB_PROTOCOL_STM_PB_H_INCLUDED
+#define PB_PROTOCOL_STM_PB_H_INCLUDED
+#include <pb.h>
+
+#include "google/protobuf/timestamp.pb.h"
+
+/* @@protoc_insertion_point(includes) */
+#if PB_PROTO_HEADER_VERSION != 30
+#error Regenerate this file with the current version of nanopb generator.
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Struct definitions */
+typedef struct _protocol_StmAdcSchedule {
+    uint32_t ReadingStepSizeSecs;
+    pb_callback_t LoThreshold;
+    pb_callback_t HiThreshold;
+    pb_callback_t Deadband;
+    uint32_t RecPeriod;
+    uint32_t LoDelayd;
+    uint32_t HiDelayd;
+    uint32_t FlagDelayd;
+/* @@protoc_insertion_point(struct:protocol_StmAdcSchedule) */
+} protocol_StmAdcSchedule;
+
+/* Default values for struct fields */
+
+/* Initializer values for message structs */
+#define protocol_StmAdcSchedule_init_default     {0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, 0, 0}
+#define protocol_StmAdcSchedule_init_zero        {0, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, 0, 0, 0, 0}
+
+/* Field tags (for use in manual encoding/decoding) */
+#define protocol_StmAdcSchedule_ReadingStepSizeSecs_tag 1
+#define protocol_StmAdcSchedule_LoThreshold_tag  2
+#define protocol_StmAdcSchedule_HiThreshold_tag  3
+#define protocol_StmAdcSchedule_Deadband_tag     4
+#define protocol_StmAdcSchedule_RecPeriod_tag    5
+#define protocol_StmAdcSchedule_LoDelayd_tag     6
+#define protocol_StmAdcSchedule_HiDelayd_tag     7
+#define protocol_StmAdcSchedule_FlagDelayd_tag   8
+
+/* Struct field encoding specification for nanopb */
+extern const pb_field_t protocol_StmAdcSchedule_fields[9];
+
+/* Maximum encoded size of messages (where known) */
+/* protocol_StmAdcSchedule_size depends on runtime parameters */
+
+/* Message IDs (where set with "msgid" option) */
+#ifdef PB_MSGID
+
+#define STM_MESSAGES \
+
+
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+/* @@protoc_insertion_point(eof) */
+
+#endif