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

📄 tools.h

📁 在ARM7和UC/OSII的平台上实现了GPS自动报站的功能,涉及GPS模块LEA_4S的驱动,位置速寻算法,语音芯片ISD4004的录放音驱动,LED页面管理等等.从启动代码到操作系统的移植以及到业
💻 H
字号:
/****************************************************************
**                                                              *
**  FILE         :  Tools.H                                     *
**  COPYRIGHT    :  (c) 2001 .Xiamen Yaxon NetWork CO.LTD       *
**                                                              *
**                                                              *
**  By : CCH 2002.1.15                                          *
****************************************************************/
#ifndef DEF_TOOLS
#define DEF_TOOLS

#include "structs.h"


/*
********************************************************************************
*                  DEFINE PARAMETERS
********************************************************************************
*/
#define STR_EQUAL                           0
#define STR_GREAT                           1
#define STR_LESS                            2

#define MODE_CODE7                          0
#define MODE_CODE8                          1

#define CASESENSITIVE                       0

INT16U GetMod(INT16U tmp, INT8U t);
INT8U GetRs(INT16U mod, INT8U t);
INT8U   GetChkSum_IP(INT8U *dptr, INT16U len);   //yyy

void    MovXX(INT8U *dptr, INT8U *sptr, INT16U len);
void    MovStr(INT8U *dptr, char *sptr);
void    InitBuf(INT8U *dptr, INT8U initdata, INT16U len);
INT8U   GetChkSum(INT8U *dptr, INT16U len);
INT8U   GetChkSum_N(INT8U *dptr, INT16U len);
INT8U   GetChkSum_C(INT8U *dptr, INT16U len);
INT8U   GetChkSum_7C(INT8U *dptr, INT16U len);
void    ConvertData(INT8U *dptr, INT16U len, INT8U ddata, INT8U sdata);
BOOLEAN CmpString_Byte(INT8U *ptr, INT16U len, INT8U cb);
INT8U   CmpString(INT8U *ptr1, INT8U *ptr2, INT16U len);
INT8U   ACmpString(BOOLEAN matchcase, INT8U *ptr1, INT8U *ptr2, INT16U len1, INT16U len2);

INT16U  Bit7ToOctet(INT8U *dptr, INT8U *sptr, INT16U len);
INT16U  OctetToBit7(INT8U *dptr, INT8U *sptr, INT16U len, INT8U leftbit);
INT8U   HexToChar(INT8U sbyte);
INT8U   CharToHex(INT8U schar);
INT8U   SemiOctetToChar(INT8U sbyte);
INT8U   CharToSemiOctet(INT8U schar);
INT8U   DecToAscii(INT8U *dptr, INT32U data, INT8U reflen);
INT16U  AsciiToDec(INT8U *sptr, INT8U len);
INT16U  HexToAscii(INT8U *dptr, INT8U *sptr, INT16U len);
INT16U  HexToDec(INT8U *dptr, INT8U *sptr, INT16U len);
INT16U  AsciiToHex(INT8U *dptr, INT8U *sptr, INT16U len);
void    SemiOctetToHex(INT8U *dptr, INT8U *sptr, INT16U len);
INT16U  SemiOctetToAscii(INT8U *dptr, INT8U *sptr, INT16U len);
INT16U  AsciiToSemiOctet(INT8U *dptr, INT8U *sptr, INT16U len);
void    GetLocalTimeFromGMT(DATE_STRUCT *dptr, TIME_STRUCT *tptr, INT8U diftime);

BOOLEAN SearchDataInMem(INT8U *bptr, INT16U blen, INT8U *sptr, INT16U slen);
BOOLEAN SearchKeyWord(INT8U *ptr, INT16U maxlen, char *sptr);
BOOLEAN SearchKeyWordFromHead(INT8U *ptr, INT16U maxlen, char *sptr);
INT16U  SearchDigitalString(INT8U *ptr, INT16U maxlen, INT8U flagchar, INT8U numflag);
INT16U  SearchString(INT8U *dptr, INT16U limitlen, INT8U *sptr, INT16U maxlen, INT8U flagchar, INT8U numflag);

INT16U  FindCharPos(INT8U *sptr, char findchar, INT8U numchar, INT16U maxlen);
void    AddGpsData(INT8U *result, INT8U *data1, INT8U *data2);
BOOLEAN DecGpsData(INT8U *result, INT8U *data1, INT8U *data2);
BOOLEAN ShieldHighBit(INT8U *data);

INT16U  Code6_To_CodeX(INT8U mode, INT8U *dptr, INT8U *sptr, INT16U len);
INT16U  CodeX_To_Code6(INT8U mode, INT8U *dptr, INT8U *sptr, INT16U len, INT16U limitlen);
INT16U  DecodeTellen(INT8U *sptr, INT16U len);
INT16U  DecodeTel(INT8U *dptr, INT8U *sptr, INT16U len);
void    EncodeTel(INT8U *dptr, INT8U *sptr, INT16U len, INT16U maxlen);
BOOLEAN FindProcEntry(INT16U index, FUNCENTRY_STRUCT *funcentry, INT16U num);

BOOLEAN Add_Thousand(INT16U *add1, INT16U *add2, INT8U len1, INT8U len2);
BOOLEAN Dec_Thousand(INT16U *dec1, INT16U *dec2, INT8U len1, INT8U len2);
void    Mul_Thousand(INT16U *result, INT16U mul1, INT16U mul2);
INT8U   ThousandToAscii(INT8U *ptr, INT16U opdata);

INT16U  AssembleByRules(INT8U *dptr, INT8U *sptr, INT16U len, ASMRULE_STRUCT *rule);
INT16U  DeassembleByRules(INT8U *dptr, INT8U *sptr, INT16U len, ASMRULE_STRUCT *rule);

BOOLEAN DateValid(DATE_STRUCT *date);
BOOLEAN TimeValid(TIME_STRUCT *time);
BOOLEAN LongitudeValid(INT8U *longitude);
BOOLEAN LatitudeValid(INT8U *latitude);
#if 1
BOOLEAN NeedRoundLine(INT8U *ptr, INT16U len);
#endif
INT16S  PlotLinePos(INT8U *textptr, INT16U textlen, INT16U *linepos, INT16U maxline, INT16U linesize);
INT16U  InsertEditBuf(INT8U *ptr, INT16U len, INT16U pos, INT16U ch);
INT8U   DelEditBuf(INT8U *ptr, INT16U len, INT16U pos);
void    WriteWordByPointer(INT8U *ptr, INT16U wdata);
INT16U  ReadWordByPointer(INT8U *ptr);
INT8U   FormatYear(INT8U *ptr, INT8U year, INT8U month, INT8U day);
INT8U   FormatTime(INT8U *ptr, INT8U hour, INT8U minute, INT8U second);

/* add by qzc */
#define  MISS		   0
#define  OVERLAP       1
#define  SUBCLASS      2
#define  VACUUM        3

INT8U   GetSmall(INT8U Data1,INT8U Data2);
INT8U   CmpData(INT8U *Buf1,INT8U *Buf2,INT8U Len1,INT8U Len2);
BOOLEAN IsInRange(INT8U Data,INT8U Low,INT8U High);
//(A In B=SUBCLASS)
INT8U   RangeRelation(INT8U *A1,INT8U *A2,INT8U *B1,INT8U *B2,INT8U Len);
INT16U  Code8_To_Code7(INT8U *Dptr,INT8U *Sptr,INT16U Len,INT16U LimitLen);
INT16U  Code7_To_Code8(INT8U *Dptr,INT8U *Sptr,INT16U Len);

INT8U   BitValue(INT8U Data,INT8U Index);
BOOLEAN IsZero(INT8U *Ptr,INT8U Len);

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -