⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 blkquery.h

📁 在ARM7和UC/OSII的平台上实现了GPS自动报站的功能,涉及GPS模块LEA_4S的驱动,位置速寻算法,语音芯片ISD4004的录放音驱动,LED页面管理等等.从启动代码到操作系统的移植以及到业
💻 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 + -