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

📄 global.h

📁 通过车载终端采集GPS数据
💻 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 + -