4G_module/custom/jt808/inc/jt808_electronic_fence.h

49 lines
1.6 KiB
C
Raw Normal View History

#ifndef JT808_ELECTRONIC_FENCE_H_
#define JT808_ELECTRONIC_FENCE_H_
#include "jt808_protocol.h"
#include "jt808_config.h"
#pragma pack(1)
typedef struct fence_Polygon_area_t{
uint32_t Area_ID; // 区域ID
uint16_t Area_att; // 区域属性
uint16_t Area_Points_Num; // 区域内点的数量
AreaPoint_t *Area_Points; // 区域内点的坐标集合
struct fence_Polygon_area_t *next; // 指向下一个区域
}fence_Polygon_area_t;
#pragma pack()
extern uint32_t Rsp_Bigscenic_Fence_Polygon_area_ID;
extern uint32_t Rsp_Bigban_Fence_Polygon_area_ID;
// 增加围栏区域(队尾增加) // Area_att == 0x0001 景区围栏Area_att == 0x0002 禁停区围栏
int jt808_add_tail_fence_Polygon_area(uint32_t area_id ,uint16_t Area_att, uint16_t Area_Points_Num, AreaPoint_t *big_Area_Points);
// 移除围栏区域(指定区域ID)
int jt808_remove_fence_Polygon_area(uint32_t area_id);
// 判断区域ID列表文件是否存在 // 0 找到
int jt808_get_areafile_state(void);
// 删除终端参数文件
void jt808_delete_Fence_area(void);
// 保存围栏区域
int jt808_save_Fence_area(void);
// 加载围栏区域
int jt808_load_Fence_area(void);
/**
* @brief
* @retval 1: ()
* 0:
*/
int jt808_is_fence_empty(void);
// 遍历围栏区域,判断指定坐标是否在围栏内
// 返回区域ID // 0 未在围栏内 // Area_att == 0x0001 景区围栏Area_att == 0x0002 禁停区围栏
uint32_t jt808_Polygon_fence_check(uint16_t Area_att, uint32_t lat, uint32_t lng);
#endif