372 lines
10 KiB
C++
372 lines
10 KiB
C++
#pragma once
|
||
#include "UAVrtp.h"
|
||
// #ifdef DEVICEMANAGE_EXPORTS
|
||
// #include "UserConfigInfo.h"
|
||
// #include "OneChannelConfigInfo.h"
|
||
// #include "OneDeviceComptonSuppressSetting.h"
|
||
// #endif
|
||
|
||
#ifdef DEVICEMANAGE_EXPORTS
|
||
#define DEVICEMANAGE_API(type) extern "C" _declspec(dllexport) type _stdcall
|
||
#else
|
||
#define DEVICEMANAGE_API(type) extern "C" _declspec(dllexport) type _stdcall
|
||
#endif
|
||
// #include "OneComptonResultDataExport.h"
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
enum eMCSystemType
|
||
{
|
||
eReserve,
|
||
eHPGEDEFAULE = 1,
|
||
eCombineDevice = 2,
|
||
eProxyDevice = 3,
|
||
eRoundMC = 10,
|
||
eRoundMCV1 = 11, // 第二通道计数
|
||
eRoundMCHightThroughtput = 12, // 圆筒多道高计数率
|
||
eFP5XMC = 13,
|
||
eDMCA2023 = 14,
|
||
eHPGEMC = 30,
|
||
eMulParamMC = 50,
|
||
eDP3402PLUSMC = 51,
|
||
eMulParam863MC = 60,
|
||
eNeutronCount = 70,
|
||
eAnalogMC = 80,
|
||
eAnalogDigtalMC = 81,
|
||
eHightThroughtMC=90,
|
||
eHightThroughtMCCh2 = 91,
|
||
eGeneralMC = 92,
|
||
eAlphaMC = 93,
|
||
eHVDevice = 100,
|
||
};
|
||
|
||
// 添加新的采样率后,需要注意在DeviceInfo.cpp中添加对应的索引
|
||
// 添加新的采样率后,需要注意在DeviceInfo.h 中修改SampleRateInMbpsToSampleRate修改
|
||
enum eSampleRate
|
||
{
|
||
eNone,
|
||
e80M,
|
||
e250M,
|
||
e500M,
|
||
e50M,
|
||
e200M,
|
||
e1G,
|
||
e125M,
|
||
};
|
||
|
||
#pragma pack(push,1)
|
||
|
||
struct sDeviceInfo
|
||
{
|
||
char GUID[64];
|
||
char SystemVersion[16];
|
||
char CommVersion[16];
|
||
eMCSystemType type;
|
||
char MacAddr[32];
|
||
char FilePath[MAX_PATH];
|
||
unsigned char reserve[60];
|
||
};
|
||
|
||
class ChannelOpInfo
|
||
{
|
||
public:
|
||
BOOL canop;
|
||
double adcperiod;
|
||
eSampleRate samplerate;
|
||
double lmperiod;
|
||
int adcmaxvalue;
|
||
double adcvoltageinmv;
|
||
};
|
||
typedef struct sDeviceDataPtr
|
||
{
|
||
int totalNum;
|
||
void *pData[64];
|
||
}sDeviceDataPtr;
|
||
|
||
class DeviceData
|
||
{
|
||
public:
|
||
int len = 1024*1024;
|
||
BYTE pdata[1024*1024];
|
||
};
|
||
enum eDeviceManageOperate
|
||
{
|
||
eAddDevice,
|
||
eRemoveDevice,
|
||
};
|
||
|
||
enum eDeviceType
|
||
{
|
||
// 硬件设备
|
||
eHardwareDevice,
|
||
// 回放设备
|
||
eReplayDevice,
|
||
// 文件设备
|
||
eFileDevice,
|
||
// 硬件组合设备
|
||
eHardwareCombineDevice,
|
||
// 回放组合设备
|
||
eReplayCombineDevice,
|
||
// 代理设备
|
||
eDTProxyDevice,
|
||
};
|
||
|
||
enum eSprtOptType
|
||
{
|
||
eAdd,
|
||
eDec,
|
||
};
|
||
|
||
enum eDisplaSprtInfoType;
|
||
|
||
|
||
typedef struct sOneSprtOptInfo
|
||
{
|
||
void *pdev;
|
||
int bdidx;
|
||
int chidx;
|
||
eSprtOptType opttype;
|
||
eDisplaSprtInfoType sprttype;
|
||
}sOneSprtOptInfo;
|
||
|
||
class OneNeutronData
|
||
{
|
||
public:
|
||
int chnum;
|
||
__int64 measuretime;
|
||
__int64 lowercount;
|
||
__int64 betweencount;
|
||
__int64 ttlcount;
|
||
unsigned char reserve[32];
|
||
};
|
||
|
||
#ifndef DEVICEMANAGE_EXPORTS
|
||
#define ALIAS_NALE_LEN 64
|
||
|
||
enum eTransferMode
|
||
{
|
||
eSpecturmMode,
|
||
eFormWaveMode,
|
||
eADCMode,
|
||
eListMode,
|
||
eABMode,
|
||
};
|
||
|
||
enum eAutoSteadyStatus
|
||
{
|
||
a, // 未开启,
|
||
b, // 稳谱中,
|
||
c, // 稳谱完成,
|
||
d, // 不支持,
|
||
e, // 校准中,
|
||
f, // 稳谱失败,
|
||
g, // 校准失败,
|
||
h, // 等待中,
|
||
};
|
||
|
||
typedef struct sAutoSteadyParam
|
||
{
|
||
BOOL bEnable;
|
||
eAutoSteadyStatus status;
|
||
float offset; // 10
|
||
float a;
|
||
float b;
|
||
float c;
|
||
unsigned short maxchanneldivfactor;
|
||
unsigned short peakchannel; // 26
|
||
unsigned short steadyPeriodInSec; // 28
|
||
unsigned short peakhalfwidth; // 30
|
||
double dc;
|
||
}sAutoSteadyParam;
|
||
|
||
class UserConfigInfo
|
||
{
|
||
public:
|
||
char m_cAliasName[ALIAS_NALE_LEN];
|
||
char _strMCName[32];
|
||
int _iBDNum;
|
||
int _iChNum;
|
||
BOOL _bDisplayOrgCptSprt;
|
||
BOOL _bDisplayComptonCptSprt;
|
||
BOOL _bDisplayAntiComptonCptSprt;
|
||
BOOL _bDisplayLMSprt;
|
||
BOOL _bDisplayRiseTimeSprt;
|
||
BOOL _bDisplayFallTimeSprt;
|
||
__int64 _i64AdjustTickCount;
|
||
__int64 _i64MinAllowTickCount;
|
||
__int64 _i64MaxAllowTickCount;
|
||
BOOL _bDisplayConfig;
|
||
BOOL _bSaveLMData;
|
||
BOOL _bWork;
|
||
sAutoSteadyParam asp;
|
||
char m_cReserve[16];
|
||
};
|
||
|
||
class OneChannelConfigInfo
|
||
{
|
||
public:
|
||
void *__vfp;
|
||
/// <summary>
|
||
/// 数据传输模式
|
||
/// </summary>
|
||
eTransferMode m_eTransferModel = eSpecturmMode;
|
||
/// <summary>
|
||
/// 硬件增益
|
||
/// </summary>
|
||
int m_iDeviceGain = 1;
|
||
/// <summary>
|
||
/// 硬件增益
|
||
/// </summary>
|
||
int m_iDeviceGainSelectIndex = 1;
|
||
/// <summary>
|
||
/// 软件增益
|
||
/// </summary>
|
||
int m_iSoftGain = 3000;
|
||
/// <summary>
|
||
/// 时间常数
|
||
/// </summary>
|
||
double m_dConstTime = 45;
|
||
/// <summary>
|
||
/// 成形时间
|
||
/// </summary>
|
||
int m_iFormTime = 3;
|
||
/// <summary>
|
||
/// 快通道触发阈值
|
||
/// </summary>
|
||
double m_iFastChannelTrigerValue = 10;
|
||
/// <summary>
|
||
/// 多道分辨率
|
||
/// </summary>
|
||
int m_iChannelNum = 1024;
|
||
|
||
int m_iHighVoltage = 0;
|
||
|
||
// sParamConfig ParamConfig;
|
||
/// <summary>
|
||
/// 输入12V信号衰减控制(1个ASCii字符表示)。‘0’表示关闭,‘1’表示启用衰减,偏移量2
|
||
/// </summary>
|
||
int m_iInputVoltageDesc = 0;
|
||
/// <summary>
|
||
/// CR微分模式启用(1个ASCii字符表示)。‘0’表示关闭,‘1’表示启用CR微分,偏移量3。对于复位型前放其输出的为阶梯信号,此时应启用CR微分,否则可不启用
|
||
/// </summary>
|
||
int m_iCRDivMode = 0;
|
||
/// <summary>
|
||
/// 输入信号正负极性选择(1个ASCii字符表示)。‘0’表示负信号,‘1’表示正信号,偏移量4
|
||
/// </summary>
|
||
int m_iInputSignalPostive = 0;
|
||
/// <summary>
|
||
/// 第一位为符号位,后四位为数值,以mV为单位,譬如’+0200’表示直流偏移200mV, 地址偏移量5-9
|
||
/// </summary>
|
||
int m_iCurrentOffset = 0;
|
||
/// <summary>
|
||
/// 最大能量范围,以keV为单位(5个ASCII字符) 譬如’04000’,表示最大能量范围为4MeV。设置为全零‘00000’则表示关闭自动稳谱功能。
|
||
/// </summary>
|
||
int m_iMaxEnergy = 0;
|
||
/// <summary>
|
||
/// Am峰面积寻峰法的面积比例 例如:‘15’表示截取峰顶高度15%的面积用于面积法寻峰
|
||
/// </summary>
|
||
int m_iAMPeakDiv = 0;
|
||
/// <summary>
|
||
/// K-40与Am-241的峰位校正系数 例如:‘24513’表示K-40与Am-241的峰位换算系数为24.513
|
||
/// </summary>
|
||
short m_iHVDelt = 0;
|
||
short m_iHVCtrl = 0;
|
||
|
||
int m_iGetSpecturmPeirod = 1;
|
||
|
||
__int64 m_iTotalMeasureTime = 10;
|
||
int m_iTotalMeasureCount = 1;
|
||
|
||
int m_iTrapeTopShitBit = 0;
|
||
|
||
int m_iRiseTime = 2;
|
||
int m_iTopTime = 2;
|
||
|
||
BOOL m_bICRCorrect = FALSE;
|
||
|
||
int m_iCRZAValue = 0;
|
||
|
||
int m_iZAEnable = 30;
|
||
|
||
BYTE reserve[128];
|
||
|
||
UserConfigInfo m_pUserConfigInfo;
|
||
};
|
||
#endif
|
||
|
||
typedef void(__stdcall *ONFINDDEVICEFINISHED)(int ret, sDeviceList* pDeviceList);
|
||
|
||
typedef void(__stdcall *ONUPDATEONEDEVICEBOARDDATA)(void* pHandle, sDeviceDataPtr *pdata);
|
||
|
||
typedef void(__stdcall *ONUPDATEONEDEVICECOMPTOMSUPRESSDATA)(void* pHandle,void *pComptonSet, sDeviceDataPtr *pdata);
|
||
|
||
typedef void(__stdcall *ONDEVICEMANAGECHANGED)(eDeviceManageOperate op, int ret, sDeviceList *pDeviceList);
|
||
|
||
typedef void(__stdcall *ONUPDATE_NEUTRONDATA)(void* pHandle, int ret, OneNeutronData* pData, int iLen);
|
||
|
||
typedef void(__stdcall *ONUPDATE_DEVICE_CONFIG)(void* pHandle, int bdnum,int chnum, void* pData, int iLen,void *pData2, int iLen2);
|
||
|
||
typedef void(__stdcall *ONUPDATE_PRESENT_CONFIG)(void* pHandle, int bdnum, int chnum);
|
||
|
||
// 更新设备配置结构信息
|
||
typedef void(__stdcall *ONUPDATE_DEVICE_STRUCT)(void* pHandle,void *pParent,int maxParentNum,void *pChild,int MaxChildNum, void *reserve);
|
||
|
||
|
||
DEVICEMANAGE_API(int) FindDeviceAsync(sFindDeviceConfig *fdc, ONFINDDEVICEFINISHED OnFindFinished);
|
||
DEVICEMANAGE_API(int) GetDeviceInfo(void *pHandle, sDeviceInfo *spDi, int budnum, int chnum);
|
||
DEVICEMANAGE_API(int) GetDeviceBoardTotalNum(void *pHandle);
|
||
DEVICEMANAGE_API(int) GetDeviceChTotalNum(void *pHandle, int bdidx);
|
||
|
||
// DEVICEMANAGE_API(int) GetDeviceUserInfo(void *pHandle, UserConfigInfo *pUCI);
|
||
// DEVICEMANAGE_API(int) SetDeviceUserInfo(void *pHandle, UserConfigInfo *pUCI);
|
||
// DEVICEMANAGE_API(int) GetDeviceBoardUserInfo(void *pHandle, UserConfigInfo *pUCI, int bdidx);
|
||
// DEVICEMANAGE_API(int) GetDeviceBoardChannelUserInfo(void *pHandle, UserConfigInfo *pUCI, int bdidx, int chidx);
|
||
// DEVICEMANAGE_API(int) SetDeviceBoardChannelUserInfo(void *pHandle, UserConfigInfo *pUCI, int bdidx, int chidx);
|
||
DEVICEMANAGE_API(int) GetDeviceBoardChannelConfiginfo(void *pHandle, OneChannelConfigInfo *pUCI, int bdidx, int chidx);
|
||
|
||
DEVICEMANAGE_API(int) DBCSetHightVoltage(void *pHandle, OneChannelConfigInfo *pUCI, int bdidx, int chidx);
|
||
DEVICEMANAGE_API(int) DBCSoftParamConfig(void *pHandle, OneChannelConfigInfo *pUCI, int bdidx, int chidx);
|
||
DEVICEMANAGE_API(int) DBCHardDeviceParamConfig(void *pHandle, OneChannelConfigInfo *pUCI, int bdidx, int chidx);
|
||
|
||
DEVICEMANAGE_API(int) DBCStartMeasure(void *pHandle, int bdidx, int chidx);
|
||
DEVICEMANAGE_API(int) DBCStopMeasure(void *pHandle, int bdidx, int chidx);
|
||
DEVICEMANAGE_API(int) DBCGetData(void *pHandle, int totalnum, DeviceData *pDevData, int bdidx, int chidx);
|
||
DEVICEMANAGE_API(int) DBCCombineGetData(void *pHandle, int totalnum, DeviceData *pDevData, int bdidx, int chidx);
|
||
DEVICEMANAGE_API(int) DBCSetUpdateDeviceBoardDataCallBack(void *pHandle, ONUPDATEONEDEVICEBOARDDATA d);
|
||
DEVICEMANAGE_API(int) DBCSetUpdateDeviceBoardLMPointDataCallBack(void *pHandle, ONUPDATEONEDEVICEBOARDDATA d);
|
||
DEVICEMANAGE_API(int) DBCClearData(void *pHandle, int bdidx, int chidx);
|
||
DEVICEMANAGE_API(int) DBCSaveConfig(void *pHandle);
|
||
|
||
|
||
// DEVICEMANAGE_API(int) DBCSetUpdateDeviceComptonSupressResultCallBack(void *pHandle, ONUPDATEONEDEVICECOMPTOMSUPRESSDATA d);
|
||
|
||
// DEVICEMANAGE_API(int) DBCGetDeviceAntiComptonSetting(void *pHandle, OneDeviceComptonSuppressSetting *pDevSet);
|
||
// DEVICEMANAGE_API(int) DBCGetDeviceOneMainAntiComptonSetting(void *pHandle, OneComptonSuppressSetting *pOneSet, int mainidx);
|
||
// DEVICEMANAGE_API(int) DBCGetDeviceOneSubAntiComptonSetting(void *pHandle, OneComptonSuppressSetting *pOneSet, int mainidx, int subidx);
|
||
// DEVICEMANAGE_API(int) DBCSetDeviceOneMainAntiComptonSetting(void *pHandle, OneComptonSuppressSetting *pOneSet, int mainidx);
|
||
// DEVICEMANAGE_API(int) DBCSetDeviceOneSubAntiComptonSetting(void *pHandle, OneComptonSuppressSetting *pOneSet, int mainidx, int subidx);
|
||
|
||
DEVICEMANAGE_API(void) DM_Con_Flushout();
|
||
DEVICEMANAGE_API(void) DM_Con_KeyPressEvent(char c, int codetype);
|
||
DEVICEMANAGE_API(void) DM_Con_Init(char *pStdOutBuff, int pStdOutBuffLen, char *pStdErrBuff, int pStdErrBuffLen);
|
||
DEVICEMANAGE_API(void) DM_Con_Exit();
|
||
DEVICEMANAGE_API(void) DM_Con_Run();
|
||
DEVICEMANAGE_API(void) DM_Con_Free(void *buf);
|
||
DEVICEMANAGE_API(int) CloseDevice(void *pHandle);
|
||
|
||
// 获取板卡通道对应的设备
|
||
DEVICEMANAGE_API(void*) DMGetOperateDevice(void *pHandle, int bdidx, int chidx);
|
||
// 设置查询保存lmaa格式
|
||
// set 参数为FALSE表示读取当前信息,如果为TRUE表示设置信息
|
||
// DEVICEMANAGE_API(int) DBCSaveAntiLMDataToFile(void *pHandle, int bdidx, int chidx, BOOL set, BOOL *bEnable, char *filename);
|
||
|
||
#pragma pack(pop)
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
|