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

#ifndef PB_BSP_GV_PB_H_INCLUDED
#define PB_BSP_GV_PB_H_INCLUDED
#include "pb.h"
#include "msp_MK32.pb.h"
#include "msp_Motor.pb.h"
#include "msp_DH_CAN_Remote.pb.h"
#include "msp_MPU6050.pb.h"
#include "msp_ZQ_MotorParameters.pb.h"
#include "msp_TL720D.pb.h"
#include "bsp_Error.pb.h"
#include "bsp_LazorData.pb.h"
#include "bsp_DAM.pb.h"
#include "bsp_IO.pb.h"
#include "msp_LD150_I.pb.h"
#include "msp_MFOG40_Gyroscope.pb.h"
#include "bsp_PV.pb.h"

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

/* Struct definitions */
typedef struct _GV_struct_define { /* 洗舱项目 */
    bool has_LeftFrontMotor;
    MotorParameters LeftFrontMotor;
    bool has_LeftBackMotor;
    MotorParameters LeftBackMotor;
    bool has_RightBackMotor;
    MotorParameters RightBackMotor;
    bool has_RightFrontMotor;
    MotorParameters RightFrontMotor;
    bool has_SwingMotor;
    MotorParameters SwingMotor;
    bool has_TiltMotor;
    MotorParameters TiltMotor;
    bool has_MK32_Key;
    SP_MSP_MK32_Button MK32_Key;
    int32_t Move_Speed;
    bool has_SystemErrorData;
    ErrorData SystemErrorData;
    bool has_TL720DParameters;
    MSP_TL720DParameters TL720DParameters;
    bool has_LD150Parameters;
    LD150_struct_define LD150Parameters;
    bool has_Mfog40_gyro;
    MFOG40_Gyro_struct_define Mfog40_gyro;
    int32_t Servo_Speed_1;
    int32_t Servo_Speed_2;
    int32_t Servo_Speed_3;
    int32_t Servo_Speed_4;
    int32_t Servo_Power_1;
    int32_t Servo_Power_2;
    int32_t Servo_Power_3;
    int32_t Servo_Power_4;
    int32_t Steering_Angle_3;
    int32_t Steering_Angle_4;
    int32_t Steering_Real_Angle_3;
    int32_t Steering_Real_Angle_4;
    bool has_PV;
    PV_struct_define PV; /* 用户配置数据 */
} GV_struct_define;


#ifdef __cplusplus
extern "C" {
#endif

/* Initializer values for message structs */
#define GV_struct_define_init_default            {false, MotorParameters_init_default, false, MotorParameters_init_default, false, MotorParameters_init_default, false, MotorParameters_init_default, false, MotorParameters_init_default, false, MotorParameters_init_default, false, SP_MSP_MK32_Button_init_default, 0, false, ErrorData_init_default, false, MSP_TL720DParameters_init_default, false, LD150_struct_define_init_default, false, MFOG40_Gyro_struct_define_init_default, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, false, PV_struct_define_init_default}
#define GV_struct_define_init_zero               {false, MotorParameters_init_zero, false, MotorParameters_init_zero, false, MotorParameters_init_zero, false, MotorParameters_init_zero, false, MotorParameters_init_zero, false, MotorParameters_init_zero, false, SP_MSP_MK32_Button_init_zero, 0, false, ErrorData_init_zero, false, MSP_TL720DParameters_init_zero, false, LD150_struct_define_init_zero, false, MFOG40_Gyro_struct_define_init_zero, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, false, PV_struct_define_init_zero}

/* Field tags (for use in manual encoding/decoding) */
#define GV_struct_define_LeftFrontMotor_tag      1
#define GV_struct_define_LeftBackMotor_tag       2
#define GV_struct_define_RightBackMotor_tag      3
#define GV_struct_define_RightFrontMotor_tag     4
#define GV_struct_define_SwingMotor_tag          5
#define GV_struct_define_TiltMotor_tag           6
#define GV_struct_define_MK32_Key_tag            7
#define GV_struct_define_Move_Speed_tag          8
#define GV_struct_define_SystemErrorData_tag     10
#define GV_struct_define_TL720DParameters_tag    11
#define GV_struct_define_LD150Parameters_tag     12
#define GV_struct_define_Mfog40_gyro_tag         13
#define GV_struct_define_Servo_Speed_1_tag       14
#define GV_struct_define_Servo_Speed_2_tag       15
#define GV_struct_define_Servo_Speed_3_tag       16
#define GV_struct_define_Servo_Speed_4_tag       17
#define GV_struct_define_Servo_Power_1_tag       18
#define GV_struct_define_Servo_Power_2_tag       19
#define GV_struct_define_Servo_Power_3_tag       20
#define GV_struct_define_Servo_Power_4_tag       21
#define GV_struct_define_Steering_Angle_3_tag    22
#define GV_struct_define_Steering_Angle_4_tag    23
#define GV_struct_define_Steering_Real_Angle_3_tag 24
#define GV_struct_define_Steering_Real_Angle_4_tag 25
#define GV_struct_define_PV_tag                  26

/* Struct field encoding specification for nanopb */
#define GV_struct_define_FIELDLIST(X, a) \
X(a, STATIC,   OPTIONAL, MESSAGE,  LeftFrontMotor,    1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  LeftBackMotor,     2) \
X(a, STATIC,   OPTIONAL, MESSAGE,  RightBackMotor,    3) \
X(a, STATIC,   OPTIONAL, MESSAGE,  RightFrontMotor,   4) \
X(a, STATIC,   OPTIONAL, MESSAGE,  SwingMotor,        5) \
X(a, STATIC,   OPTIONAL, MESSAGE,  TiltMotor,         6) \
X(a, STATIC,   OPTIONAL, MESSAGE,  MK32_Key,          7) \
X(a, STATIC,   SINGULAR, INT32,    Move_Speed,        8) \
X(a, STATIC,   OPTIONAL, MESSAGE,  SystemErrorData,  10) \
X(a, STATIC,   OPTIONAL, MESSAGE,  TL720DParameters,  11) \
X(a, STATIC,   OPTIONAL, MESSAGE,  LD150Parameters,  12) \
X(a, STATIC,   OPTIONAL, MESSAGE,  Mfog40_gyro,      13) \
X(a, STATIC,   SINGULAR, INT32,    Servo_Speed_1,    14) \
X(a, STATIC,   SINGULAR, INT32,    Servo_Speed_2,    15) \
X(a, STATIC,   SINGULAR, INT32,    Servo_Speed_3,    16) \
X(a, STATIC,   SINGULAR, INT32,    Servo_Speed_4,    17) \
X(a, STATIC,   SINGULAR, INT32,    Servo_Power_1,    18) \
X(a, STATIC,   SINGULAR, INT32,    Servo_Power_2,    19) \
X(a, STATIC,   SINGULAR, INT32,    Servo_Power_3,    20) \
X(a, STATIC,   SINGULAR, INT32,    Servo_Power_4,    21) \
X(a, STATIC,   SINGULAR, INT32,    Steering_Angle_3,  22) \
X(a, STATIC,   SINGULAR, INT32,    Steering_Angle_4,  23) \
X(a, STATIC,   SINGULAR, INT32,    Steering_Real_Angle_3,  24) \
X(a, STATIC,   SINGULAR, INT32,    Steering_Real_Angle_4,  25) \
X(a, STATIC,   OPTIONAL, MESSAGE,  PV,               26)
#define GV_struct_define_CALLBACK NULL
#define GV_struct_define_DEFAULT NULL
#define GV_struct_define_LeftFrontMotor_MSGTYPE MotorParameters
#define GV_struct_define_LeftBackMotor_MSGTYPE MotorParameters
#define GV_struct_define_RightBackMotor_MSGTYPE MotorParameters
#define GV_struct_define_RightFrontMotor_MSGTYPE MotorParameters
#define GV_struct_define_SwingMotor_MSGTYPE MotorParameters
#define GV_struct_define_TiltMotor_MSGTYPE MotorParameters
#define GV_struct_define_MK32_Key_MSGTYPE SP_MSP_MK32_Button
#define GV_struct_define_SystemErrorData_MSGTYPE ErrorData
#define GV_struct_define_TL720DParameters_MSGTYPE MSP_TL720DParameters
#define GV_struct_define_LD150Parameters_MSGTYPE LD150_struct_define
#define GV_struct_define_Mfog40_gyro_MSGTYPE MFOG40_Gyro_struct_define
#define GV_struct_define_PV_MSGTYPE PV_struct_define

extern const pb_msgdesc_t GV_struct_define_msg;

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

/* Maximum encoded size of messages (where known) */
#define BSP_GV_PB_H_MAX_SIZE                     GV_struct_define_size
#define GV_struct_define_size                    1685

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

#endif
