#ifndef _TRANS_H_ #define _TRANS_H_ #ifndef _THREADPOOL_H_ #include "threadpool.h" #endif typedef struct { unsigned char LENGTH[2]; unsigned char HEADER[8]; unsigned char COMMAND[2]; unsigned char data[8192]; } TRD_PKG_ST; typedef struct { TRD_PKG_ST send_pkg_st; TRD_PKG_ST recv_pkg_st; char cmd[3]; int deal_time; int task_ret; int task_flag; int connect_idex; } TRD_PKG_THREADPOOL_ST; int Get_retcode(TRD_PKG_ST *pkg); unsigned int Get_sn(TRD_PKG_ST *pkg); char *Get_cmd(TRD_PKG_ST *pkg); int Get_length(TRD_PKG_ST *pkg); void Set_sn(TRD_PKG_ST *pkg, unsigned int sn); void Set_cmd(TRD_PKG_ST *pkg, char *cmd); void Set_length(TRD_PKG_ST *pkg, int length); int Packet_Recv(int fd, TRD_PKG_ST *pkg, int pkgsize); int Packet_Send(int fd, TRD_PKG_ST *pkg, int pkgsize); void SetDataLength(int iInData, unsigned char* pcOutData); int GetDataLength(unsigned char* pcInData); /*非阻塞-线程回调-主备模式*/ int TP_Process_NoBlock_Standby(char *cmd, TRD_PKG_ST *send_pkg, TRD_PKG_ST *recv_pkg, void *device, int deal_time); /*非阻塞-非线程回调-主备模式*/ int TP_Process_NoBlock_Ordinary(char *cmd, TRD_PKG_ST *send_pkg, TRD_PKG_ST *recv_pkg, STC_CONNECT_INFO *connect_info, int *connect_idex, int device_count, int deal_time); int TP_Process_NoBlock(threadpool_t *threadpool, pthread_mutex_t *threadpool_mutex, TRD_PKG_THREADPOOL_ST *pkg_threadpool_st, int pkg_number); #endif