📄 blkquery.h
字号:
#ifdef BLKQUERY_GLOBALS
#define BLKQUERY_EXT
#else
#define BLKQUERY_EXT extern
#endif
#define IDLE 0x01
#define WAITING 0x02
#define QUERYING 0x04
#define WAITSEND 0x08
#define SENDING 0x10
#define STOPQUERY 0x20
#define FRAMEERROR 0xAA
#define FRAMENORMAL 0x55
#define MAXIDNUM 10
typedef struct
{
INT8U TermLen;
INT8U TimeTermCount;
INT8U RangeTermCount;
INT8U *TermPtr;
}TERMSTRUCT;
typedef struct
{
INT8U WatchId[MAXIDNUM];
INT8U MaxSendDot;
INT8U TotalFrame;
INT8U CurFrame;
INT8U TermCount;
TERMSTRUCT TermStruct;
}QUERYTERM;
/*typedef struct
{
INT8U LeftLa[4];
INT8U LeftLg[4];
INT8U RightLa[4];
INT8U RightLg[4];
}GPS_REGION;
*/
#define MAXREGION 50
#define MAXFLAG 20
typedef struct
{
INT8U MatchFlag[MAXFLAG];
GPS_REGION GpsRegion[MAXREGION];
}QUERYREGION;
typedef struct
{
INT8U Sector;//扇区
INT8U Frame; //帧包
INT8U Offset;//点
}DOT_INDEX;
#define GPS_MATCH_CNT 200
typedef struct
{
INT16U TotalDots;
INT16U RdOffset;
DOT_INDEX MatchTbl[GPS_MATCH_CNT];
}MATCH_GPS;
typedef struct
{
INT8U Sector;
INT8U Frame;
INT16U Offset;
}BlkRdStruct;
#define MAXTIMETERM 5
typedef struct
{
BOOLEAN FrameError;
INT8U WatchId[MAXIDNUM]; //监控终端ID号
INT8U TotalFrame; //查询总帧数
INT8U MaxSendDot; //最大上传点数
INT8U TotalRegion; //总共位置范围个数
INT8U MatchRegion; //匹配的范围个数
INT8U Status; //查询状态标志(正在查询,等待查询帧数,空闲状态等)
INT16U TimeCount ; //超时计数器
INT16U TotalMatchDot; //总匹配点数
BOOLEAN QueryTimeFlag; //是否需要按时间查询
BOOLEAN TimeLapFlag; //时间是否有交叠
BOOLEAN TimeSynch; //是否查询到匹配点
INT8U SendCtr; //发送帧号计数器
INT8U TotoalTimeTerm;
BLKTIME BTime[MAXTIMETERM];//时间范围:起始时间
BLKTIME ETime[MAXTIMETERM];//结束时间
QUERYREGION Area; //位置范围
MATCH_GPS MatchDots; //满足查询条件的点的索引表
DOT_INDEX DummyDot; //假点,用于存储查询时间范围内没有数据信息的情况
BlkRdStruct Read; //查询时读操作指针的管理
}QueryTblStruct;
#define MAXQUERYTBL 5
BLKQUERY_EXT QueryTblStruct QueryTbl[MAXQUERYTBL];
typedef struct
{
BLKTIME DateTime;
INT8U Latitude[4];
INT8U Longitude[4];
INT8U Vector;
INT8U Direction;
INT8U Sensor;
}TOTALGPS;
void InitBlkQuery(void);
//void ExtractAllGps(TOTALGPS *AllGps,BLKHEAD *Blk);
//void ExtractSGpsDot(TOTALGPS *OriDot,SPARSEBLK *SBlk,INT8U Count);
//void ExtractCGpsDot(TOTALGPS *OriDot,COMPACTBLK *CBlk,INT8U Count);
INT8U GetMatchRegionCnt(QueryTblStruct *QTbl);
void BlkQuery(void);
BOOLEAN ReadWriteConflict(INT8U WrSecotr);
void ReceiveQueryTerm(INT8U *Data,INT8U Len);
BOOLEAN NetCancelBlkQuery(INT8U *Data,INT8U Len);
void HstGetBlk(INT8U Type);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -