将各类库静态化

This commit is contained in:
lxbpxylps@126.com 2021-03-22 12:18:27 +08:00
parent 8e04862c86
commit dea3f23e52
7 changed files with 77 additions and 75 deletions

View File

@ -6,26 +6,27 @@
#include <NeoHWSerial.h> #include <NeoHWSerial.h>
#endif #endif
Move::Move()
{ //静态变量
global_speed_rate = DEFAULT_GLOBAL_SPEED_RATE; float Move::global_speed_rate = DEFAULT_GLOBAL_SPEED_RATE; //全局速度比率
current_direction = STOP; uint8_t Move::current_direction = STOP; //当前运动状态
current_speed_rate = 0.0; float Move::current_speed_rate = 0.0; //当前运动速度比率
} float Move::current_turn_speed_rate; //当前转向时一侧减速的比率
Move::Move() {}
Move::Move(float global_speed_rate) Move::Move(float global_speed_rate)
{ {
Move(); Move::global_speed_rate = global_speed_rate;
this->global_speed_rate = global_speed_rate;
} }
//设置全局速度比率 //设置全局速度比率
void Move::SetGlobalSpeedRate(float global_speed_rate) void Move::SetGlobalSpeedRate(float global_speed_rate)
{ {
this->global_speed_rate = global_speed_rate; Move::global_speed_rate = global_speed_rate;
} }

View File

@ -55,29 +55,29 @@ public:
Move(); Move();
Move(float global_speed_rate); Move(float global_speed_rate);
void SetGlobalSpeedRate(float global_speed_rate); //设置全局速度比率 static void SetGlobalSpeedRate(float global_speed_rate); //设置全局速度比率
uint8_t GetCurrentMove(void); //获取当前运动方向 static uint8_t GetCurrentMove(void); //获取当前运动方向
float GetCurrentSpeedRate(void); //获取当前运动速度比率 static float GetCurrentSpeedRate(void); //获取当前运动速度比率
float GetCurrentTurnSpeedRate(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); //前进 static void Forward(float speed_rate = 1.0); //前进
void Backward(float speed_rate = 1.0); //后退 static void Backward(float speed_rate = 1.0); //后退
void ForLeftward(float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向前左转 static 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); //向前右转 static 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); //向后左转 static 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); //向后右转 static void BackRightward(float speed_rate = 1.0, float turn_speed_rate = DEFAULT_TRUN_SPEED_RATE); //向后右转
void Stop(void); //制动 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: private:
float global_speed_rate; //全局速度比率 static float global_speed_rate; //全局速度比率
uint8_t current_direction; //当前运动状态 static uint8_t current_direction; //当前运动状态
float current_speed_rate; //当前运动速度比率 static float current_speed_rate; //当前运动速度比率
float current_turn_speed_rate; //当前转向时一侧减速的比率 static float current_turn_speed_rate; //当前转向时一侧减速的比率
}; };

View File

@ -5,13 +5,11 @@
//静态变量 //静态变量
HandleMessageFunction Radio::hm_func; HandleMessageFunction Radio::hm_func;
NeoHWSerial* Radio::NeoSerialX; NeoHWSerial* Radio::NeoSerialX = &RADIO_SERIAL_NUM;
Radio::Radio() Radio::Radio()
{ {
NeoSerialX = &RADIO_SERIAL_NUM;
EnableReceiveInterrupt(); EnableReceiveInterrupt();
} }
@ -19,7 +17,7 @@ Radio::Radio()
//打开串口 //打开串口
void Radio::BeginTransmit(unsigned long baud_rate) void Radio::BeginTransmit(unsigned long baud_rate)
{ {
NeoSerialX->begin(RADIO_BAUD_RATE); NeoSerialX->begin(baud_rate);
} }

View File

@ -7,6 +7,17 @@
#include <NeoHWSerial.h> #include <NeoHWSerial.h>
#endif #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() Sensor::Sensor()
{ {
pinMode(BUTTON_1_OUT, INPUT_PULLUP); pinMode(BUTTON_1_OUT, INPUT_PULLUP);
@ -38,15 +49,6 @@ Sensor::Sensor()
pinMode(BUTTON_2_VCC, OUTPUT); pinMode(BUTTON_2_VCC, OUTPUT);
digitalWrite(BUTTON_2_VCC, HIGH); 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);
} }

View File

@ -67,35 +67,35 @@ public:
Sensor(); 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 //灰度传感器灰度值偏离比例,即 (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 通讯 //开启 HMC5883 的 I2C 通讯
void StartHMC5883(void); static void StartHMC5883(void);
//返回朝向角 //返回朝向角
float GetAngle(void); static float GetAngle(void);
private: private:
//灰度传感器临界值 //灰度传感器临界值
int gray_1_gate; static int gray_1_gate;
int gray_2_gate; static int gray_2_gate;
int gray_3_gate; static int gray_3_gate;
int gray_4_gate; static int gray_4_gate;
int gray_5_gate; static int gray_5_gate;
int gray_6_gate; static int gray_6_gate;
int gray_7_gate; static int gray_7_gate;
}; };

View File

@ -11,16 +11,17 @@
#define BYTE_TO_HW(A, B) ((((uint16_t)(A)) << 8) | (uint8_t)(B)) #define BYTE_TO_HW(A, B) ((((uint16_t)(A)) << 8) | (uint8_t)(B))
Servo::Servo() //静态变量
{ NeoHWSerial* Servo::NeoSerialX = &SERVO_SERIAL_NUM;
NeoSerialX = &SERVO_SERIAL_NUM; //默认使用 Mega 板 18 19 作为串口通信端口
}
Servo::Servo() {}
//打开串口 //打开串口
void Servo::BeginTransmit(unsigned long baud_rate) void Servo::BeginTransmit(unsigned long baud_rate)
{ {
NeoSerialX->begin(SERVO_BAUD_RATE); NeoSerialX->begin(baud_rate);
} }

View File

@ -53,28 +53,28 @@ class Servo
public: public:
Servo(); 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); //运行指定动作组 static void RunActionGroup(uint8_t action_num, uint16_t times); //运行指定动作组
void StopActionGroup(void); //停止动作组运行 static void StopActionGroup(void); //停止动作组运行
void SetActionGroupSpeed(uint8_t action_num, float speed); //设定指定动作组的运行速度 static void SetActionGroupSpeed(uint8_t action_num, float speed); //设定指定动作组的运行速度
void SetAllActionGroupSpeed(float speed); //设置所有动作组的运行速度 static void SetAllActionGroupSpeed(float speed); //设置所有动作组的运行速度
void OpenClaw(void); //打开爪子 static void OpenClaw(void); //打开爪子
void Reset(float speed = SERVO_NORMAL_SPEED); //恢复初始状态,指定速度 static void Reset(float speed = SERVO_NORMAL_SPEED); //恢复初始状态,指定速度
void Down(float speed = SERVO_NORMAL_SPEED); //放下爪子,指定速度 static void Down(float speed = SERVO_NORMAL_SPEED); //放下爪子,指定速度
void Catch(float speed = SERVO_NORMAL_SPEED); //抓取,指定速度 static void Catch(float speed = SERVO_NORMAL_SPEED); //抓取,指定速度
void Release(float speed = SERVO_NORMAL_SPEED); //释放,指定速度 static void Release(float speed = SERVO_NORMAL_SPEED); //释放,指定速度
void GainDown(float speed = SERVO_NORMAL_SPEED); //增益点放下爪子,指定速度 static void GainDown(float speed = SERVO_NORMAL_SPEED); //增益点放下爪子,指定速度
void GainCatch(float speed = SERVO_NORMAL_SPEED); //增益点抓取,指定速度 static void GainCatch(float speed = SERVO_NORMAL_SPEED); //增益点抓取,指定速度
void GainUp(float speed = SERVO_NORMAL_SPEED); //增益点抬升,指定速度 static void GainUp(float speed = SERVO_NORMAL_SPEED); //增益点抬升,指定速度
void StopAndReset(float speed = SERVO_NORMAL_SPEED); //停止舵机并恢复初始状态,指定速度 static void StopAndReset(float speed = SERVO_NORMAL_SPEED); //停止舵机并恢复初始状态,指定速度
private: private:
NeoHWSerial* NeoSerialX; static NeoHWSerial* NeoSerialX;
}; };