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

#ifndef PB_ROBOT_DATA_PB_H_INCLUDED
#define PB_ROBOT_DATA_PB_H_INCLUDED
#include "BSP/pb.h"

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

/* Enum definitions */
typedef enum _OperationMode {
    OperationMode_MANUAL = 0,
    OperationMode_NO_OPERATION = 1,
    OperationMode_AUTO_OPERATION = 2
} OperationMode;

typedef enum _CamearState {
    CamearState_ON_LINE = 0,
    CamearState_OFF_LINE = 1
} CamearState;

typedef enum _WeldState {
    WeldState_WeldOK = 0,
    WeldState_WeldNOK = 1
} WeldState;

/* Struct definitions */
typedef struct _DataTrans {
    OperationMode Operation_Mode;
    int32_t Distance;
    int32_t Bat_SOC;
    CamearState Cam1State;
    CamearState Cam2State;
    WeldState WeldStateInstance;
    pb_byte_t Buff_Data[50]; /* 每个汉字两个字节，18个字 */
} DataTrans;

typedef struct _StateIndexNCArray {
    int32_t State_Index_U;
    int32_t State_Index_U_Elapse;
    int32_t State_Index_N;
    int32_t State_Index_N_Elapse;
    int32_t NC_ARRAY_u8_0;
    int32_t NC_ARRAY_u8_01;
    int32_t NC_ARRAY_u8_1;
    int32_t NC_ARRAY_u8_11;
    int32_t NC_ARRAY_u8_2;
} StateIndexNCArray;


#ifdef __cplusplus
extern "C" {
#endif

/* Helper constants for enums */
#define _OperationMode_MIN OperationMode_MANUAL
#define _OperationMode_MAX OperationMode_AUTO_OPERATION
#define _OperationMode_ARRAYSIZE ((OperationMode)(OperationMode_AUTO_OPERATION+1))

#define _CamearState_MIN CamearState_ON_LINE
#define _CamearState_MAX CamearState_OFF_LINE
#define _CamearState_ARRAYSIZE ((CamearState)(CamearState_OFF_LINE+1))

#define _WeldState_MIN WeldState_WeldOK
#define _WeldState_MAX WeldState_WeldNOK
#define _WeldState_ARRAYSIZE ((WeldState)(WeldState_WeldNOK+1))

#define DataTrans_Operation_Mode_ENUMTYPE OperationMode
#define DataTrans_Cam1State_ENUMTYPE CamearState
#define DataTrans_Cam2State_ENUMTYPE CamearState
#define DataTrans_WeldStateInstance_ENUMTYPE WeldState



/* Initializer values for message structs */
#define DataTrans_init_default                   {_OperationMode_MIN, 0, 0, _CamearState_MIN, _CamearState_MIN, _WeldState_MIN, {0}}
#define StateIndexNCArray_init_default           {0, 0, 0, 0, 0, 0, 0, 0, 0}
#define DataTrans_init_zero                      {_OperationMode_MIN, 0, 0, _CamearState_MIN, _CamearState_MIN, _WeldState_MIN, {0}}
#define StateIndexNCArray_init_zero              {0, 0, 0, 0, 0, 0, 0, 0, 0}

/* Field tags (for use in manual encoding/decoding) */
#define DataTrans_Operation_Mode_tag             1
#define DataTrans_Distance_tag                   2
#define DataTrans_Bat_SOC_tag                    3
#define DataTrans_Cam1State_tag                  4
#define DataTrans_Cam2State_tag                  5
#define DataTrans_WeldStateInstance_tag          6
#define DataTrans_Buff_Data_tag                  7
#define StateIndexNCArray_State_Index_U_tag      1
#define StateIndexNCArray_State_Index_U_Elapse_tag 2
#define StateIndexNCArray_State_Index_N_tag      3
#define StateIndexNCArray_State_Index_N_Elapse_tag 4
#define StateIndexNCArray_NC_ARRAY_u8_0_tag      5
#define StateIndexNCArray_NC_ARRAY_u8_01_tag     6
#define StateIndexNCArray_NC_ARRAY_u8_1_tag      7
#define StateIndexNCArray_NC_ARRAY_u8_11_tag     8
#define StateIndexNCArray_NC_ARRAY_u8_2_tag      9

/* Struct field encoding specification for nanopb */
#define DataTrans_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UENUM,    Operation_Mode,    1) \
X(a, STATIC,   SINGULAR, INT32,    Distance,          2) \
X(a, STATIC,   SINGULAR, INT32,    Bat_SOC,           3) \
X(a, STATIC,   SINGULAR, UENUM,    Cam1State,         4) \
X(a, STATIC,   SINGULAR, UENUM,    Cam2State,         5) \
X(a, STATIC,   SINGULAR, UENUM,    WeldStateInstance,   6) \
X(a, STATIC,   SINGULAR, FIXED_LENGTH_BYTES, Buff_Data,         7)
#define DataTrans_CALLBACK NULL
#define DataTrans_DEFAULT NULL

#define StateIndexNCArray_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, INT32,    State_Index_U,     1) \
X(a, STATIC,   SINGULAR, INT32,    State_Index_U_Elapse,   2) \
X(a, STATIC,   SINGULAR, INT32,    State_Index_N,     3) \
X(a, STATIC,   SINGULAR, INT32,    State_Index_N_Elapse,   4) \
X(a, STATIC,   SINGULAR, INT32,    NC_ARRAY_u8_0,     5) \
X(a, STATIC,   SINGULAR, INT32,    NC_ARRAY_u8_01,    6) \
X(a, STATIC,   SINGULAR, INT32,    NC_ARRAY_u8_1,     7) \
X(a, STATIC,   SINGULAR, INT32,    NC_ARRAY_u8_11,    8) \
X(a, STATIC,   SINGULAR, INT32,    NC_ARRAY_u8_2,     9)
#define StateIndexNCArray_CALLBACK NULL
#define StateIndexNCArray_DEFAULT NULL

extern const pb_msgdesc_t DataTrans_msg;
extern const pb_msgdesc_t StateIndexNCArray_msg;

/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define DataTrans_fields &DataTrans_msg
#define StateIndexNCArray_fields &StateIndexNCArray_msg

/* Maximum encoded size of messages (where known) */
#define DataTrans_size                           82
#define ROBOT_DATA_PB_H_MAX_SIZE                 StateIndexNCArray_size
#define StateIndexNCArray_size                   99

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

#endif
