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

📄 dispatch.h

📁 基于嵌入式linux下
💻 H
字号:
/******************************************************************************
	This head file is used to define sth about DISPATCH proc.
*******************************************************************************
***/
#ifndef	_DISPATCH_H
#define _DISPATCH_H

//struct tm {
//        int tm_sec;     /* 秒 – 取值区间为[0,59] */
//        int tm_min;     /* 分 - 取值区间为[0,59] */
//        int tm_hour;    /* 时 - 取值区间为[0,23] */
//        int tm_mday;    /* 一个月中的日期 - 取值区间为[1,31] */
//        int tm_mon;     /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */
//        int tm_year;    /* 年份,其值等于实际年份减去1900 */
//        int tm_wday;    /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */
//        int tm_yday;    /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
//        int tm_isdst;   /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/
//        };
#include "inc.h"        
#include <sys/socket.h> /* for socket(), connect(), sendto(), and recvfrom() */
#include <sys/ioctl.h>
#include <net/if.h>
#include <net/if_arp.h>
#include <arpa/inet.h> /* for sockaddr_in and inet_addr() */

#define BASE_DATA_ONE(x)	(0xFF & x) 			//
#define BASE_DATA_TWO(x)	((0xFF00 & x)>>8)		  //
#define BASE_DATA_THREE(x)	((0xFF0000 & x)>>16)		//
#define BASE_DATA_FOUR(x)	((0xFF000000 & x)>>24)		//
#define BACK_DATA_ONE(x)	(x & 0xFF) 			//
#define BACK_DATA_TWO(x)	((x	& 0xFF) <<8)	  //
#define BACK_DATA_THREE(x)	((x & 0xFF) <<16)		//
#define BACK_DATA_FOUR(x)	((x & 0xFF) <<24)		//

#define DISPATCH_READ_TIMEOUT	-2
#define DISPATCH_READ_UNERROR	-1					//DISPATCH red unknown error
#define DISPATCH_READ_SUCCESS	0
#define MAX_GPS_PACKAGE	    10		    //GPS信息包的最小长度
#define HEAD_GPS_PACKAGE	0x7E		//GPS信息包的开始和结束标识
#define ECHOMAX 512     				/* Longest string to echo */
#define RECORDMAX 10000					//本地存储的最长的记录数
#define GPS_RECORD_LEN		26
#define APC_RECORD_LEN		36
#define CR_RECORD_LEN		20

typedef struct
{
	char	         BeginEnd;		  //报文的标识符号
	char             ByteLength;      //设备编号得长度
	char             SerialNum[12];    //设备编号ID		//
	char             AppType;         //应用类型
	char             OperationNo;     //操作编码
	unsigned short   SerialNo;        //报文序号
	char             DataType;        //报文的标识位
	unsigned short   DataLength;      //数据区数据长度
	char             DataIP[15];      //注册IP
	unsigned short   DataPort;         //注册端口
	char	         ContentType;	  //消息类型
	char             DataContent[ECHOMAX];       //消息内容
	unsigned short   CheckFlag;       //校验位
} Package_Info;             //报文的标识部分

typedef struct 
{
	char infotype[1];
	char infoid[5];
	char shorttime[6];
	char content[ECHOMAX];
} GPS_Txt_Info;        //写入文本文件的GPS信息格式

typedef struct 
{
	char infotype[3];
	char content[32];
} GPS_Menu_Info;      //写入文本文件的GPS信息格式

char *Dispatch_DataIP;       //本地IP地址
char *GPSID_Send;			 //SIM卡号
Package_Info CurDispatch_SendInfo[ECHOMAX];  //发送数据列表
static unsigned short staticSendSeriNO; //报文序号
Dispatch_Info *CurDispatch_Info;		//the real info of local
KeyB_Info *CurKeyB_Info;	//the point to the share mem
GPS_Info *CurGPS_Info;
unsigned int Offset_UnSendGPS;	//the offset record in GPS file where begin send
unsigned int Offset_SendGPS;	//the offset record in GPS file where begin save
unsigned int Offset_UnSendAPC;	//the offset record in Passenger file where begin send
unsigned int Offset_SendAPC;		//the offset record int Passenger file where begin save
unsigned int Offset_UnSendCR;	//the offset record in carstate file where begin send
unsigned int Offset_SendCR;		//the offset record in carstate file where begin save

unsigned int GPS_FileSize;		//the filesize of the GPS File record
unsigned int APC_FileSize;		//the filesize of the APC File record
unsigned int CR_FileSize;		
int GPS_fd,APC_fd,CR_fd;							//the file description of the GPS file,APC file,Carstate Record file
unsigned short SpeedPoint;		//速度限定
unsigned short Waitresp;		//是否在等应答
int	WaitTime_S;				//静止时的GPS数据发送周期
int WaitTime_M;				//移动时的GPS数据发送周期


//busDispatch.c
int Select_Read(int fd,int WaitTime,struct sockaddr_in echoClntAddr);

//sockIP.c
int PPP_Status( void );

//execFile.c
int DISPATCH_Exec(const char *pathname);

//txtFile.c
int DISPATCH_TxtFile(const char *pathname,GPS_Txt_Info *GPSTxtInfo,int intLine,char *WriteType,unsigned short MsgID);
int DISPATCH_TxtFileR(const char *pathname,char *ContenMent);
int DISPATCH_MenuFile(const char *pathname,GPS_Menu_Info *GPS_MenuInfo,int intLine,char *WriteType);

//packageDeal.c
void ConvertData(char *dataByte,char *rDataByte,int charLen);
void CInt16ToBytes(unsigned short bytedata,char *rbytesData);
void CInt32ToBytes(unsigned int bytedata,char *rbytesData);
unsigned short BytesToUshort(char *bytesdata,int index);
unsigned int BytesToUInt(char *bytesdata,int index);
void NumtoStr(const unsigned long Num,char *target,int intLength);
int NumtoStrL(const unsigned long Num,char *target);

int CheckData(char *ReadByteData,int dataLen);

unsigned short GetCheckData(char *bytedatas,int dataLen);

int RegesterInfo(int sockFD,Package_Info commInter,struct sockaddr_in echoServAddr);
int SocketSendInfo(int sockFD, Package_Info commInter,struct sockaddr_in echoServAddr);
int RepeatSendInfo(int sockFD, Package_Info commInter,struct sockaddr_in echoServAddr);

void Deal_SendInfo(Package_Info SendInfo,int SendType);

void OnRecievedData(char *respString,int respStringLen,struct sockaddr_in echoClntAddr,int fd);

void ProcessCmdList(byte *bReceiveBuffer,struct sockaddr_in echoClntAddr,int bReceiveLength,int fd);

int SendMessageCreate(Package_Info commInter,char *RecvDataAll);

int EnESC(char *bytes,char *respString,int StringLen);

int DeESC(char *bytes,char *respString,int StringLen);

void GPSFileInit(void);
void APCFileInit(void);
void CRFileInit(void);
void SaveGpsInfo(char *data);	
int GetFileGpsInfo(char *data);
int GetFileSize(char *FName);
char *GetGpsHisData(time_t start,time_t end,int *num);
char *GetAPCHisData(time_t start,time_t end,int *num);
char *GetCRHisData(time_t start,time_t end,int *num);
void GpsSendOK();
void APCSendOK();
void CRSendOK();

#endif	/*  _DISPATCH_H   */

⌨️ 快捷键说明

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