nt9856x/rtos/code/lib/include/EthCam/EthCamSocket.h
2023-03-28 15:07:53 +08:00

101 lines
3.9 KiB
C
Executable File

#ifndef _ETHCAM_SOCKET_H
#define _ETHCAM_SOCKET_H
#include "kwrap/type.h"
#include "kwrap/error_no.h"
#include "EthsockIpcAPI.h"
#include "EthsockCliIpcAPI.h"
#define ETHCAM_LINK_DOWN (0x01) //< link down
#define ETHCAM_LINK_UP (0x02) //< link up
#define ETHCAM_SOCKETCLI_IP_MAX_LEN 16
#ifndef ETHCAM_SOCKETCLI_MAC_MAX_LEN
#define ETHCAM_SOCKETCLI_MAC_MAX_LEN 18
#endif
#define HEAD_TYPE_THUMB 0xff
#define HEAD_TYPE_RAW_ENCODE 0xfe
#define HEAD_TYPE_LONGCNT_STAMP 0xfc
#define LONGCNT_STAMP_OFFSET 16
typedef struct _ETHCAM_SOCKET_BUF_OBJ {
unsigned int ParamAddr;
unsigned int ParamSize;
} ETHCAM_SOCKET_BUF_OBJ ;
typedef struct _ETHCAM_SOCKET_INFO
{
char ip[ETHCAM_SOCKETCLI_IP_MAX_LEN]; ///< ip of the server
UINT32 port[3]; ///< port of the server
char mac[ETHCAM_SOCKETCLI_MAC_MAX_LEN]; ///< mac addr of the server
}ETHCAM_SOCKET_INFO, *pETHCAM_SOCKET_INFO;
typedef enum _ETHSOCK_ID {
ETHSOCKET_DATA1 ,
ETHSOCKET_DATA2 ,
ETHSOCKET_CMD ,
ETHSOCKETCLI_DATA1 ,
ETHSOCKETCLI_DATA2 ,
ETHSOCKETCLI_CMD ,
ETHSOCKET_MAX_NUM,
ENUM_DUMMY4WORD(ETHSOCKET_ID)
} ETHSOCKET_ID;
typedef enum _ETHCAM_PORT_TYPE {
ETHCAM_PORT_DEFAULT, //for cmd port
ETHCAM_PORT_DATA1, //for write file on card port
ETHCAM_PORT_DATA2, //for display port
ETHCAM_PORT_DATA_MAX,
ENUM_DUMMY4WORD(ETHCAM_PORT_TYPE)
} ETHCAM_PORT_TYPE;
typedef enum _ETHCAM_PATH_ID {
ETHCAM_PATH_ID_1, //Tx 1
ETHCAM_PATH_ID_2, //Tx 2
ETHCAM_PATH_ID_MAX,
ENUM_DUMMY4WORD(ETHCAM_PATH_ID)
} ETHCAM_PATH_ID;
#if 1
void EthCamSocket_Open(ETHSOCKIPC_ID id, ETHSOCKIPC_OPEN *pOpen);
void EthCamSocket_Close(void);
void EthCamSocket_SetDataRecvCB(ETHSOCKIPC_ID id, UINT32 value);
void EthCamSocket_SetCmdRecvCB(UINT32 value);
void EthCamSocket_SetDataNotifyCB(ETHSOCKIPC_ID id, UINT32 value);
void EthCamSocket_SetCmdNotifyCB(UINT32 value);
void EthCamSocket_SetInfo(ETHCAM_SOCKET_INFO* info);
#endif
void EthCamSocketCli_InstallID(void) _SECTION(".kercfg_text");
void EthCamSocketCli_UnInstallID(void) _SECTION(".kercfg_text");
void EthCamSocketCli_Open(ETHCAM_PATH_ID path_id, ETHSOCKIPCCLI_ID id, ETHSOCKCLIIPC_OPEN *pOpen);
void EthCamSocketCli_ReConnect(ETHCAM_PATH_ID path_id ,UINT32 socket_id, UINT32 bStart);
UINT32 EthCamSocketCli_ReConnectIsStart(ETHCAM_PATH_ID path_id);
void EthCamSocketCli_Close(ETHCAM_PATH_ID path_id, ETHSOCKIPCCLI_ID id);
void EthCamSocketCli_DataSetRawEncodeBuff(ETHCAM_PATH_ID path_id, ETHSOCKIPCCLI_ID id, ETHCAM_SOCKET_BUF_OBJ *BufObj);
ETHCAM_SOCKET_BUF_OBJ EthCamSocketCli_DataGetRawEncodeBufObj(ETHCAM_PATH_ID path_id, ETHSOCKIPCCLI_ID id);
void EthCamSocketCli_DataSetBsBuff(ETHCAM_PATH_ID path_id, ETHSOCKIPCCLI_ID id, ETHCAM_SOCKET_BUF_OBJ *BufObj);
ETHCAM_SOCKET_BUF_OBJ EthCamSocketCli_DataGetBsBufObj(ETHCAM_PATH_ID path_id, ETHSOCKIPCCLI_ID id);
void EthCamSocketCli_DataSetBsQueueMax(ETHCAM_PATH_ID path_id, ETHSOCKIPCCLI_ID id,UINT32 BsQMax);
UINT32 EthCamSocketCli_DataGetBsQueueMax(ETHCAM_PATH_ID path_id, ETHSOCKIPCCLI_ID id);
void EthCamSocketCli_SetDataRecvCB(ETHCAM_PATH_ID path_id, ETHSOCKIPCCLI_ID id, UINT32 value);
void EthCamSocketCli_SetCmdRecvCB(ETHCAM_PATH_ID path_id, UINT32 value);
void EthCamSocketCli_SetDataNotifyCB(ETHCAM_PATH_ID path_id, ETHSOCKIPCCLI_ID id, UINT32 value);
void EthCamSocketCli_SetCmdNotifyCB(ETHCAM_PATH_ID path_id, UINT32 value);
int EthCamSocket_Send(ETHCAM_PATH_ID path_id, ETHSOCKET_ID id, char* addr, int *size);
void EthCamSocketCli_SetCmdSendSizeCB(ETHCAM_PATH_ID path_id, UINT32 value);
void EthCamSocket_SetEthLinkStatus(ETHCAM_PATH_ID path_id, UINT32 bLink);
UINT32 EthCamSocket_GetEthLinkStatus(ETHCAM_PATH_ID path_id);
UINT32 EthCamSocket_Checksum(UINT8 *buf, UINT32 len);
void EthCamSocketCli_SetSvrInfo(ETHCAM_SOCKET_INFO* info, UINT32 num_info);
void EthCamSocketCli_SetDescSize(ETHCAM_PATH_ID path_id, ETHSOCKIPCCLI_ID id, UINT32 Size);
#endif //_ETHCAM_SOCKET_H