MW22-02A/APP/Service/service_presetbitscan.h

127 lines
4.1 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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