seg-database-c/inc/trans.h
2026-07-10 17:53:18 +08:00

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