48 lines
1.4 KiB
C
48 lines
1.4 KiB
C
#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 |