⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nu_xm22l8_api.h

📁 流量C++驱动的一些源代码,主要是模仿SMARTBIT 的硬件对应的代码
💻 H
字号:
#ifndef NU_XM22L8_API_H
#define NU_XM22L8_API_H




#include "Nu_Types.h"
#include "Nu_SYS_API.h"




#define XM22L8_COUNTERREPORT_ID        0x0100
#define XM22L8_PKTCAPTURED_ID          0x0200
#define XM22L8_NICMODERXPKTREPORT_ID   0x1300
#define XM22L8_LINKSTATUSREPORT_ID     0x80FC
#define XM22L8_BOARDSTATUSREPORT_ID    0x0500
#define XM22L8_PINGREPORT_ID           0x0700
#define XM22L8_NUMOFCLIENT_ID          0x80F9
#define XM22L8_CARDTYPE                8

#define XM22L8_PADPATTERN_LEN		   512

/* *****************************************************************************
 *                   ++  XM22L8 Packet Format Structure  ++
 ******************************************************************************/


// FILLTXPKT Packet Format
typedef struct{

    UI16_T  chasid;
    UI8_T   boardid;
    UI8_T   portid;

    UI8_T  DA[6];
    UI8_T  SA[6];

    UI16_T  DA_ctrl;
    UI32_T  DA_loop_cnt;
    UI16_T  DA_step_cnt;
    UI16_T  SA_ctrl;
    UI32_T  SA_loop_cnt;
    UI16_T  SA_step_cnt;

    UI8_T ether_type_len[2];

    BOOLEAN_T Tx_vlan_frame;
    UI8_T vlan_tag[4];
    UI16_T vlan_cos_ctrl;
    UI16_T  vlan_cos_step;
    UI16_T vlan_cos_loop_cnt;

    BOOLEAN_T Tx_IP_frame;
    UI16_T  IPhdr_ver_len;
    UI16_T  IPhdr_tos;
    UI16_T  IPhdr_id;
    UI16_T  IPhdr_frag;
    UI16_T  IPhdr_ttl;
    UI16_T IPhdr_protocol;
    UI8_T IPhdr_DIP[4];
    UI8_T IPhdr_SIP[4];

    UI16_T SIP_ctrl;
    UI16_T SIP_step;
    UI16_T SIP_loop_cnt;
    UI16_T DIP_ctrl;
    UI16_T DIP_step;
    UI16_T DIP_loop_cnt;

    UI16_T IP_tos_ctrl;
    UI16_T  IP_tos_step;
    UI16_T  IP_tos_loop_cnt;

    UI16_T Tx_ctrl;
    UI32_T DI_offset;
	
    UI32_T frame_cnt;
    UI16_T frame_len_ctrl;
    UI16_T frame_len;
    UI16_T frame_len_bgn;
    UI16_T frame_len_end;
    UI16_T frame_gap_ctrl;
    UI32_T frame_gap;

    UI16_T preamble_cnt;
    UI16_T payload_ctrl;

    UI16_T backoff_ctu;
    UI16_T backoff_cnt;

    UI8_T user_pad_patn[XM22L8_PADPATTERN_LEN];
}XM22L8_TXOP_T;



// STARTRXCAPTURE Packet Format
typedef  struct{

    UI16_T chasid;
    UI8_T  boardid;
    UI8_T  portid;

    UI32_T trigger1_offset;
    UI32_T trigger2_offset;

    UI8_T trigger1[6];
    UI8_T trigger2[6];

    UI16_T trigger1_len;
    UI16_T trigger2_len;

    UI32_T trigger_ctrl;

    UI8_T Trigger1_ctrl;
    UI8_T Trigger2_ctrl;

}XM22L8_RXOP_T;


// PING Packet Format
typedef struct{
	UI16_T chasid;
	UI8_T  boardid;
	UI8_T  portid;
	UI8_T  DIP[4];
	UI8_T  SIP[4];
	UI32_T num_of_ping;
}XM22L8_PING_T;


// SETRXXTRAILER Packet Format
typedef struct{
	UI16_T chasid;
	UI8_T  boardid;
	UI8_T  portid;
	BOOLEAN_T enable_DI;
	BOOLEAN_T enable_serialnum;
	UI16_T DI_offset;
}XM22L8_SETRXXTRAILER_T;


// STARTAUTOARPREPLY Packet Format
typedef struct{
	UI16_T chasid;
	UI8_T  boardid;
	UI8_T  portid;
	UI8_T  SIP[4];
	UI8_T  SIP_mask[4];
	UI8_T  gateway_IP[4];
	UI8_T  SA[6];
}XM22L8_STARTAUTOARPREPLY_T;


// NICMODESET Packet Format
typedef struct{
    UI16_T chasid;
    UI8_T  boardid;
    UI8_T  portid;
    UI8_T  set;
}XM22L8_NICMODESET_T;


// NICMODESEND Packet Format
typedef struct{
    UI16_T chasid;
    UI8_T  boardid;
    UI8_T  portid;
    UI16_T  pkt_len;
    UI16_T  reserved;
    UI8_T pkt_content[1514];
}XM22L8_NICMODESEND_T;



// COUNTERREPORT Packet Format
typedef struct{
    UI16_T chasid;
    UI8_T  boardid;
    UI8_T  portid;    
    UI64_T TxPkt;
    UI64_T TxCol;
    UI64_T TxByte;	
    UI64_T RxPkt;
    UI64_T RxBcast;
    UI64_T RxMcast;
    UI64_T RxUnicast;
    UI64_T RxPause;
    UI64_T RxVLAN;
    UI64_T RxCRCErr;
    UI64_T RxChkSumErr;
    UI64_T RxSerNumErr;
    UI64_T RxAlignErr;
    UI64_T RxOverSize;
    UI64_T RxUnderSize;
    UI64_T RxDribbleErr;	
    UI64_T RxByte;
    UI64_T RxIPChkSumErr;
    UI64_T RxTrigger1;
    UI64_T RxTrigger2;
    UI64_T TxARPReply;
    UI64_T TxARPReq;
    UI64_T TxICMPReply;
    UI64_T TxICMPReq;
    UI64_T RxARPReply;
    UI64_T RxARPReq;
    UI64_T RxICMPReply;
    UI64_T RxICMPReq;
    UI32_T TimeStamp;
}XM22L8_COUNTERREPORT_T;


// StartUDFCounter Packet Format
typedef struct{

    UI16_T chasid;
    UI8_T  boardid;
    UI8_T  portid;

    UI32_T trigger1_offset;
    UI32_T trigger2_offset;

    UI8_T trigger1[6];
    UI8_T trigger2[6];

    UI16_T trigger1_len;
    UI16_T trigger2_len;

    UI32_T trigger_ctrl;
	
}XM22L8_STARTTGRCTR_T;


// DOWNLOADFW Inner Packet Format
typedef struct{
    UI16_T chasid;
    UI8_T  boardid;
    UI8_T  portid;
    I8_T importfile[100];	
}XM22L8_DOWNLOADFW_T;


// DOWNLOADFPGA Packet Format
typedef struct{
    UI16_T chasid;
    UI8_T  boardid;
    UI8_T  portid;
    I8_T importfile[100];	
}XM22L8_DOWNLOADFPGA_T;


// PKTCAPTURED Packet Format
typedef struct{
    UI16_T chasid;
    UI8_T  boardid;
    UI8_T  portid;
    UI16_T frame_len;
    UI16_T capture_type;
    UI32_T timestamp;

    UI8_T  captured[1024];
}XM22L8_PKTCAPTURED_T;



// LINKSTATUSREPORT Packet Format
typedef struct{
    UI16_T chasid;
    UI8_T  boardid;
    UI8_T  portid;
    UI8_T  linkstatus;
    UI8_T  force_flag;
}XM22L8_LINKSTATUSREPORT_T;


// BOARDSTATUSREPORT Packet Format
typedef struct{
    UI16_T chasid;
    UI8_T  boardid;
    UI8_T  portid;

    UI16_T generalstatus;
    UI16_T FWMajorVersion;
    UI16_T FWMinorVersion;
    UI16_T PROMMajorVersion;
    UI16_T PROMMinorVersion;
    UI16_T HWMajorVersion;
    UI16_T HWMinorVersion;
    UI16_T PCBVersion;
    UI16_T my_chas_id;
    UI16_T signature;
    UI32_T FWDateCode;
    UI32_T PROMDateCode;
    UI32_T HWDateCode;
}XM22L8_BOARDSTATUSREPORT_T;


// Overall Packet Format
typedef struct{
    UI16_T cmdid;
    UI16_T clientid;
    UI32_T seqnum;
    UI16_T cardtype;
    UI16_T subcmd;
    UI8_T  reserved[7];
    UI8_T  groupid;
    
    union{
    	XM22L8_COUNTERREPORT_T ctr;
        UI8_T                  data[ETHERNET_PKT_LEN + 20];
    }para;

}XM22L8_PKT_FORMAT_T;


/*******************************************************************************
 *                      ++  XM22L8 API Function  ++
 ******************************************************************************/
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_MediaType(UI16_T, UI8_T, UI8_T, UI16_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_FillTxPkt(UI16_T, UI8_T, UI8_T, XM22L8_TXOP_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_StartTxPkt(UI16_T, UI8_T, UI8_T, UI32_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_StopTxPkt(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_PauseTxPkt(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_ResumeTxPkt(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_StartRxFilter(UI16_T, UI8_T, UI8_T, XM22L8_RXOP_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_StopRxFilter(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_StartCounterStatistics(UI16_T, UI8_T, UI8_T, UI32_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_ClearCounterStatistics(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_ReadCounterStatistics(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_StopCounterStatistics(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_DownLoadFW(UI16_T, UI8_T, UI8_T, XM22L8_DOWNLOADFW_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_DownLoadFPGA(UI16_T, UI8_T, UI8_T, XM22L8_DOWNLOADFPGA_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_LinkStatus(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_BoardStatus(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_WritePhy(UI16_T, UI8_T, UI8_T, UI16_T, UI16_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_ReadPhy(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_Ping(UI16_T, UI8_T, UI8_T, XM22L8_PING_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_GetGroupID(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_SetRxXtrail(UI16_T, UI8_T, UI8_T, XM22L8_SETRXXTRAILER_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_StartTriggerCounter(UI16_T, UI8_T, UI8_T, XM22L8_STARTTGRCTR_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_StopTriggerCounter(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_StartAutoARPReply(UI16_T, UI8_T, UI8_T, XM22L8_STARTAUTOARPREPLY_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_StopAutoARPReply(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_NICMODESET(UI16_T, UI8_T, UI8_T, XM22L8_NICMODESET_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_NICMODESEND(UI16_T, UI8_T, UI8_T, XM22L8_NICMODESEND_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_PauseControl(UI16_T, UI8_T, UI8_T, BOOLEAN_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM22L8_CheckTxEnd(UI16_T, UI8_T, UI8_T, UI16_T);
/*******************************************************************************
 *                      --  XM22L8 API Function  --
 ******************************************************************************/


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -