| 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) ;
|