// NOLINT: This file starts with a BOM since it contain non-ASCII characters
// generated from rosidl_generator_c/resource/idl__struct.h.em
// with input from g29_msg:msg/G29Msg.idl
// generated code does not contain a copyright notice

#ifndef G29_MSG__MSG__DETAIL__G29_MSG__STRUCT_H_
#define G29_MSG__MSG__DETAIL__G29_MSG__STRUCT_H_

#ifdef __cplusplus
extern "C"
{
#endif

#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>


// Constants defined in the message

/// Struct defined in msg/G29Msg in the package g29_msg.
/**
  * G29Msg.msg
 */
typedef struct g29_msg__msg__G29Msg
{
  /// 心跳信号，用于检测连接状态
  int32_t heartbeat;
  /// 轴数据，包含方向盘、离合、油门、刹车和方向键的状态
  /// 方向盘轴 (范围：-32767 到 32767) (逆时针为负，逆时针终值为-32767，顺时针终值为32767)
  int32_t axis0;
  /// 离合轴 (范围：-32767 到 32767) (踩到底为-32767，正常抬起为32767）
  int32_t axis1;
  /// 油门轴 (范围：-32767 到 32767) (踩到底为-32767，正常抬起为32767）
  int32_t axis2;
  /// 刹车轴 (范围：-32767 到 32767) (踩到底为-32767，正常抬起为32767）)
  int32_t axis3;
  /// 方向键左 / 右 (左键按下为 -32767，右键按下为 32767， 否则为 0)
  int32_t axis4;
  /// 方向键上 / 下 (上键按下为 -32767，下键按下为 32767， 否则为 0)
  int32_t axis5;
  /// 按钮状态，0 为未按下，1 为按下
  /// X 键
  bool button0;
  /// 正方形 键
  bool button1;
  /// O 键
  bool button2;
  /// 三角 键
  bool button3;
  /// 右拨片
  bool button4;
  /// 左拨片
  bool button5;
  /// R2 键
  bool button6;
  /// L2 键
  bool button7;
  /// 三条竖线的发光键
  bool button8;
  /// 三条横线的键
  bool button9;
  /// R3 键
  bool button10;
  /// L3 键
  bool button11;
  /// 一档
  bool button12;
  /// 二挡
  bool button13;
  /// 三挡
  bool button14;
  /// 四挡
  bool button15;
  /// 五档
  bool button16;
  /// 六档
  bool button17;
  /// 按下去倒挡
  bool button18;
  /// + 键
  bool button19;
  /// - 键
  bool button20;
  /// 红色齿轮顺时针
  bool button21;
  /// 红色齿轮逆时针
  bool button22;
  /// 红色齿轮中心的箭头
  bool button23;
  /// 帆船标志键
  bool button24;
} g29_msg__msg__G29Msg;

// Struct for a sequence of g29_msg__msg__G29Msg.
typedef struct g29_msg__msg__G29Msg__Sequence
{
  g29_msg__msg__G29Msg * data;
  /// The number of valid items in data
  size_t size;
  /// The number of allocated items in data
  size_t capacity;
} g29_msg__msg__G29Msg__Sequence;

#ifdef __cplusplus
}
#endif

#endif  // G29_MSG__MSG__DETAIL__G29_MSG__STRUCT_H_
