| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 | #pragma once#define EXPORT_CLASS_C extern "C" _declspec(dllexport)const int	driver_handle_error = -1;const int	driver_cmd_ok = 0;const int	driver_cmd_error_serial_open = 1;const int	driver_cmd_error_pcie_open = 2;const int	driver_cmd_error_serial_send_error = 3;const int	driver_cmd_error_rf_freq = 4;const int	driver_cmd_error_rf_band = 5;const int	driver_cmd_error_rf_mgc = 6;const int	driver_cmd_error_ad_para_error = 7;const int	driver_cmd_error_file_open = 8;const int	driver_cmd_error_ad_dds = 9;const int	driver_cmd_error_ad_clock = 10;const int	driver_cmd_error_ad_data = 11;const int	driver_cmd_error_ad_sample_mode = 12;const int	driver_cmd_error_ad_trigger = 13;const int	driver_cmd_error_ad_clock_src = 14;const int	driver_cmd_error_ad_ddc_exttime = 15;const int	driver_cmd_error_ad_ddr = 16;const int	driver_cmd_error_ad_sample_freq = 17;const int	driver_cmd_error_softddc = 18;const int	driver_cmd_error_store = 19;const int	driver_cmd_error_rf_wmode = 20;const int	driver_cmd_error_filepath = 21;#define  DEVICEHANDLE void*/************************************************************************//*                  创建底层实例                                         *//************************************************************************/EXPORT_CLASS_C DEVICEHANDLE  c_createdevice();EXPORT_CLASS_C int c_deletedevice(DEVICEHANDLE*);/*内存数据回调函数当回调模式为连续模式:申请通道后此回调将一直有数据,内部尽量只能做拷贝当回调模式为固定包模式:申请通道后此回调将按照包大小回调@:pdata*:数据@:len:数据长度@:ch:通道号@:datetype: 数据类型 0-adc 1-ddc*/typedef void(__stdcall * func_CpcDevice_c)(char* pdata, unsigned long long len, int ch, int datetype);/*存储完成通知的回调函数@:ch:通道号@:chOk:通道完成@:AllOK:全部完成*/typedef void(__stdcall * func_StoreOK_c)(int ch, bool chOk, bool AllOK);EXPORT_CLASS_C int openDev_c(DEVICEHANDLE device) ;EXPORT_CLASS_C int closeDev_c(DEVICEHANDLE device) ;//关闭设备EXPORT_CLASS_C int initDev_c(DEVICEHANDLE device) ;//初始化#pragma pack(push, 1)//采集配置参数typedef struct st_ad_para_c {	unsigned long long 		udds; //dds频率 -无需配置	unsigned long long		uSampleFreq;//采样率 	unsigned long long		uDDCFreq;//窄带中心频率	DDC有效-偏移频率	unsigned char			uSampleMode; //采样类型 0-ADC 1-DDC	unsigned char			uTrigMode;//触发模式 0-内触发 1-外触发	unsigned char			uClockSrc;//时钟源 0-内时钟 1-外时钟 2-外参考	unsigned char			ures;//保留	unsigned int			uExtTimes;//抽取倍数}st_ad_para_c;//回调配置参数typedef struct st_cb_para_c {	unsigned int		ucallbackMode = 0 ;	//回调类型 0-连续数据回调(包间连续) 1-固定包回调(包间不连续)	unsigned int		cb_once_len = 1048576;	//[固定包回调时有效]一次回调的大小 建议大于1048576	bool				autoRestart = true;		//[固定包回调时有效] 0-回调一次后停止,1-回调一次后重新配置采集参数并启动采集}st_cb_para_c;#pragma pack(pop)/************************************************************************//*                  存储参数控制                                       *//************************************************************************//*设置存储参数@storeMode:存储模式 0-即采即停 1-大小采集 2-时长采集@maxSec:采集时长 秒@maxPoint:采集大小 采样的样点数@divPoint:分段时长/大小 0-不分段; >0 分段的秒/样点数@storeEnable 是否需要存储功能 0-不需要 1-需要 */EXPORT_CLASS_C int setStorePara(DEVICEHANDLE device,int storeMode, unsigned long long maxSec, unsigned long long maxPoint, unsigned long long divPoint,bool storeEnable = true);/*设置存储路径@pathName:存储模式 0-即采即停 1-大小采集 2-时长采集@ch:通道号*/EXPORT_CLASS_C int setFilePath(DEVICEHANDLE device,char* str,int strLen, int ch);/*设置存储回调@func_StoreOK_c:用于通知存储情况的回调函数@ch:通道号*/EXPORT_CLASS_C int setStoreCallBack(DEVICEHANDLE device, func_StoreOK_c);/************************************************************************//*                  采集参数控制                                       *//************************************************************************//*控制采集参数@blSend:true-代表发送所有命令,false-只发送更改了的命令*/EXPORT_CLASS_C int	control_ad_para_c(DEVICEHANDLE device,st_ad_para_c para, bool blSend = false) ;/*GPS设置@bl:true-启动,false-关闭*/EXPORT_CLASS_C int control_ad_enable_fpga_c(DEVICEHANDLE device, bool bl = false) ;/*申请数据@iChannel:通道号 按位与0-关闭通道,1-开启通道如:1-表示申请1通道关闭2、3、4通道,3-表示申请1、2通道关闭3、4通道...在配置参数后,若有通道需要存储,调用此函数启动存储,存储完成后返回。*/EXPORT_CLASS_C int apply_datas_c(DEVICEHANDLE device, const unsigned int iChannels) ;/*设置数据回调函数(此处设置的回调函数内,请避免耗时操作,否则会掉数)@f:函数地址*/EXPORT_CLASS_C int setcallback_c(DEVICEHANDLE device, st_cb_para_c para, func_CpcDevice_c f) ;/*获取设备状态@ty:0-固件版本,1-设备温度,2-设备电压@ p:用于获取信息的字符串buffer@sz:buffer最大长度*/EXPORT_CLASS_C int get_status_info_c(DEVICEHANDLE device, unsigned char ty, char* p, unsigned int sz) ;/*射频内外时钟切换(暂时无用)@_inner:0-内参考,1-外参考*/EXPORT_CLASS_C int set_rf_inner_clock_c(DEVICEHANDLE device, int _inner) ;/*设置GPS数据长度@len:数据,每包的包体长度(不含包头)*/EXPORT_CLASS_C int set_gps_pack_len_c(DEVICEHANDLE device, int len) ;
 |