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

📄 nu_bm_api.h

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


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



#define         NUM_OF_LIGHT_ROW        9
#define         NUM_OF_LIGHT_COLUMN     52
#define         UNLOCK                  0
#define         OTHER_LOCK              1
#define         SELF_LOCK               2


#define NU_COUNTERREPORT_ID            0x0100
#define NU_LINKSTATUSREPORT_ID         0x80FC
#define NU_BOARDSTATUSREPORT_ID        0x0500
#define NU_PORTSTATUSREPORT_ID         0x0E00
#define NU_NUM_OF_MEMBERMAP			   4
#define NU_MFILLTXPKT_NODE_LEN         1000

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


// SETUPGROUP Packet Format
typedef struct{
    UI32_T grp_chasid;
    UI32_T membermap[NU_NUM_OF_MEMBERMAP];
    UI8_T  groupid;
}BM_SETUPGROUP_T;


// SETRXXTRAILER Packet Format
typedef struct{
	BOOLEAN_T enable_DI;
	BOOLEAN_T enable_serialnum;
	UI16_T DI_offset;
}BM_SETRXXTRAILER_T;


// SETUPPORTSTATUS Packet Format
typedef struct{
    UI32_T pstatus_chasid;
    UI32_T membermap[NU_NUM_OF_MEMBERMAP];
}BM_SETUPPORTSTATUS_T;

//---------------------------------------------------------------------------

#define     NUM_OF_MODULE               16
#define     MAX_NUM_OF_PORT             70

//---------------------------------------------------------------------------

typedef struct{
    I8_T modulename[30];
    I8_T lockfilename[30];
    I8_T groupfilename[30];
    UI32_T threshold[12];
    //UI32_T num_of_testitem;
}ModuleInfo_T;

typedef struct{
    UI8_T     groupid;
    UI16_T    chasid;
    UI8_T     boardid;
    UI8_T     portid;
    UI16_T    cardtype;
    UI16_T    item_is_used;
    I32_T     lightindex;
    UI8_T     portstatus;     //0: unlock, 1: other client lock, 2: self lock
    UI8_T     linkstatus;
    time_t    linkdown_time;
    BOOLEAN_T linkdown_flag;
}PortInfo_T;

typedef struct{
    UI64_T TxPkt;
    UI64_T TxByte;
    UI64_T RxPkt;
    UI64_T RxByte;
    UI64_T RxCRCErr;
    UI64_T RxChkSumErr;
    UI64_T RxAlignErr;
    UI64_T RxOverSize;
    UI64_T RxUnderSize;
    UI64_T RxDribbleErr;
}Counter_T;

// MFILLTXPKTID Packet Format
typedef struct{
    UI8_T  company_mac[3];
    UI8_T  mode;
    UI32_T frame_cnt;
    UI32_T frame_gap;
    UI16_T frame_len;
    UI16_T frame_len_ctrl;
    UI16_T frame_len_bgn;
    UI16_T frame_len_end;
    UI16_T payload_ctrl;
    UI16_T DI_offset;
    UI8_T  Tx_ctrl;
    UI8_T  backoff_ctu;
    UI8_T  backoff_delay_time;
    UI8_T  backoff_cnt;
    UI16_T frame_type;
    UI8_T  ether_type_len[2];
	UI32_T burst_cnt;
	UI32_T interburst_gap;
	UI16_T frame_gap_ctrl;
    UI16_T frame_gap_bgn;
    UI16_T frame_gap_end;
	UI16_T reserved;     
    UI8_T  node[NU_MFILLTXPKT_NODE_LEN];
}BM_MFILLTXPKT_T;


// STARTTRIGGERCOUNTER Packet Format
typedef struct{
	UI32_T trigger1_offset;
	UI32_T trigger2_offset;
	UI32_T trigger3_offset;
	UI32_T trigger4_offset;

	UI8_T  trigger1[6];
	UI8_T  trigger2[6];
	UI8_T  trigger3[6];
	UI8_T  trigger4[6];

	UI16_T trigger1_len;
	UI16_T trigger2_len;
	UI16_T trigger3_len;
	UI16_T trigger4_len;

	UI32_T trigger_ctrl;

}BM_STARTTGRCTR_T;


// SETLOOPBACK Packet Format
typedef struct{
	UI8_T mode;
	UI8_T speed;
}BM_SETLOOPBACK_T;


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


/*******************************************************************************
 *             ++  Broadcast and Multicast API Function  ++
 ******************************************************************************/
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_MediaType(UI8_T, UI16_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_FillTxPkt(UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_StartTxPkt(UI8_T, UI16_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_StopTxPkt(UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_PauseTxPkt(UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_ResumeTxPkt(UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_StopRxCapture(UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_StartCounterStatistics(UI8_T, UI16_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_ClearCounterStatistics(UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_ReadCounterStatistics(UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_StopCounterStatistics(UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_LinkStatus(UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_BoardStatus(UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_WritePhy(UI8_T, UI16_T, UI16_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_ReadPhy(UI8_T, UI16_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_SetRxXTrailer(UI8_T, BM_SETRXXTRAILER_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_GetRxXTrailer(UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_StartTriggerCounter(UI8_T, BM_STARTTGRCTR_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_StopTriggerCounter(UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_SetTimeStamp(UI8_T, UI32_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_SetLoopBack(UI8_T, BM_SETLOOPBACK_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_StopAutoARPReply(UI8_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_PauseControl(UI8_T, BOOLEAN_T);
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_MFillTxPkt(UI8_T, BM_MFILLTXPKT_T); 

extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_SetupGroup_RdFile(I8_T []);  // Broadcast only
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_SetupGroup(BM_SETUPGROUP_T);  // Broadcast only

extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_LockPortStatus(BM_SETUPPORTSTATUS_T);  // Broadcast only
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_LockPortStatus_RdFile(I8_T []);  // Broadcast only
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_ForceLockPortStatus(BM_SETUPPORTSTATUS_T);  //Broadcast only
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_ForceLockPortStatus_RdFile(I8_T []);  // Broadcast only

extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_UnLockPortStatus(BM_SETUPPORTSTATUS_T);  // Broadcast only
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_UnLockPortStatus_RdFile(I8_T []);  // Broadcast only
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_ForceUnLockPortStatus(BM_SETUPPORTSTATUS_T);  // Broadcast only
extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_ForceUnLockPortStatus_RdFile(I8_T []);  // Broadcast only

extern "C" __declspec (dllimport) BOOLEAN_T __stdcall Nu_CheckTxEnd(UI8_T, UI16_T);
/*******************************************************************************
 *             --  Broadcast and Multicast API Function  --
 ******************************************************************************/

#endif

⌨️ 快捷键说明

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