📄 nu_xm23l4_api.h
字号:
#ifndef NU_XM23L4_API_H
#define NU_XM23L4_API_H
#include "Nu_Types.h"
#include "Nu_SYS_API.h"
#define XM23L4_COUNTERREPORT_ID 0x0100
#define XM23L4_PKTCAPTURED_ID 0x0200
#define XM23L4_LINKSTATUSREPORT_ID 0x80FC
#define XM23L4_BOARDSTATUSREPORT_ID 0x0500
#define XM23L4_PINGREPORT_ID 0x0700
#define XM23L4_NICMODERXPKTREPORT_ID 0x1300
#define XM23L4_CARDTYPE 9
#define XM23L4_PADPATTERN_LEN 512
/* *****************************************************************************
* ++ XM23L4 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];
UI8_T DA_mask[8];
UI16_T DA_ctrl;
UI32_T DA_loop_cnt;
UI32_T DA_step_cnt;
UI8_T SA_mask[8];
UI16_T SA_ctrl;
UI32_T SA_loop_cnt;
UI32_T SA_step_cnt;
UI8_T ether_type_len[2];
BOOLEAN_T Tx_vlan_frame;
UI8_T vlan_tag[4];
UI8_T vlan_tag_mask[4];
UI16_T vlan_cos_ctrl;
UI16_T vlan_vid_ctrl;
UI16_T vlan_cos_loop_cnt;
UI16_T vlan_vid_loop_cnt;
BOOLEAN_T Tx_IP_frame;
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_loop_cnt;
UI16_T IP_tos_step;
UI16_T Tx_ctrl;
UI16_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;
UI8_T frame_len_mask[4];
UI16_T frame_gap_ctrl;
UI32_T frame_gap;
UI32_T frame_gap_bgn;
UI32_T frame_gap_end;
UI8_T frame_gap_mask[4];
UI16_T preamble_cnt;
UI16_T payload_ctrl;
UI16_T backoff_ctu;
UI16_T backoff_cnt;
UI16_T backoff_delay_time;
UI8_T user_pad_patn[XM23L4_PADPATTERN_LEN];
}XM23L4_TXOP_T;
// STARTRXCAPTURE Packet Format
typedef struct{
UI16_T chasid;
UI8_T boardid;
UI8_T portid;
UI32_T trigger1_offset;
UI32_T trigger2_offset;
UI32_T trigger3_offset;
UI32_T trigger4_offset;
UI32_T trigger5_offset;
UI32_T trigger6_offset;
UI32_T trigger7_offset;
UI32_T trigger8_offset;
UI8_T trigger1[6];
UI8_T trigger2[6];
UI8_T trigger3[6];
UI8_T trigger4[6];
UI8_T trigger5[4];
UI8_T trigger6[4];
UI8_T trigger7[4];
UI8_T trigger8[4];
UI16_T trigger1_len;
UI16_T trigger2_len;
UI16_T trigger3_len;
UI16_T trigger4_len;
UI16_T trigger5_len;
UI16_T trigger6_len;
UI16_T trigger7_len;
UI16_T trigger8_len;
UI32_T trigger_ctrl;
UI8_T Trigger1_ctrl;
UI8_T Trigger2_ctrl;
UI8_T Trigger3_ctrl;
UI8_T Trigger4_ctrl;
UI8_T Trigger5_ctrl;
UI8_T Trigger6_ctrl;
UI8_T Trigger7_ctrl;
UI8_T Trigger8_ctrl;
}XM23L4_RXOP_T;
// SetGroup Packet Format
typedef struct{
UI16_T chasid;
UI8_T boardid;
UI8_T portid;
UI32_T group_chas_id;
UI32_T group_member_map1;
UI32_T group_member_map2;
UI32_T group_member_map3;
UI32_T group_member_map4;
UI8_T groupid;
}XM23L4_SETUPGROUP_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;
}XM23L4_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;
}XM23L4_SETRXXTRAILER_T;
// StartUDFCounter Packet Format
typedef struct{
UI16_T chasid;
UI8_T boardid;
UI8_T portid;
UI32_T trigger1_offset;
UI32_T trigger2_offset;
UI32_T trigger3_offset;
UI32_T trigger4_offset;
UI32_T trigger5_offset;
UI32_T trigger6_offset;
UI32_T trigger7_offset;
UI32_T trigger8_offset;
UI8_T trigger1[6];
UI8_T trigger2[6];
UI8_T trigger3[6];
UI8_T trigger4[6];
UI8_T trigger5[4];
UI8_T trigger6[4];
UI8_T trigger7[4];
UI8_T trigger8[4];
UI16_T trigger1_len;
UI16_T trigger2_len;
UI16_T trigger3_len;
UI16_T trigger4_len;
UI16_T trigger5_len;
UI16_T trigger6_len;
UI16_T trigger7_len;
UI16_T trigger8_len;
UI32_T trigger_ctrl;
}XM23L4_STARTTGRCTR_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];
}XM23L4_STARTAUTOARPREPLY_T;
// NICMODESET Packet Format
typedef struct{
UI16_T chasid;
UI8_T boardid;
UI8_T portid;
UI8_T set;
}XM23L4_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];
}XM23L4_NICMODESEND_T;
// SETUDFRANDOMSEED Packet Format
typedef struct{
UI16_T chasid;
UI8_T boardid;
UI8_T portid;
UI32_T UDFRandomSeed;
}XM23L4_SETUDFRANDOMSEED_T;
// PAUSECONTROL Packet Format
typedef struct{
UI16_T chasid;
UI8_T boardid;
UI8_T portid;
UI8_T flag;
}XM23L4_PAUSECONTROL_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 RxDribbleErr;
UI64_T RxOverSize;
UI64_T RxUnderSize;
UI64_T RxByte;
UI64_T RxIPChkSumErr;
UI64_T RxTrigger1;
UI64_T RxTrigger2;
UI64_T RxTrigger3;
UI64_T RxTrigger4;
UI64_T RxTrigger5;
UI64_T RxTrigger6;
UI64_T RxTrigger7;
UI64_T RxTrigger8;
UI64_T TxARPReply;
UI64_T TxARPRequest;
UI64_T TxICMPReply;
UI64_T TxICMPRequest;
UI64_T RxARPReply;
UI64_T RxARPRequest;
UI64_T RxICMPReply;
UI64_T RxICMPRequest;
UI32_T TimeStamp;
}XM23L4_COUNTERREPORT_T;
// DOWNLOADFW Inner Packet Format
typedef struct{
UI16_T chasid;
UI8_T boardid;
UI8_T portid;
I8_T importfile[100];
}XM23L4_DOWNLOADFW_T;
// DOWNLOADFPGA Inner Packet Format
typedef struct{
UI16_T chasid;
UI8_T boardid;
UI8_T portid;
I8_T importfile[100];
}XM23L4_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];
}XM23L4_PKTCAPTURED_T;
// LINKSTATUSREPORT Packet Format
typedef struct{
UI16_T chasid;
UI8_T boardid;
UI8_T portid;
UI8_T linkstatus;
UI8_T force_flag;
}XM23L4_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 HWMinorVerion;
UI16_T PCBVersion;
UI16_T my_chas_id;
UI16_T signature;
UI32_T FWDateCode;
UI32_T PROMDateCode;
UI32_T HWDateCode;
}XM23L4_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{
XM23L4_COUNTERREPORT_T ctr;
UI8_T data[ETHERNET_PKT_LEN + 20];
}para;
}XM23L4_PKT_FORMAT_T;
/*******************************************************************************
* ++ XM23L4 API Function ++
******************************************************************************/
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_MediaType(UI16_T, UI8_T, UI8_T, UI16_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_FillTxPkt(UI16_T, UI8_T, UI8_T, XM23L4_TXOP_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_StartTxPkt(UI16_T, UI8_T, UI8_T, UI32_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_StopTxPkt(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_PauseTxPkt(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_ResumeTxPkt(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_StartRxFilter(UI16_T, UI8_T, UI8_T, XM23L4_RXOP_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_StopRxFilter(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_StartCounterStatistics(UI16_T, UI8_T, UI8_T, UI32_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_ClearCounterStatistics(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_ReadCounterStatistics(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_StopCounterStatistics(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_DownLoadFW(UI16_T, UI8_T, UI8_T, XM23L4_DOWNLOADFW_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_DownLoadFPGA(UI16_T, UI8_T, UI8_T, XM23L4_DOWNLOADFPGA_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_LinkStatus(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_BoardStatus(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_WritePhy(UI16_T, UI8_T, UI8_T, UI16_T, UI16_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_ReadPhy(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_Ping(UI16_T, UI8_T, UI8_T, XM23L4_PING_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_GetGroupID(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_SetRxXtrail(UI16_T, UI8_T, UI8_T, XM23L4_SETRXXTRAILER_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_GetRxXtrail(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_StartTriggerCounter(UI16_T, UI8_T, UI8_T, XM23L4_STARTTGRCTR_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_StopTriggerCounter(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_StartAutoARPReply(UI16_T, UI8_T, UI8_T, XM23L4_STARTAUTOARPREPLY_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_StopAutoARPReply(UI16_T, UI8_T, UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_NICMODESET(UI16_T, UI8_T, UI8_T, XM23L4_NICMODESET_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_NICMODESEND(UI16_T, UI8_T, UI8_T, XM23L4_NICMODESEND_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_SetUDFRandomSeed(UI16_T, UI8_T, UI8_T, XM23L4_SETUDFRANDOMSEED_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_PauseControl(UI16_T, UI8_T, UI8_T, BOOLEAN_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_XM23L4_CheckTxEnd(UI16_T, UI8_T, UI8_T, UI16_T);
//extern "C" BOOLEAN_T _stdcall Nu_STATUS_MONITOR(UI16_T, UI8_T, UI8_T);
/*******************************************************************************
* -- XM23L4 API Function --
******************************************************************************/
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -