energy change
This commit is contained in:
@@ -27,12 +27,14 @@ public:
|
||||
Energy(Serial &u, uint8_t &color);//构造函数,参数为串口和敌方颜色
|
||||
~Energy();//默认析构函数
|
||||
|
||||
void run(cv::Mat &gimbal_src, cv::Mat &chassis_src);
|
||||
void run(cv::Mat &gimbal_src);
|
||||
void runBig(cv::Mat &gimbal_src, cv::Mat &chassis_src);
|
||||
void runBig(cv::Mat &gimbal_src);
|
||||
void runSmall(cv::Mat &gimbal_src);
|
||||
|
||||
Serial &serial;//串口
|
||||
void setEnergyInit();//设置能量机关初始化
|
||||
void setBigEnergyInit();//设置大能量机关初始化
|
||||
void setSmallEnergyInit();//设置小能量机关初始化
|
||||
void sendTarget(Serial &serial, float x, float y, float z);
|
||||
|
||||
|
||||
|
||||
@@ -45,3 +45,32 @@ void Energy::setEnergyInit() {
|
||||
is_gimbal = true;
|
||||
is_chassis = false;
|
||||
}
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// 此函数为大能量机关再初始化函数
|
||||
// ---------------------------------------------------------------------------------------------------------------------
|
||||
void Energy::setBigEnergyInit() {
|
||||
initEnergy();
|
||||
initEnergyPartParam();
|
||||
|
||||
is_big = true;
|
||||
is_small = false;
|
||||
is_gimbal = true;
|
||||
is_chassis = false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// 此函数为大能量机关再初始化函数
|
||||
// ---------------------------------------------------------------------------------------------------------------------
|
||||
void Energy::setSmallEnergyInit() {
|
||||
initEnergy();
|
||||
initEnergyPartParam();
|
||||
|
||||
is_big = false;
|
||||
is_small = true;
|
||||
is_gimbal = true;
|
||||
is_chassis = false;
|
||||
}
|
||||
@@ -12,9 +12,9 @@ using namespace cv;
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// 此函数为能量机关模式主控制流函数,且步兵需要同时拥有云台摄像头和底盘摄像头
|
||||
// ---------------------------------------------------------------------------------------------------------------------
|
||||
void Energy::run(cv::Mat &gimbal_src, cv::Mat &chassis_src) {
|
||||
void Energy::runBig(cv::Mat &gimbal_src, cv::Mat &chassis_src) {
|
||||
if (chassis_src.empty())
|
||||
run(gimbal_src);//仅拥有云台摄像头则调用单摄像头的run函数
|
||||
runBig(gimbal_src);//仅拥有云台摄像头则调用单摄像头的run函数
|
||||
else if (is_gimbal) {
|
||||
energy_part_param_ = gimbal_energy_part_param_;
|
||||
clearAll();
|
||||
@@ -82,7 +82,7 @@ void Energy::run(cv::Mat &gimbal_src, cv::Mat &chassis_src) {
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// 此函数为能量机关模式主控制流函数,且步兵仅拥有云台摄像头
|
||||
// ---------------------------------------------------------------------------------------------------------------------
|
||||
void Energy::run(cv::Mat &gimbal_src) {
|
||||
void Energy::runBig(cv::Mat &gimbal_src) {
|
||||
energy_part_param_ = gimbal_energy_part_param_;
|
||||
clearAll();
|
||||
initImage(gimbal_src);
|
||||
@@ -127,11 +127,10 @@ void Energy::run(cv::Mat &gimbal_src) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// 此函数为小能量机关模式主控制流函数,击打小符只需要拥有云台摄像头
|
||||
// ---------------------------------------------------------------------------------------------------------------------
|
||||
void Energy::runSmall(cv::Mat &gimbal_src){
|
||||
void Energy::runSmall(cv::Mat &gimbal_src) {
|
||||
energy_part_param_ = gimbal_energy_part_param_;
|
||||
clearAll();
|
||||
initImage(gimbal_src);
|
||||
|
||||
24
main.cpp
24
main.cpp
@@ -92,11 +92,11 @@ int main(int argc, char *argv[]) {
|
||||
cout << "start running" << endl;
|
||||
do {
|
||||
CNT_TIME("Total", {
|
||||
if (mcuData.state != ARMOR_STATE) {//能量机关模式
|
||||
if (last_state == ARMOR_STATE) {//若上一帧是自瞄模式,即刚往完成切换,则需要初始化
|
||||
if (mcuData.state == BIG_ENERGY_STATE) {//大能量机关模式
|
||||
if (last_state != BIG_ENERGY_STATE) {//若上一帧不是大能量机关模式,即刚往完成切换,则需要初始化
|
||||
destroyAllWindows();
|
||||
((CameraWrapper *) video_gimbal)->changeBrightness(ENERGY_CAMERA_GAIN);
|
||||
energy.setEnergyInit();
|
||||
energy.setBigEnergyInit();
|
||||
checkReconnect(video_chassis->read(chassis_src));
|
||||
#ifdef CHASSIS_FLIP_MODE
|
||||
flip(chassis_src, chassis_src, CHASSIS_FLIP_MODE);
|
||||
@@ -110,8 +110,22 @@ int main(int argc, char *argv[]) {
|
||||
if (!from_camera) extract(gimbal_src, chassis_src);
|
||||
if (save_video) saveVideos(gimbal_src, chassis_src);//保存视频
|
||||
if (show_origin) showOrigin(gimbal_src, chassis_src);//显示原始图像
|
||||
// energy.run(gimbal_src, chassis_src);
|
||||
energy.run(gimbal_src);
|
||||
energy.runBig(gimbal_src, chassis_src);
|
||||
last_state = mcuData.state;//更新上一帧状态
|
||||
} else if (mcuData.state == SMALL_ENERGY_STATE) {
|
||||
if (mcuData.state != SMALL_ENERGY_STATE) {
|
||||
destroyAllWindows();
|
||||
((CameraWrapper *) video_gimbal)->changeBrightness(ENERGY_CAMERA_GAIN);
|
||||
energy.setSmallEnergyInit();
|
||||
}
|
||||
ok = checkReconnect(video_gimbal->read(gimbal_src));
|
||||
#ifdef GIMBAL_FLIP_MODE
|
||||
flip(gimbal_src, gimbal_src, GIMBAL_FLIP_MODE);
|
||||
#endif
|
||||
if (!from_camera) extract(gimbal_src);
|
||||
if (save_video) saveVideos(gimbal_src);//保存视频
|
||||
if (show_origin) showOrigin(gimbal_src);//显示原始图像
|
||||
energy.runSmall(gimbal_src);
|
||||
last_state = mcuData.state;//更新上一帧状态
|
||||
} else { // 自瞄模式
|
||||
if (last_state != ARMOR_STATE) {
|
||||
|
||||
Reference in New Issue
Block a user