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

📄 public.h

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

#include "includes.h"
#include "bsp.h"
#include "structs.h"
#include "flashimg.h"



#define _PUBLIC_FLASHSECTOR             328
#define _PUBLIC_BKFLASHSECTOR           329


#ifndef PUBLIC_GLOBALS
#define _PUBLIC_EXT                     extern
#else
#define _PUBLIC_EXT
#endif

/*
********************************************************************************
*                  DEFINE CONFIG PARAMETERS
********************************************************************************
*/

#define MAX_PULSPINS                        3

#define MAX_PULSSAMPLE                      2

/*
********************************************************************************
*                  DEFINE PULS_STRUCT
********************************************************************************
*/
typedef struct {
    INT8U       ct_low;
    INT8U       ct_high;
} PULS_STRUCT;

/*
********************************************************************************
*                  DEFINE WAVE_STRUCT
********************************************************************************
*/
typedef struct {
    INT8U       ct_puls;
    PULS_STRUCT puls;
} WAVE_STRUCT;
/*
********************************************************************************
*                  DEFINE CONFIG PARAMETERS
********************************************************************************
*/

#define MAX_TIMEPOS                         10
#define MAX_ADOBJ                           15
#define MAX_PEAK                            6
#define MAX_DRIVER                          10
#define DRIVEASCIINUM                       8
/*
********************************************************************************
*                  DEFINE PUBLIC PARAMETERS TYPE
********************************************************************************
*/

#define RESETREC_                            4
#define OLDGPSPOS_                           0
#define PULSSAMPLE_                          5
#define TIMEPARA_                            1
#define VTPARA_                              2
#define RECPARA_                             3
#define LINENUM_                             6
#define CURSTATBL_                           7
#define SPECIALSTA_                          8
#define ADVOICEID_                           9
#define HITCHOICE_                           10
#define ADOBJ_                               11
#define VOLUME_                              12
#define TIMESEC_                             13
#define KEYSOUND_                            14
#define DRIVELOG_                            15

/*
********************************************************************************
*                  DEFINE PUBLIC PARAMETERS STRUCTURE
********************************************************************************
*/


typedef PACKED struct {
    INT8U       chksum;
    INT8U       nReset;                         /* number of reset */
    INT8U       nExtWDT;                        /* number of reset by external watchdog */
    INT8U       nIntWDT;                        /* nunber of reset by internal watchdog */
    INT8U       nException;                     /* number of reset by exception */
    INT8U       RecPos;
    INT16U      ErrRecord[MAX_ERRRECORD];
} RESETREC_STRUCT;


typedef PACKED struct {
    INT8U           chksum;
    INT8U           latitude[9];
    INT8U           longitude[10];
    INT8U           utc_tow[8];
    INT16U          gpsweek;
    INT16S          height;
} OLDGPSPOS_STRUCT;


typedef PACKED struct {
   INT8U     chksum;
   INT8U     Year;
   INT8U     Month;
   INT8U     Day;
   INT8U     Flag;
} CHECKALARM_STRUCT;


typedef PACKED struct{
    INT8U       chksum;
    BOOLEAN     isvalid[MAX_PULSSAMPLE];
    WAVE_STRUCT wave[MAX_PULSSAMPLE][MAX_PULSSAMPLE];
} PULSSAMPLE_STRUCT;


typedef PACKED struct
{
   INT8U        ChkSum;
   INT8U        Status;
   INT8U        LimitVector;
}VTPOSPARA;

typedef PACKED struct
{
   INT8U        ChkSum;
   INT8U        status_time;
   INT8U        status_pos;
   INT8U        nums;
   INT8U        Adid_time;
   INT8U        Adid_pos;
}ADVOICEIDPARA;

typedef PACKED struct
{
   INT8U        ChkSum;
   INT8U        Hit_id;
}HITCHOICEPARA;


typedef PACKED struct
{
   INT8U        ChkSum;
   INT8U        Status;
   INT8U        Hour[MAX_TIMEPOS];
   INT8U        Minute[MAX_TIMEPOS];
}TIMEPOSPARA;


typedef PACKED struct {
    INT8U       ChkSum;
    INT8U       recnum;
    BOOLEAN     res_enable;
} RECPARA_STRUCT;

typedef PACKED struct {
    INT8U      ChkSum;
    INT16U     linenumber;                            //  公交线路号 如809路,22路
    INT16U     index;                                 //  数据库索引 
}LINENUMBER;

typedef PACKED struct {
    INT16U     Stanum;                                // 站点号
    INT16U     AD_id;                                 // 语音段ID
}STATABLE;

typedef PACKED struct {
    INT8U      ChkSum;
    INT16U     nums_up;                               // 上行站点数
    INT16U     nums_down;                             // 下行站点数
    STATABLE   sta_line[100];                       
}CURSTA_TABLE;


typedef PACKED struct {
    INT8U      ChkSum;
    INT16U    start_sta1;
    INT16U    start_sta2;
    INT16U    end_sta1;
    INT16U    end_sta2;
}SPECIALSTA_STR;

typedef PACKED struct{
        INT8U        latitude[4];
        INT8U        longitude[4];
}POS_STRUCT;

typedef PACKED struct {
    
    INT8U      AD_id;
    INT8U      status;
    POS_STRUCT pos;
}AD_OBJ;

typedef PACKED struct {
    INT8U         ChkSum;
    INT8U         nums;
    AD_OBJ    object[MAX_ADOBJ];
}ADOBJ_STR;

typedef PACKED struct {
    INT8U        ChkSum;
    INT8U        CurTimeSec;   // 当前时段 
    INT8U        normal;       // 正常时段
    INT8U        peak;         // 高峰时段
    INT8U        night;        // 夜间时段
}VOLUME_STR;

typedef PACKED struct {
    TIME_STRUCT  btime;
    TIME_STRUCT  etime;
}TIMEZONE;

typedef PACKED struct {
    INT8U       ChkSum;
    INT8U       peaknums;
    TIMEZONE    timesec_peak[MAX_PEAK];
    TIMEZONE    timesec_night;
}TIMESEC_STR;

typedef PACKED struct {
     INT8U  chksum;
     INT8U  keysound_switch;
}KEYSOUND_STRUCT;



typedef  PACKED struct{
   INT8U  Valid;
   INT16U DriveNum;
   INT8U  DriveAsciiNum[DRIVEASCIINUM];
   }DRIVER_STRUCT;

typedef PACKED struct{
   INT8U    ChkSum;
   INT8U    TotalNum;
   INT16U   Team;
   DRIVER_STRUCT DriverInfo[MAX_DRIVER];
}VEHICLE_DRIVERREOCRD;

/*
********************************************************************************
*                  DEFINE PUBLIC PARAMETERS
********************************************************************************
*/
#define _PUBLIC_SEG1                         (_PUBLIC_MEMBASE + 0x00)
#define _PUBLIC_SEG2                         (_PUBLIC_MEMBASE + 0x700)

#ifdef PUBLIC_GLOBALS
#pragma arm section zidata="PubResMem_PARA"
INT8U PubResMem[SIZE_FLASHID];
#pragma arm section 

#pragma arm section zidata="ResetRec_PARA"
RESETREC_STRUCT ResetRec;
#pragma arm section

#pragma arm section zidata="OLDGPS_PARA"
OLDGPSPOS_STRUCT OldGpsPos;
#pragma arm section

#pragma arm section zidata="PulsSample_PARA"
PULSSAMPLE_STRUCT PulsSample;
#pragma arm section

#pragma arm section zidata="TimePosPara_PARA"
TIMEPOSPARA TimePosPara;
#pragma arm section

#pragma arm section zidata="VTPosPara_PARA"
VTPOSPARA VTPosPara;
#pragma arm section

#pragma arm section zidata="RECPARA_PARA"
RECPARA_STRUCT RecPara;
#pragma arm section

#pragma arm section zidata="LINENUM_PARA"
LINENUMBER LineNumPara;
#pragma arm section

#pragma arm section zidata ="CURSTATAL_PARA"
CURSTA_TABLE Curstation_Tbl;
#pragma arm section

#pragma arm section zidata ="SPECAILSTA_PARA"
SPECIALSTA_STR SpecailStation;
#pragma arm section
#pragma arm section zidata ="ADVOICEID_PARA"
ADVOICEIDPARA  AdVoiceIDPara;
#pragma arm section

#pragma arm section zidata ="HITCHOICE_PARA"
HITCHOICEPARA  HitChoicePara;
#pragma arm section

#pragma arm section zidata = "ADOBJECT_PARA"
ADOBJ_STR      AdObjectPara;
#pragma arm section

#pragma arm section zidata = "VOLUMECONROL_PARA"
VOLUME_STR     VolumeControl;
#pragma arm section
#pragma arm section zidata = "TIMESEC_PARA"
TIMESEC_STR    TimeSec;
#pragma arm section
#pragma arm section zidata = "KEYSOUNDSWITCH_PARA"
KEYSOUND_STRUCT KeySound_Swtich;
#pragma arm section
#pragma arm section zidata = "VEHICLEDRIVER_PARA"
VEHICLE_DRIVERREOCRD  VehicleDriver;
#pragma arm section
#else 
extern   INT8U PubResMem[SIZE_FLASHID];
extern   RESETREC_STRUCT ResetRec;
extern   OLDGPSPOS_STRUCT OldGpsPos;
extern   PULSSAMPLE_STRUCT PulsSample;
extern   TIMEPOSPARA      TimePosPara;
extern   VTPOSPARA       VTPosPara;
extern   RECPARA_STRUCT RecPara;
extern   LINENUMBER     LineNumPara;
extern   CURSTA_TABLE   Curstation_Tbl; 
extern   SPECIALSTA_STR SpecailStation;
extern   ADVOICEIDPARA  AdVoiceIDPara;
extern   HITCHOICEPARA  HitChoicePara;
extern   ADOBJ_STR      AdObjectPara;
extern   VOLUME_STR     VolumeControl;
extern   TIMESEC_STR    TimeSec;
extern   KEYSOUND_STRUCT KeySound_Swtich;
extern   VEHICLE_DRIVERREOCRD  VehicleDriver;  
#endif 

/*
********************************************************************************
*                  DEFINE PUBLIC PARAMETERS TABLE
********************************************************************************
*/

#ifdef PUBLIC_GLOBALS

static   VOLUME_STR            i_VolumeControl = {0,1,4,4,4};  
static   TIMESEC_STR           i_TimeSec       = {0,
                                                  3,
                                                  7,30,0,9,0,0,
                                                  11,30,0,14,30,0,
                                                  17,0,0,19,30,0,
                                                  21,0,0,23,30,0
                                                 };
static  VEHICLE_DRIVERREOCRD   i_VehicleDriver ={
                                                  0,
                                                  4,
                                                  21,
                                                  TRUE,1234,0x31,0x32,0x33,0x34,0x20,0x20,0x20,0x20,
                                                  TRUE,1111,0x31,0x31,0x31,0x31,0x20,0x20,0x20,0x20,
                                                  TRUE,2222,0x32,0x32,0x32,0x32,0x20,0x20,0x20,0x20,
                                                  TRUE,3333,0x33,0x33,0x33,0x33,0x20,0x20,0x20,0x20,
                                                  
                                                };
                                                  
typedef struct {
    INT8U     *ptr;
    INT8U     *i_ptr;
    INT16U     len;
} PUBTBL_STRUCT;


static PUBTBL_STRUCT PubTbl[] = {
      
                                  (INT8U *)&OldGpsPos,          0,                          	sizeof(OLDGPSPOS_STRUCT),
                                  (INT8U *)&TimePosPara,        0,                         		sizeof(TIMEPOSPARA),
                                  (INT8U *)&VTPosPara,          0,                          	sizeof(VTPOSPARA),
                                  (INT8U *)&RecPara,            0,                              sizeof(RECPARA_STRUCT),
                                  (INT8U *)&ResetRec,           0,                              sizeof(RESETREC_STRUCT),
                                  (INT8U *)&PulsSample,         0,                              sizeof(PULSSAMPLE_STRUCT),
                                  (INT8U *)&LineNumPara,        0,                              sizeof(LINENUMBER),
                                  (INT8U *)&Curstation_Tbl,     0,                              sizeof(CURSTA_TABLE),
                                  (INT8U *)&SpecailStation,     0,                              sizeof(SPECIALSTA_STR),
                                  (INT8U *)&AdVoiceIDPara,      0,                              sizeof(ADVOICEIDPARA),
                                  (INT8U *)&HitChoicePara,      0,                              sizeof(HITCHOICEPARA),
                                  (INT8U *)&AdObjectPara,       0,                              sizeof(ADOBJ_STR),
                                  (INT8U *)&VolumeControl,      (INT8U *)&i_VolumeControl,      sizeof(VOLUME_STR),
                                  (INT8U *)&TimeSec,            (INT8U *)&i_TimeSec,            sizeof(TIMESEC_STR),
                                  (INT8U *)&KeySound_Swtich,    0,                              sizeof(KEYSOUND_STRUCT),
                                  (INT8U *)&VehicleDriver,      (INT8U *)&i_VehicleDriver,      sizeof(VEHICLE_DRIVERREOCRD)
                                  
                                };


#endif


/*
********************************************************************************
*                  DEFINE PUBLIC FUNCTIONS PROTOTYPE
********************************************************************************
*/

BOOLEAN PubParaValid(INT16U ParaID);
void            InitPubPara(BOOLEAN update, INT16U ParaID);
void            VirStorePubPara(INT16U ParaID);
void            StorePubPara(INT16U ParaID);
void            ClearPubPara(INT16U ParaID);
void            StoreAllPubPara(void);
void            InitAllPubPara(void);
void            VirResumeAllPubPara(void);
void            ResumeAllPubPara(void);

#endif

⌨️ 快捷键说明

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