📄 global.h
字号:
#ifndef GLOBAL_HEADER
#define GLOBAL_HEADER
#include "typedef.h"
#define MAX_STATIONNAME_SIZE 16//站点名称的最大空间
#define MAX_LINENAME_SIZE 20//线路名称
#define TONETIMESIZE 9
#define MAX_STATIONID_SIZE 4//站台ID的空间
#define MAX_CUR_FIXNUM 50//当前固定短语的最大数目
#define MAX_TONEPOINTER_NUMBER 512//语音指针的个数
#define MAX_TONEARRAY_SIZE 2048//语音串指针的空间
#define MAX_TONEARRAY_NUMBER 512//语音串的最大个数
/***********************行车方向 ****************/
#define BUS_UPWARD 0/*上行*/
#define BUS_BACKWARD 1/*下行*/
/***********************到站或出站**************/
#define FIRST_STATION 2//首站
#define CURRENT_STATION 0//本站
#define NEXT_STATION 1//下一站
/*************************GPS连接状态**************************/
#define GPS_MODELE_ERROR 0//模块故障
#define GPS_ANTENNA_OPEN 1//天线开路
#define GPS_ANTENNA_CLOSE 2 //天线短路
#define GPS_ANTENNA_WELL 8 //模块工作正常
/************************PPP连接状态**********************/
#define PPP_CONECTTING 0//ppp未连接
#define PPP_CONECTTED 1//ppp连接成功,但与监控中心未连接成功
#define PPP_CONECTTOCENTER 2//与监控中心建立连接
#define PPP_VOICE 3//正在进行语音通话
typedef enum _broad_mode
{
AUTO_BROAD = 0,
MANUAL_BOARD,
FORCE_BOARD //强制自动报站
}BROAD_MODE;
typedef enum _alarm_mode
{
NOALARM = 0,//没有报警
ALARMING//正在报警
}ALARM_MODE;//报警模式
typedef enum _msg_status
{
NOMSG = 0,
MSGINCOMING
}MSG_STATUS;
/*****定义终端当前状态***********************/
typedef enum _term_status
{
TERM_PROGRAMUPDATING = 0, /*正在更新程序*/
TERM_TONEUPDATING, /*正在更新语音*/
TERM_NORMAL /*正常状态*/
}TERM_STATUS;
/****************车辆运营模式***************/
typedef enum _run_mode
{
RUN_NOSTATUS = 0,//状态未知
RUN_NORMAL, //正常营运
RUN_NOTASK, //非运营
RUN_TOFACTORY, //回厂
RUN_REPAIR, //检修
RUN_GAS, //加油
RUN_ENBUS //包车
}RUN_MODE;
#define DEVICEID_LEN 3
typedef struct _DEVICEINFO_STRUCT_
{
unsigned char softVer;
unsigned char hardVer;
unsigned char deviceId[DEVICEID_LEN];
unsigned char softDate[3];
unsigned char softTime[3];
} DEVICEINFO;//设备信息
#define IPADDR_LEN 6
typedef struct _system_info
{
unsigned char bootStatus; /*0:冷启动 1:热启动*/
unsigned char coldCount; /*冷启动计次*/
unsigned char hotCount; /*热启动计次*/
Byte startStatus;//启动状态:HOT_START热启动;COOL_START冷启动
Byte gpsState;//GPS数据状态
Byte gprsState;//GPRS状态
Byte volume;//内外喇叭音量大小,值为1-8,8最大,1最小
BROAD_MODE boardMode;//报站方式
RUN_MODE runMode;//当前运营模式:运营、无任务、回厂、检修、加油、包车
Byte landFlag;//是否注册上标记,1表示注册上,0表示没有注册上
Byte speedHold;//限速值
Byte curSpeed;
TERM_STATUS termStatus;//终端当前状态
/*以下是为了实现准时更新所设置,时间保存采用二进制编码*/
Byte year;
Byte mon;
Byte day;
Byte hour;
Byte min;
Byte sec;
/*定义在原来主机上的变量*/
unsigned int autoSendTime; /*位置信息发送时间间隔*/
unsigned char onlineTime; /*心跳包发送时间间隔*/
unsigned char arriveMeter;
unsigned char leftMeter;
unsigned char ipAddr[IPADDR_LEN];//前面4个字节为IP地址;后面2个字节为端口
}SYSTEM_INFO;
/*************************车辆当前信息****************/
#define BUSID_LEN 7
#define DRIVERID_LEN 4
typedef struct _bus_info
{
Byte toneFormat;
Byte sampleRate;
Byte id[4];//lineid
Byte modeNum;//模式号,值从1开始
Byte lineName[MAX_LINENAME_SIZE];
Byte direction;//BUS_UPWARD 0/*上行*/;BUS_BACKWARD 1/*下行*/
Byte displayCurStation;//界面上需要显示的站点序号,来源于原终端的curStation
Byte tranCurStation;//在发送到中心时的站点序号,来源于原主机的curStation
Byte attrStation;//站点属性,FIRST_STATION表示第一站,如果值为CURRENT_STATION,显示本站,如果值为NEXT_STATION,值为下一站
Byte xdata* stationName;//当前站点名称,指向具体的名字.在界面上显示的名字
Byte lastStation[2];//当前模式下的终点站序号
Byte firstStation[2];//当前模式下的首站序号
// Byte mode[128];//将此元素去掉,并定义在全局变量positionMode中
Byte lineNum;//线路号,取值从1-6
Byte lineAttr;//线路属性
Byte toneTime[TONETIMESIZE];
Byte version;//语音版本
unsigned char busId[BUSID_LEN];
unsigned char driverID[DRIVERID_LEN];
unsigned char stationState; /*0:行驶中 1:进站 2:出站*/
unsigned int totalPassenger;
unsigned char upPassenger;
unsigned char downPassenger;
}BUS_INFO;
typedef struct _POSITIONINFO_STRUCT_
{
long latitude; /*纬度,0.0001分,正表示北纬*/
long longitude; /*经度,0.0001分,正表示东经*/
unsigned char value; /*1-63:上行车站号 65-127:下行车站号 130:下坡 131:拐弯*/
unsigned char speed; /*速度限制值*/
} POSITIONINFO;
/************终端参数存放数据结构***/
typedef struct _line_para
{
Byte lineName[MAX_LINENAME_SIZE];//线路名称
Byte lineID[4];//线路ID
}LINE_PARA;
typedef struct _term_para
{
Byte curLine;//当前线路
LINE_PARA line[6];//6条线路
}TERM_PARA;
#define TERM_PARA_VALID 1//正确获取到
#define TERM_PARA_INVALID 0xff//尚没有开始获取
#define TERM_PARA_REQUEST 3//正在获取中
#define SIM_CARD_LEN 20//cj add
typedef struct _simcard_info
{
unsigned char validFlag;//值取TERM_PARA_VALID或TERM_PARA_INVALID或TERM_PARA_REQUEST
unsigned char card[SIM_CARD_LEN];
}SIMCARD_INFO;
typedef struct _station_tone
{
Byte name[MAX_STATIONNAME_SIZE];
Uint8 stopTone;//停靠站
Uint8 startTone;//起步语
Uint8 arriveTone;//到站语
Uint8 startAccTone;//起步伴音
Uint8 arriveAccTone;//到站伴音
Byte id[MAX_STATIONID_SIZE];//站台ID
}STATION_TONE;
/******************************按键类型*******************/
typedef enum _key_type
{
KEY_ARRIVE = 0,//到站
KEY_LEAVE,//离站
KEY_REPEAT,//重复
KEY_LAST,//前一站
KEY_NEXT,//后一站
KEY_CHANGEDIR,//换方向
KEY_TWOTIME//二次进站
}KEY_TYPE;
/********************线路属性**************/
#define NORMAL_LINE 1//常规线路,自动报站时一分钟以后自动换方向
#define CIRCUIT_LINE 3//环线,在自动报站以后不换方向
#define SINGAL_LINE 2//单终点线路,自动报站时半分钟以后自动换方向
#define SIGAL_DIRECTION 4//单方向线路,不允许修改方向
/**************************数据接收响应缓存区域标志************/
typedef enum _response_status
{
RESPONSE_NOUSE = 0, //初始状态,表示当前没有使用到formatBuf
RESPONSE_WAITING, // 等待响应
RESPONSE_TIMEOUT, //超时无响应
RESPONSE_FAILED, //响应数据无效或者响应返回失败
RESPONSE_VALID //响应返回,并且数据有效
}RESPONSE_STATUS;
/***************解析以后的接收内容的存储格式*******************/
//如果数据段中显示应答失败,则id填写消息id,而status填写RESPONSE_FAILED
typedef struct _format_buf
{
RESPONSE_STATUS status;
Word id;//消息ID
Byte timeout;
Byte buf[300];
}FORMAT_BUFFER;
/***********上下班*******************/
#define ACK_DUTY '7'//同意上班
#define NAK_DUTY '8'//不同意上班
#define ACK_OFFDUTY '5'//同意下班
#define NAK_OFFDUTY '6'//不同意下班
/***********营运与非营运*************/
#define ACK_WORK '1'//同意进入营运
#define NAK_WORK '2'//不同意进入营运
#define ACK_CANCELWORK '3'//同意退出营运
#define NAK_CANCELWORK '4'//不同意退出营运
#define MAX_MSGLEN 240
/**消息类型8的解码缓存格式**/
typedef struct _set_workstatus
{
Byte id[4];
Byte status;
Byte len;
Byte content[MAX_MSGLEN];
}SET_WORKSTATUS;
/*************电话本*****************/
#define SIZE_PHONENAME 11
#define SIZE_PHONENUMBER 16
#define MAX_PHONEBOOK 8//最多支持8个电话号码
typedef struct _phonebook_entry
{
Byte name[SIZE_PHONENAME];
Byte number[SIZE_PHONENUMBER];
}PHONEBOOK_ENTRY;
typedef struct _phonebook_list
{
PHONEBOOK_ENTRY entry[MAX_PHONEBOOK];
}PHONEBOOK_LIST;
//打电话时,判断按"确定"或"取消"键后是否要发包上报
#define MENU_NOTINCALLSTATE 0xf0//不在电话状态
#define MENU_ORIGANSTATE 0//原始状态,
#define MENU_ENCAPSULATE 1 //按键后要发包;//正在接听
#define MENU_NORECONNECT 5
#define MENU_NOTENCAPSULATE 7 //按键后返回至运行主界面//已经挂断
#define MENU_CALL2UPPER 18//返回上一级菜单
#define MENU_CALLING 0x20
#define MENU_NOTCONNECTCALL 0x21
/*************************电话通信状态*******************/
#define PHONE_CALLING 0//拨打电话
#define PHONE_LISTENNING 1//接听电话
#define PHONE_HANGUP 2//挂断电话
#define PHONE_DIALED 3 //有电话正在呼入
#define PHONE_CLOSE 4 //对方挂断了电话
//#define PHONE_BUSY 5 //对方电话正忙
//#define PHONE_NOTCONNECT 6 //电话无法接通
#define PHONE_CONNECTTED 7 //呼出电话被接听
//#define PHONE_CANCELRING 8//取消震铃
#define REQUEST_WORK 4//0//请求进入营运
#define REQUEST_CANCELWORK 5//1//请求取消营运
/****定义电子围栏************/
typedef struct _alarm_onezone
{
long Point1X;
long Point1Y;
long Point2X;
long Point2Y;
Byte menuSpeed;
}ALARM_ONEZONE;
#define ALARMZONE_MAXNUMBER 5
typedef struct _alarm_zone
{
Byte timeout;
Byte speedouttime;//超时持续时间
Byte num;
ALARM_ONEZONE zone[ALARMZONE_MAXNUMBER];
}ALARM_ZONE;
//针对小喇叭播放,设计两种类型
#define LITTLESPEAKER_KEY 0//按键提示音,电话,调度也用此声音
#define LITTLESPEAKER_SPEEDALARM 1//超速提示音
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -