You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.3 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#ifndef __OPENMV_OPT__
#define __OPENMV_OPT__
#include <ExtSRAMInterface.h>
#include "AccurateMotor.h"
#include "GlobalDatas.h"
#include <Command.h>
#include <BEEP.h>
namespace OpenMVOpt
{
extern uint8_t Data_OpenMVBuf[8];
extern uint8_t ROI_Query_CMD[8];
//bool TrackCallback();
//返回false则停止循迹否则继续循迹
typedef bool(*TrackCallback)();
struct ImageROIData
{
bool up;
bool down;
bool left;
bool right;
bool middle_up;
bool middle_down;
bool data_validate;
};
//车身姿态调整
void AdjustCarPosition(uint8_t Car_Speed);
bool AdjustCarPoseInPlace();
//请求ROI数据
ImageROIData GetROIData();
//检查是否出现了大面积白色
bool ROIFoundWhite(const ImageROIData& data);
//启动视频循迹
void OpenMVTrack_Disc_StartUp();
//停止视频循迹
void OpenMVTrack_Disc_CloseUp();
//循迹(到下一路口)
void OpenMV_Track(uint8_t Car_Speed, TrackCallback cb, bool enable_white_detect = true);
//原地循迹(仅矫正姿态,不行进)
void OpenMV_TrackInPlace();
//启动二维码识别
void OpenMVQr_Disc_StartUp();
//停止二维码识别
void OpenMVQr_Disc_CloseUp();
//等待二维码数据回传(超时:毫秒)
bool OpenMV_WaitQRData(uint8_t* data, uint16_t max_len, uint16_t timeout = 0);
//解析二维码数据
String DecodeQRData(uint8_t* data, uint16_t len);
//舵机角度控制
void Servo_Control(int8_t angle);
};
#endif