// // Created by zx on 2020/1/16. // #include "Terminal_region_limit.h" Terminal_region_limit::Terminal_region_limit(Railing* left_railing,Railing* right_railing) { mp_left_railing=left_railing; mp_right_railing=right_railing; } Error_manager Terminal_region_limit::verify(cv::RotatedRect rect) { if(mp_right_railing==NULL || mp_left_railing==NULL) { return Error_manager(PARAMETER_ERROR,NORMAL,"terminal left or right railing is null"); } Error_manager code; bool tb_left_error=false; bool tb_right_error=false; code=mp_left_railing->verify(rect); if(code!=SUCCESS) { //左边栏杆碰撞 tb_left_error=true; } code=mp_right_railing->verify(rect); if(code!=SUCCESS) { //右边栏杆碰撞 tb_right_error=true; } if(tb_left_error && tb_right_error) { return Error_manager(HARDWARE_LIMIT_TERMINAL_LR_ERROR,NORMAL,"terminal left and right railing error"); } if(tb_left_error) { return Error_manager(HARDWARE_LIMIT_TERMINAL_LEFT_ERROR,NORMAL,"terminal left railing error"); } if(tb_right_error) { return Error_manager(HARDWARE_LIMIT_TERMINAL_RIGHT_ERROR,NORMAL,"terminal right railing error"); } return SUCCESS; }