?? dispatch.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 + -