将各类库静态化
This commit is contained in:
parent
8e04862c86
commit
dea3f23e52
@ -6,26 +6,27 @@
|
||||
#include <NeoHWSerial.h>
|
||||
#endif
|
||||
|
||||
Move::Move()
|
||||
{
|
||||
global_speed_rate = DEFAULT_GLOBAL_SPEED_RATE;
|
||||
current_direction = STOP;
|
||||
current_speed_rate = 0.0;
|
||||
}
|
||||
|
||||
//静态变量
|
||||
float Move::global_speed_rate = DEFAULT_GLOBAL_SPEED_RATE; //全局速度比率
|
||||
uint8_t Move::current_direction = STOP; //当前运动状态
|
||||
float Move::current_speed_rate = 0.0; //当前运动速度比率
|
||||
float Move::current_turn_speed_rate; //当前转向时一侧减速的比率
|
||||
|
||||
|
||||
Move::Move() {}
|
||||
|
||||
|
||||
Move::Move(float global_speed_rate)
|
||||
{
|
||||
Move();
|
||||
|
||||
this->global_speed_rate = global_speed_rate;
|
||||
Move::global_speed_rate = global_speed_rate;
|
||||
}
|
||||
|
||||
|
||||
//设置全局速度比率
|
||||
void Move::SetGlobalSpeedRate(float global_speed_rate)
|
||||
{
|
||||
this->global_speed_rate = global_speed_rate;
|
||||
Move::global_speed_rate = global_speed_rate;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -55,29 +55,29 @@ public:
|
||||
Move();
|
||||
Move(float global_speed_rate);
|
||||
|
||||
void SetGlobalSpeedRate(float global_speed_rate); //设置全局速度比率
|
||||
static void SetGlobalSpeedRate(float global_speed_rate); //设置全局速度比率
|
||||
|
||||
uint8_t GetCurrentMove(void); //获取当前运动方向
|
||||
float GetCurrentSpeedRate(void); //获取当前运动速度比率
|
||||
float GetCurrentTurnSpeedRate(void); //获取当前转向时一侧减速的比率
|
||||
static uint8_t GetCurrentMove(void); //获取当前运动方向
|
||||
static float GetCurrentSpeedRate(void); //获取当前运动速度比率
|
||||
static float GetCurrentTurnSpeedRate(void); //获取当前转向时一侧减速的比率
|
||||
|
||||
void Wheel(uint8_t wheel, uint8_t rotation, float speed_rate = 1.0); //控制某个轮子转动
|
||||
static void Wheel(uint8_t wheel, uint8_t rotation, float speed_rate = 1.0); //控制某个轮子转动
|
||||
|
||||
void Forward(float speed_rate = 1.0); //前进
|
||||
void Backward(float speed_rate = 1.0); //后退
|
||||
void ForLeftward(float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向前左转
|
||||
void ForRightward(float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向前右转
|
||||
void BackLeftward(float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向后左转
|
||||
void BackRightward(float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向后右转
|
||||
void Stop(void); //制动
|
||||
static void Forward(float speed_rate = 1.0); //前进
|
||||
static void Backward(float speed_rate = 1.0); //后退
|
||||
static void ForLeftward(float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向前左转
|
||||
static void ForRightward(float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向前右转
|
||||
static void BackLeftward(float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向后左转
|
||||
static void BackRightward(float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向后右转
|
||||
static void Stop(void); //制动
|
||||
|
||||
void MoveDirection(uint8_t direction, float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向某方向运动
|
||||
static void MoveDirection(uint8_t direction, float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向某方向运动
|
||||
|
||||
private:
|
||||
float global_speed_rate; //全局速度比率
|
||||
uint8_t current_direction; //当前运动状态
|
||||
float current_speed_rate; //当前运动速度比率
|
||||
float current_turn_speed_rate; //当前转向时一侧减速的比率
|
||||
static float global_speed_rate; //全局速度比率
|
||||
static uint8_t current_direction; //当前运动状态
|
||||
static float current_speed_rate; //当前运动速度比率
|
||||
static float current_turn_speed_rate; //当前转向时一侧减速的比率
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -5,13 +5,11 @@
|
||||
|
||||
//静态变量
|
||||
HandleMessageFunction Radio::hm_func;
|
||||
NeoHWSerial* Radio::NeoSerialX;
|
||||
NeoHWSerial* Radio::NeoSerialX = &RADIO_SERIAL_NUM;
|
||||
|
||||
|
||||
Radio::Radio()
|
||||
{
|
||||
NeoSerialX = &RADIO_SERIAL_NUM;
|
||||
|
||||
EnableReceiveInterrupt();
|
||||
}
|
||||
|
||||
@ -19,7 +17,7 @@ Radio::Radio()
|
||||
//打开串口
|
||||
void Radio::BeginTransmit(unsigned long baud_rate)
|
||||
{
|
||||
NeoSerialX->begin(RADIO_BAUD_RATE);
|
||||
NeoSerialX->begin(baud_rate);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -7,6 +7,17 @@
|
||||
#include <NeoHWSerial.h>
|
||||
#endif
|
||||
|
||||
|
||||
//静态变量
|
||||
int Sensor::gray_1_gate = DEFAULT_GRAY_1_GATE;
|
||||
int Sensor::gray_2_gate = DEFAULT_GRAY_2_GATE;
|
||||
int Sensor::gray_3_gate = DEFAULT_GRAY_3_GATE;
|
||||
int Sensor::gray_4_gate = DEFAULT_GRAY_4_GATE;
|
||||
int Sensor::gray_5_gate = DEFAULT_GRAY_5_GATE;
|
||||
int Sensor::gray_6_gate = DEFAULT_GRAY_6_GATE;
|
||||
int Sensor::gray_7_gate = DEFAULT_GRAY_7_GATE;
|
||||
|
||||
|
||||
Sensor::Sensor()
|
||||
{
|
||||
pinMode(BUTTON_1_OUT, INPUT_PULLUP);
|
||||
@ -38,15 +49,6 @@ Sensor::Sensor()
|
||||
|
||||
pinMode(BUTTON_2_VCC, OUTPUT);
|
||||
digitalWrite(BUTTON_2_VCC, HIGH);
|
||||
|
||||
//设置灰度值为默认值
|
||||
SetGrayGate(GRAY_1, DEFAULT_GRAY_1_GATE);
|
||||
SetGrayGate(GRAY_2, DEFAULT_GRAY_2_GATE);
|
||||
SetGrayGate(GRAY_3, DEFAULT_GRAY_3_GATE);
|
||||
SetGrayGate(GRAY_4, DEFAULT_GRAY_4_GATE);
|
||||
SetGrayGate(GRAY_5, DEFAULT_GRAY_5_GATE);
|
||||
SetGrayGate(GRAY_6, DEFAULT_GRAY_6_GATE);
|
||||
SetGrayGate(GRAY_7, DEFAULT_GRAY_7_GATE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -67,35 +67,35 @@ public:
|
||||
Sensor();
|
||||
|
||||
//设置灰度传感器临界值
|
||||
void SetGrayGate(uint8_t gray_sensor_num, int gate);
|
||||
static void SetGrayGate(uint8_t gray_sensor_num, int gate);
|
||||
|
||||
//使灰度传感器闪烁
|
||||
void FlashGraySensor(uint8_t gray_sensor_num);
|
||||
static void FlashGraySensor(uint8_t gray_sensor_num);
|
||||
|
||||
//灰度传感器判断下方是否为白色
|
||||
bool IsWhite(uint8_t gray_sensor_num);
|
||||
static bool IsWhite(uint8_t gray_sensor_num);
|
||||
|
||||
//灰度传感器灰度值偏离比例,即 (gray_gate - gray_val) / gray_gate
|
||||
float GrayDeviationRate(uint8_t gray_sensor_num);
|
||||
static float GrayDeviationRate(uint8_t gray_sensor_num);
|
||||
|
||||
//碰撞传感器(开关)判断是否闭合
|
||||
bool IsPushed(uint8_t button_num);
|
||||
static bool IsPushed(uint8_t button_num);
|
||||
|
||||
//开启 HMC5883 的 I2C 通讯
|
||||
void StartHMC5883(void);
|
||||
static void StartHMC5883(void);
|
||||
|
||||
//返回朝向角
|
||||
float GetAngle(void);
|
||||
static float GetAngle(void);
|
||||
|
||||
private:
|
||||
//灰度传感器临界值
|
||||
int gray_1_gate;
|
||||
int gray_2_gate;
|
||||
int gray_3_gate;
|
||||
int gray_4_gate;
|
||||
int gray_5_gate;
|
||||
int gray_6_gate;
|
||||
int gray_7_gate;
|
||||
static int gray_1_gate;
|
||||
static int gray_2_gate;
|
||||
static int gray_3_gate;
|
||||
static int gray_4_gate;
|
||||
static int gray_5_gate;
|
||||
static int gray_6_gate;
|
||||
static int gray_7_gate;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -11,16 +11,17 @@
|
||||
#define BYTE_TO_HW(A, B) ((((uint16_t)(A)) << 8) | (uint8_t)(B))
|
||||
|
||||
|
||||
Servo::Servo()
|
||||
{
|
||||
NeoSerialX = &SERVO_SERIAL_NUM; //默认使用 Mega 板 18 19 作为串口通信端口
|
||||
}
|
||||
//静态变量
|
||||
NeoHWSerial* Servo::NeoSerialX = &SERVO_SERIAL_NUM;
|
||||
|
||||
|
||||
Servo::Servo() {}
|
||||
|
||||
|
||||
//打开串口
|
||||
void Servo::BeginTransmit(unsigned long baud_rate)
|
||||
{
|
||||
NeoSerialX->begin(SERVO_BAUD_RATE);
|
||||
NeoSerialX->begin(baud_rate);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -53,28 +53,28 @@ class Servo
|
||||
public:
|
||||
Servo();
|
||||
|
||||
void BeginTransmit(unsigned long baud_rate = SERVO_BAUD_RATE); //打开串口
|
||||
static void BeginTransmit(unsigned long baud_rate = SERVO_BAUD_RATE); //打开串口
|
||||
|
||||
void MoveServo(uint8_t servo_id, uint16_t position, uint16_t time); //控制单个舵机转动
|
||||
static void MoveServo(uint8_t servo_id, uint16_t position, uint16_t time); //控制单个舵机转动
|
||||
|
||||
void RunActionGroup(uint8_t action_num, uint16_t times); //运行指定动作组
|
||||
void StopActionGroup(void); //停止动作组运行
|
||||
void SetActionGroupSpeed(uint8_t action_num, float speed); //设定指定动作组的运行速度
|
||||
void SetAllActionGroupSpeed(float speed); //设置所有动作组的运行速度
|
||||
static void RunActionGroup(uint8_t action_num, uint16_t times); //运行指定动作组
|
||||
static void StopActionGroup(void); //停止动作组运行
|
||||
static void SetActionGroupSpeed(uint8_t action_num, float speed); //设定指定动作组的运行速度
|
||||
static void SetAllActionGroupSpeed(float speed); //设置所有动作组的运行速度
|
||||
|
||||
void OpenClaw(void); //打开爪子
|
||||
static void OpenClaw(void); //打开爪子
|
||||
|
||||
void Reset(float speed = SERVO_NORMAL_SPEED); //恢复初始状态,指定速度
|
||||
void Down(float speed = SERVO_NORMAL_SPEED); //放下爪子,指定速度
|
||||
void Catch(float speed = SERVO_NORMAL_SPEED); //抓取,指定速度
|
||||
void Release(float speed = SERVO_NORMAL_SPEED); //释放,指定速度
|
||||
void GainDown(float speed = SERVO_NORMAL_SPEED); //增益点放下爪子,指定速度
|
||||
void GainCatch(float speed = SERVO_NORMAL_SPEED); //增益点抓取,指定速度
|
||||
void GainUp(float speed = SERVO_NORMAL_SPEED); //增益点抬升,指定速度
|
||||
void StopAndReset(float speed = SERVO_NORMAL_SPEED); //停止舵机并恢复初始状态,指定速度
|
||||
static void Reset(float speed = SERVO_NORMAL_SPEED); //恢复初始状态,指定速度
|
||||
static void Down(float speed = SERVO_NORMAL_SPEED); //放下爪子,指定速度
|
||||
static void Catch(float speed = SERVO_NORMAL_SPEED); //抓取,指定速度
|
||||
static void Release(float speed = SERVO_NORMAL_SPEED); //释放,指定速度
|
||||
static void GainDown(float speed = SERVO_NORMAL_SPEED); //增益点放下爪子,指定速度
|
||||
static void GainCatch(float speed = SERVO_NORMAL_SPEED); //增益点抓取,指定速度
|
||||
static void GainUp(float speed = SERVO_NORMAL_SPEED); //增益点抬升,指定速度
|
||||
static void StopAndReset(float speed = SERVO_NORMAL_SPEED); //停止舵机并恢复初始状态,指定速度
|
||||
|
||||
private:
|
||||
NeoHWSerial* NeoSerialX;
|
||||
static NeoHWSerial* NeoSerialX;
|
||||
};
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user