📄 public.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 + -