127 lines
4.1 KiB
C
127 lines
4.1 KiB
C
#ifndef __PTZ_PRESET_BIT_SCAN_H_
|
||
#define __PTZ_PRESET_BIT_SCAN_H_
|
||
|
||
typedef struct _PresetBit_//云台预置位
|
||
{
|
||
float hori_angle;//水平角度
|
||
float vert_angle;//垂直角度
|
||
float hori_scan_speed;//水平转动速度
|
||
float vert_scan_speed;//垂直转动速度
|
||
|
||
float zoom_v;//镜头变倍电压
|
||
float focus_v;//镜头聚焦电压
|
||
|
||
unsigned short int step_stop_time;//预置位扫描时每个位置的停止时间,单位是ms,并且必须大于电机默认的停止时间
|
||
char enable;//预置位是否有效,1预置位存在,0预置位不存在
|
||
unsigned int crc;//效验码
|
||
}PresetBit;
|
||
|
||
//预置位扫描
|
||
typedef struct _PresetBitScan_
|
||
{
|
||
unsigned int start_num;//起始预置位编号
|
||
unsigned int end_num; //结束预置位编号
|
||
unsigned int actual_num;//当前实际的扫描编号
|
||
float hori_speed;//水平转速
|
||
float vert_speed;//垂直转速
|
||
unsigned short int stop_time;
|
||
// char hori_arrive_flag;//预置位是否到达的标记,1正在转向指定预置位,0到达预置位
|
||
// char vert_arrive_flag;//预置位是否到达的标记,1正在转向指定预置位,0到达预置位
|
||
unsigned char state; //扫描状态,即扫描进行程度
|
||
unsigned char state_a; //扫描状态,即扫描进行程度
|
||
unsigned char save_state;//保存的状态
|
||
unsigned char last_state;//上一次扫描状态
|
||
|
||
char mode;//0循环预置位扫描,1单次预置位扫描
|
||
}PresetBitScan;
|
||
|
||
extern PresetBitScan g_preset_bit_scan;
|
||
/**************预置位参数回传**************/
|
||
//预置位水平角度
|
||
#define PRESET_BIT_HORI_ANGLE 0xA1
|
||
//预置位垂直角度
|
||
#define PRESET_BIT_VERT_ANGLE 0xA2
|
||
//预置位停止时间
|
||
#define PRESET_BIT_STOPTIME 0xA3
|
||
//预置位扫描速度
|
||
#define PRESET_BIT_SPEED 0xA4
|
||
|
||
///预置位有效
|
||
#define PRESET_BIT_ENABLE 1
|
||
///预置位无效
|
||
#define PRESET_BIT_DISABLE 0
|
||
|
||
///预置位总数
|
||
#define PRESET_BIT_AMOUNT 256
|
||
|
||
|
||
///预置位数据存入Flash的首地址
|
||
#define PRESET_BIT_FLASH_ADD 0X007F0000
|
||
//预置位备份数据存入Flash的首地址
|
||
#define PRESET_BIT_BACKUP_FLASH_ADD 0X00800000
|
||
|
||
///预置位数据存入Flash的首地址
|
||
#define PRESET_BIT_FIRST_FLASH_ADD 0X007F0000//存储首地址
|
||
//预置位数据存入Flash的尾地址
|
||
#define PRESET_BIT_TAIL_FLASH_ADD 0X0080FFFF//存储尾地址
|
||
//把存储区的最后的4K存储区作为数据中转缓存区
|
||
#define PRESET_BIT_CACHE_FLASH_ADD (0X0080FFFF - 1024*4 + 1)//存储尾地址
|
||
|
||
//预置位数据写入FLASH的尝试次数
|
||
#define PRESET_BIT_SAVE_FLASH_NUM 3
|
||
//预置位数据FLASH读入的尝试次数
|
||
#define PRESET_BIT_READ_FLASH_NUM 3
|
||
|
||
|
||
//预置位扫描启动
|
||
#define PRESET_BIT_SCAN_START 1
|
||
//预置位扫描暂停
|
||
#define PRESET_BIT_SCAN_PAUSE_A 20
|
||
#define PRESET_BIT_SCAN_PAUSE_B 21
|
||
|
||
//预置位扫描恢复
|
||
#define PRESET_BIT_SCAN_RECOVERY 30
|
||
|
||
//预置位扫描关闭
|
||
#define PRESET_BIT_SCAN_CLOSE_A 40
|
||
#define PRESET_BIT_SCAN_CLOSE_B 0
|
||
|
||
|
||
//预置位回传
|
||
#define PRESET_BIT_RETURN_OFF 0//预置位回传关
|
||
#define PRESET_BIT_RETURN_ON 1//预置位回传开
|
||
//预置位扫描,预置位定位回传
|
||
#define PRESET_BIT_SCAN_END_RETURN_OFF 0//关闭预置位扫描结束回传
|
||
#define PRESET_BIT_SCAN_END_RETURN_ON 1//打开预置位扫描结束回传
|
||
#define PRESET_BIT_SCAN_LOCATION_RETURN_ON 2//打开预置位扫描到位回传
|
||
#define PRESET_BIT_SCAN_LOCATION_RETURN_OFF 3//关闭预置位扫描到位回传
|
||
#define PRESET_BIT_LOCATION_RETURN_ON 4//打开普通调用预置位到位回传
|
||
#define PRESET_BIT_LOCATION_RETURN_OFF 5//关闭普通调用预置位到位回传
|
||
|
||
#define PRESET_BIT_SCAN_END_RETURN_DATA 6//扫描结束数据回传
|
||
#define PRESET_BIT_SCAN_LOCATION_RETURN_DATA 7//预置位扫描到位回传
|
||
#define PRESET_BIT_LOCATION_RETURN_DATA 8//普通到达预置位回传
|
||
|
||
|
||
|
||
#define PRESET_BIT_LOCATION_UDP_CMD_ON 1//UDP收到调用预置位指令
|
||
#define PRESET_BIT_LOCATION_UART_422_CMD_ON 2//串口422收到调用预置位指令
|
||
#define PRESET_BIT_LOCATION_UART_485_CMD_ON 3//串口485收到调用预置位指令
|
||
|
||
|
||
unsigned int ptz_preset_bit_crc(PresetBit bit);
|
||
char ptz_preset_bit_save(PresetBit bit, unsigned int num);
|
||
PresetBit ptz_preset_bit_read(unsigned int num);
|
||
void ptz_preset_bit_all_erase();
|
||
void init_preset_bit_scan_module(void);
|
||
void ptz_preset_bit_location_return_return();
|
||
void ptz_preset_bit_scan_location_return_return();
|
||
void ptz_preset_bit_scan_end_return_return();
|
||
void ptz_preset_bit_location_return_save( unsigned int num, char dev);
|
||
|
||
void presetbit_data_return(char dev, unsigned char ScanNum);
|
||
|
||
|
||
#endif
|
||
|