FrecordCore 模块编程说明

返回
 

录波器模块简介

录波器模块封装了瑞博华公司网络录波器的所有功能,并以 FRecordCore.DLL( 最好拷贝到系统目录 Windows\system 或 Winnt\system32 中 ) 的方式提供,用户可在各种能直接调用 DLL 的编程语言中直接调用,并集成在用户程序的界面中。 C++Builder 下的连接库为 FRecordCore.LIB ,接口定义文件为 DllInterface.h 。 VB 下的接口定义文件为 CoreDef.BAS 。 VC 下使用接口头文件 FrecordCoreVC.H ,并在工程中包含源文件 VCFRecordCore.CPP 即可,正如 VC 示例 VCTestCore 所演示的那样。 Delphi 程序包含单元定义文件 FRecordCore.pas 即可,正如 Delphi 示例工程 DTestCore 所演示的那样。

本模块的函数的命名规则为:对于 C/C++ 的函数如 : int __stdcall InitialCore(void); 其在 DLL 中的名称即为 InitialCore ;在 C++Builder 和 VC 中直接以名称 InitialCore() 进行调用,在 C++Builder 中,通过连接到库文件 FrecordCore.Lib 即可直接调用 DLL 中的对应函数;在 VC 中,使用瑞博华公司提供的 VCFRecordCore.CPP 中函数 int __stdcall InitialFRecordCoreInterface(void) 后, ( 此函数在内部用 LoadLibrary() 和 GetProcAddress() 等 Windows 的 API 定位 DLL 中的各函数 ) ,就可直接按 InitialCore 等名字使用 DLL 中各函数,但应保证函数 InitialFRecordCoreInterface 返回值为,以确保正确版本的 FrecordCore.DLL 存在于系统中。在 VB 中,通过模块定义文件 CoreDef.BAS 的 Declare Function InitialCore Lib "FRecordCore" () As Long 等指令就可直接使用 DLL 中各函数。在 Delphi 中,通过单元定义文件 FrecordCore.pas 中的 function InitialCore: integer ;stdcall; external'FRecordCore.dll' 等质量也把相关函数直接连接到 DLL 中。

调用方法说明

本模块提供了丰富的调用接口,可被 VC 、 VB 、 C++Builder 、 Delphi 等直接调用。用户只需设计一个简单的程序 (VB 、 C++Builder 、 VC 等 ) ,通过调用本模块 (DLL 方式提供 ) ,应用程序就拥有强大的数据采集、显示、分析、记录、重放等功能和界面。本程序包含有 C++Builder 、 VB 下的示例程序源代码。下面是程序接口的调用规则:

规则 1 :在调用本模块的任何功能前,应先调用 InitialCore() 函数进行初始化,在应用程序退出前,应调用 CloseCore() 函数以释放模块分配的资源。

规则 2 :本程序模块可以在后台 ( 不显示界面 ) 进行数据采集、分析、保存,用户程序可以选择是否显示本模块的界面,或界面的不同部分,或在显示后重新隐藏界面,这可以通过 ShowMainForm() 、 HideMainForm() 、 ShowMenu() 、 HideMenu() 、 ShowToolBar() 、 HideToolBar() 等来实现。

规则 3 :通过调用 StartFRecord() 或 StartOscil() 函数来开始或停止录波器或双踪示波器的工作,这两个函数均是头一次启动 ( 未采样前调用时 ) ,第二次停止 ( 开始采样后调用时 ) ,再一次又启动。如果录波器界面是显示的,用户有可能通过录波器界面中进行启动或停止采样操作,因此,当前是处于采样还是停止状态,可通过 QuerySampStatus() 函数进行查询。

规则 4 :在调用 InitialCore() 后,可通过 GetSimpleConf() 函数查询录波器的基本配置信息,也可通过 SumpConfigFromFRecord 得到录波器的信息配置信息。同时,可通过 SetConfigToFRecord() 详细配置录波器的各种参数,或在录波器内部进行参数配置后,通过 LoadConfigFromFile() 或 SaveConfigToFile() 函数把配置信息从配置文件中读取或保存。

规则 5: 录波器开始采样后,可通过 GetADBuf() 取得最新一块采集缓冲区的内容,或通过 GetRAMBuf() 取得连续储存的工作缓冲区中任意位置的采集内容,或通过 GetDispBufAny() 拷贝当前显示缓冲区中的采集结果。同时,可以通过 GetEngineeringValueAllChn() 函数返回采集结果的工程量纲值。

规则 6 :若以示波器方式进行采集,录波器模块在工作时,用户重新还可以在任意时候直接调用 ADCard.DLL 中的 GetSanpshot() 函数,直接从驱动程序中返回最新采集结果。

规则 7 :对于 C/C++ 用户,还可以调用 SetupADCallBack() 函数,在录波器模块每得到一块采集数据时,回调用户设置的处理程序,并把当前采集数据的指针通过给用户处理程序,实现采集数据的连续、实时处理。使用示例可参见 C++Builder 、 VC 、 Delphi 下示例程序源代码。

规则 8 :对 VC++ 程序,头文件定义在 FrecordCoreVC.h 中,程序在初始时必须调用函数 InitialFRecordCoreInterface( 实现在文件 VCFrecordCore.cpp) ,且必须返回 1 ,才能调用其它 FRecordCore.DLL 中的其它函数,且用户程序的工程中必须包含 VCFrecordCore.cpp 文件。

VC 编程示例见 VCTestCore.ZIP 。

C++Builder 编程示例见 CBTestCore.ZIP 。

VB 下编程示例见 VBTestCore.ZIP 。

Delphi 下编程示例见 DtestCore.ZIP 。

详细编程接口说明

系统初始化及结束

//system initial & cleanup

•  初始化录波器核心功能模块。

C 语言调用接口:

int __stdcall InitialCore(void);

VB 调用接口:

Declare Function InitialCore Lib "FRecordCore" () As Long

功能及参数说明:

在使用如下任何功能前应先调用此函数进行初始化。初始化成功则函数返回 1 ,失败则返回 0 。失败的原因可能是初始化成功后再调用此函数,而且未调用 CloseCore() 函数。

•  关闭录波器核心功能模块。

C 语言调用接口:

int __stdcall CloseCore(void);

VB 调用接口:

Declare Function CloseCore Lib "FRecordCore" () As Long

功能及参数说明:

程序退出之前,应调用此函数,以便释放所分配的资源,并进行必要的善后处理。调用成功函数返回 1 ,失败返回 0 。

窗口管理

// Form management

•  显示录波器主界面。

C 语言调用接口:

int __stdcall ShowMainForm(void);

VB 调用接口:

Declare Function ShowMainForm Lib "FRecordCore" () As Long

功能及参数说明:

录波器的主界面是录波器所有功能的控制中心,并且是波形显示的窗口。需要调用此函数才能显示。调用成功函数返回 1 ,失败返回 0 。

•  隐藏录波器主界面。

C 语言调用接口:

int __stdcall HideMainForm(void);

VB 调用接口:

Declare Function HideMainForm Lib "FRecordCore" () As Long

功能及参数说明:

录波器的主界面是录波器所有功能的控制中心,并且是波形显示的窗口。调用此函数将从程序隐藏它。调用成功函数返回 1 ,失败返回 0 。

•  显示录波器主菜单

C 语言调用接口:

int __stdcall ShowMenu(void);

VB 调用接口:

Declare Function ShowMenu Lib "FRecordCore" () As Long

功能及参数说明:

调用此函数才能显示录波器主界面上的菜单项。调用成功函数返回 1 ,失败返回 0 。

•  隐藏录波器主菜单

C 语言调用接口:

int __stdcall HideMenu(void);

VB 调用接口:

Declare Function HideMenu Lib "FRecordCore" () As Long

功能及参数说明:

调用此函数隐藏录波器主界面上的菜单项。调用成功函数返回 1 ,失败返回 0 。

•  显示录波器主工具栏

C 语言调用接口:

int __stdcall ShowToolBar(void);

VB 调用接口:

Declare Function ShowToolBar Lib "FRecordCore" () As Long

功能及参数说明:

调用此函数才能显示录波器主界面上的工具栏。调用成功函数返回 1 ,失败返回 0 。

•  隐藏录波器主工具栏

C 语言调用接口:

int __stdcall HideToolBar(void);

VB 调用接口:

Declare Function HideToolBar Lib "FRecordCore" () As Long

功能及参数说明:

调用此函数隐藏录波器主界面上的工具栏。调用成功函数返回 1 ,失败返回 0 。

•  显示录波器版本说明窗口

C 语言调用接口:

int __stdcall ShowAbout(void);

VB 调用接口:

Declare Function ShowAbout Lib "FRecordCore" () As Long

功能及参数说明:

调用此函数将显示录波器的版本说明窗口,此窗口几秒钟后将自动隐藏。调用成功函数返回 1 ,失败返回 0 。

•  在主窗口中显示启动 / 停止录波器的命令按钮

C 语言调用接口:

int __stdcall ShowStartButton(void);

VB 调用接口:

Declare Function ShowStartButton Lib "FRecordCore" () As Long

功能及参数说明:

调用此函数将在主窗口中显示启动 / 停止录波器 / 示波器的命令按钮,从而可以在主窗口中直接进行启动、停止操作。调用成功函数返回 1 ,失败返回 0 。

•  在主窗口中隐藏启动 / 停止录波器的命令按钮

C 语言调用接口:

int __stdcall HideStartButton(void);

VB 调用接口:

Declare Function HideStartButton Lib "FRecordCore" () As Long

功能及参数说明:

调用此函数将在主窗口中隐藏启动 / 停止录波器 / 示波器的命令按钮,从而不允许在主窗口中直接进行启动、停止操作,而只能在用户程序中通过 StartFRecord/StartOscil 进行启动,以在启动时完成必要的辅助工作。调用成功函数返回 1 ,失败返回 0 。

10. 此调用使录波器显示波形曲线

C 语言调用接口:

int __stdcall FRecordViewWaveform(void);

VB 调用接口:

Declare Function FRecordViewWaveform Lib "FRecordCore" () As Long

功能及参数说明:

此函数使录波器显示采集的波形。 FRecordViewWaveform() 与 FRecordViewText() 、 FRecordViewGridDirectValue() 、 FRecordViewGridEngineeringValue() 、 FRecordViewGridHexValue() 等是互斥的。

11. 此调用使录波器显示文本方式的运行日志

C 语言调用接口:

int __stdcall FRecordViewText(void);

VB 调用接口:

Declare Function FRecordViewText Lib "FRecordCore" () As Long

功能及参数说明:

此函数使录波器显示文字方式的运行日志。 FRecordViewWaveform() 与 FRecordViewText() 、 FRecordViewGridDirectValue() 、 FRecordViewGridEngineeringValue() 、 FRecordViewGridHexValue() 等是互斥的。

12. 此调用使 Grid 中的采集数据以直接采集量方式显示

C 语言调用接口:

int __stdcall FRecordViewGridDirectValue(void);

VB 调用接口:

Declare Function FRecordViewGridDirectValue Lib "FRecordCore" () As Long

功能及参数说明:

此函数使录波器在网格中显示文字方式采集结果,且是直接采集量方式 (-5V~5V 的原始 AD 值 ) 。 FRecordViewWaveform() 与 FRecordViewText() 、 FRecordViewGridDirectValue() 、 FRecordViewGridEngineeringValue() 、 FRecordViewGridHexValue() 等是互斥的。

13. 此调用使 Grid 中的采集数据以工程量纲方式显示

C 语言调用接口:

int __stdcall FRecordViewGridEngineeringValue(void);

VB 调用接口:

Declare Function FRecordViewGridEngineeringValue Lib "FRecordCore" () As Long

功能及参数说明:

此函数使录波器在网格中显示文字方式采集结果,且是工程量纲方式。 FRecordViewWaveform() 与 FRecordViewText() 、 FRecordViewGridDirectValue() 、 FRecordViewGridEngineeringValue() 、 FRecordViewGridHexValue() 等是互斥的。

14. 此调用使 Grid 中的采集数据以十六进制方式显示原始采集值

C 语言调用接口:

int __stdcall FRecordViewGridHexValue(void);

VB 调用接口:

Declare Function FRecordViewGridHexValue Lib "FRecordCore" () As Long

功能及参数说明:

此函数使录波器在网格中显示文字方式采集结果,且是十六进制、原始 AD 值方式 (0~0xffff) 。 FRecordViewWaveform() 与 FRecordViewText() 、 FRecordViewGridDirectValue() 、 FRecordViewGridEngineeringValue() 、 FRecordViewGridHexValue() 等是互斥的。

录波器、示波器操作

//FRecord / Oscil operation

•  启动 / 停止录波器的连续记录方式 ( 录波器方式 )

C 语言调用接口:

int __stdcall StartFRecord(void);

VB 调用接口:

Declare Function StartFRecord Lib "FRecordCore" () As Long

功能及参数说明:

调用此函数将启动或停止录波器的连续采集工作方式,头一次调用启动,再一次调用停止,再一次将再启动。调用成功函数返回 1 ,失败返回 0 。

•  启动 / 停止录波器的示波器方式

C 语言调用接口:

int __stdcall StartOscil(void);

VB 调用接口:

Declare Function StartOscil Lib "FRecordCore" () As Long

功能及参数说明:

调用此函数将启动或停止录波器的录波器工作方式,头一次调用启动,再一次调用停止,再一次将再启动。调用成功函数返回 1 ,失败返回 0 。

•  查询录波器当前工作方式

C 语言调用接口:

int __stdcall QuerySampStatus(void);

VB 调用接口:

Declare Function QuerySampStatus Lib "FRecordCore" () As Long

功能及参数说明:

调用此函数将查询录波器的工作方式。函数返回 0 表示调用失败,返回 1 表示录波器处于未采集 ( 未启动 ) 状态,返回 2 表示处于连续采集状态,返回 3 表示处于示波器状态。

配置信息

//config information

•  得到录波器简单配置信息

C 语言调用接口:

int __stdcall GetSimpleConf(int * Analog_Num,

int * SW_Num,

int * NumChn,

int * SampNum,

int * MaxBlock,

int * ADBit,

float * ChnFrq,

short * AmpGain,

int * SimulateAD);

VB 调用接口:

Declare Function GetSimpleConf Lib "FRecordCore" (ByRef AnalogNum As Long, ByRef SWNum As Long, _

ByRef NumChn As Long, ByRef SampNum As Long, _

ByRef MaxBlock As Long, ByRef ADBit As Long, _

ByRef ChnFrq As Single, ByRef AmpGain As Integer, ByRef SimulateAD As Long) As Long

功能及参数说明:

调用此函数将查询录波器的简单配置信息。函数返回 0 表示调用失败,返回 1 表示需要的参数正确返回: Analog_Num 表示模拟量通道数; SW_Num 表示开关量通道数; NumChn 表示模拟量+开关量合起来占的模拟量通道位置数; SampNum 表示每块采样数; MaxBlock 表示连续采集方式下内存缓冲区的块数; ADBit 反映当前使用的 AD 芯片的分辨率位数 ; ChnFrq 表示每通道的实际采样频率 , AmpGain 返回程控放大倍数, SimulateAD 返回录波器模块设置的是使用实际 AD 采集板或是仿真数据 (0 为实际采集板 ) 。

•  返回通道属性配置缓冲区 structChnProp[MAX_LINES] 的尺寸

C 语言调用接口:

int __stdcall QueryChnPropSize(void);

VB 调用接口:

Declare Function QueryChnPropSize Lib "FRecordCore" () As Long

功能及参数说明:

此调用作为 GetChnProp 的正确性的保证。

•  返回通道属性的详细配置,

C 语言调用接口:

int __stdcall GetChnProp(char * CardName,

void * pChnProp,

void * pSWConfig);

VB 调用接口:

Declare Function GetChnProp Lib "FRecordCore" _

(ByRef CardName As Any, _

ByRef pChnProp As Any, _

ByRef pSWConfig As Any) As Long

功能及参数说明:

CardName 应为 16 字节的字符数组

pChnProp 应指向 structChnProp ChnProp[MAX_LINES]

pSWConfig 应指向 structSWConfig SWConfig[MAX_SW]

调用成功时,返回 true, 否则返回 False

•  根据配置文件重新配置录波器

C 语言调用接口:

int __stdcall SetCompleteConfig(char * ConfigFileName);

VB 调用接口:

Declare Function SetCompleteConfig Lib "FRecordCore" (ByVal ConfigFileName As String) As Long

功能及参数说明:

调用此函数将迫使录波器按 ConfigFileName 指定的配置文件重新配置。函数返回 0 表示调用失败,返回 1 成功地重新配置。

•  返回系统配置缓冲区 ConfigBuf 的尺寸

C 语言调用接口:

int __stdcall QueryConfigBufSize(void);

VB 调用接口:

Declare Function QueryConfigBufSize Lib "FRecordCore" () As Long

功能及参数说明:

此函数返回录波器配置缓冲区 ConfigBuf 的大小,以便应用程序正确分配缓冲区尺寸。

•  从指定文件中读取配置信息于缓冲区 ConfigBuf

C 语言调用接口:

int __stdcall LoadConfigFromFile(void * ConfigBuf,char * ConfigFileName);

VB 调用接口:

功能及参数说明:

ConfigBuf 应指向结构 struct structFRecordConfig ,将存放 ConfigFileName 中的配置信息。

•  把缓冲区 ConfigBuf 中的配置信息存入指定文件

C 语言调用接口:

int __stdcall SaveConfigToFile(void * ConfigBuf,char * ConfigFileName);

VB 调用接口:

功能及参数说明:

此函数把 ConfigBuf 中的配置信息写入文件 ConfigFileName 。

•  把系统配置信息复制入缓冲区 ConfigBuf

C 语言调用接口:

int __stdcall DumpConfigFromFRecord(void * ConfigBuf);

VB 调用接口:

功能及参数说明:

•  把缓冲区 ConfigBuf 中的配置信息在 Frecord 中生效

C 语言调用接口:

int __stdcall SetConfigToFRecord(void * ConfigBuf);

VB 调用接口:

功能及参数说明:

此函数使录波器使用缓冲区 ConfigBuf 中的配置信息。

•  此调用设置万能页显示的通道

C 语言调用接口:

int __stdcall SetVPage(int nChnAD,int nChnSW, int * DispChn);

VB 调用接口:

Declare Function SetVPage Lib "FRecordCore" (ByVal nChnAD As Long, ByVal nChnSW As Long, ByRef DispChn As Long) As Long

功能及参数说明:

其中: DispChn 中依次排列 nChnAD 个模拟量通道号 (0~Analog_Num-1) ,

和 nChnSW 个开关量通道号 (0~SW_Num-1)

•  此调用设置示波器方式下显示的两通道的属性,

C 语言调用接口:

int __stdcall SetOscilChn(int ADChn1,int ADChn2,int ADChn1Enabled,int ADChn2Enabled);

VB 调用接口:

Declare Function SetOscilChn Lib "FRecordCore" (ByVal ADChn1 As Long, ByVal ADChn2 As Long, ByVal ADChn1Enabled As Long, ByVal ADChn2Enabled As Long) As Long

功能及参数说明:

其中: 综 1 和综 2 是否显示 (ADChn1Enabled,ADChn2Enabled) 、

和显示的采集通道号 (ADChn1,ADChn2 ,其中 iChn>=Analog_Num 表示是开关量通道 (iChn-Analog_Num))

•  读取系统缺省配置

C 语言调用接口:

int __stdcall LoadDefaultFRecondConfig(void);

VB 调用接口:

Declare Function LoadDefaultFRecondConfig Lib "FRecordCore" () As Long

功能及参数说明:

从当前目录中以采集板名称为名称或 Default.FCG 为名称的配置文件中读取系统配置

•  执行 " 系统参数 | 从文件读取配置信息 " 菜单命令

C 语言调用接口:

int __stdcall FRecordLoadSysConfigWithPrompt(void);

VB 调用接口:

Declare Function FRecordLoadSysConfigWithPrompt Lib "FRecordCore" () As Long

功能及参数说明:

此函数使录波器模块执行 " 系统参数 | 从文件读取配置信息 " 菜单命令。

•  执行 " 系统参数 | 当前配置信息存文件 " 菜单命令

C 语言调用接口:

int __stdcall FRecordSaveSysConfigWithPrompt(void);

VB 调用接口:

Declare Function FRecordSaveSysConfigWithPrompt Lib "FRecordCore" () As Long

功能及参数说明:

此函数使录波器软件模块执行 " 系统参数 | 当前配置信息存文件 " 菜单命令。

数据管理

//AD Data manifest

•  拷贝录波器中当前单 AD 缓冲区的采集结果

C 语言调用接口:

int __stdcall GetADBuf(WORD * Buf);

VB 调用接口:

Declare Function GetADBuf Lib "FRecordCore" (ByRef Buf As Integer) As Long

功能及参数说明:

调用此函数将把当前最新的 AD 缓冲区的采集结果拷贝到 Buf 中。 Buf 要求容量为 NumSamp*NumChn+1 个 WORD ,第一个 WORD 为序号,以后顺序存放各通道 ( 共 NumChn 通道 ) 的 NumSamp 个采样点的值 ( 原始值 ) 。调用成功函数返回 1 ,失败返回 0 。

•  拷贝录波器中当前连续 AD 缓冲区的采集结果

C 语言调用接口:

int __stdcall GetRAMBuf(WORD * Buf,int StartPoint, int EndPoint);

VB 调用接口:

Declare Function GetRAMBuf Lib "FRecordCore" (ByRef Buf As Integer, ByVal StartPoint As Long, ByVal EndPoint As Long) As Long

功能及参数说明:

录波器工作在连续采集方式时,调用此函数将把多缓冲区中的 AD 采集结果拷贝到 Buf 中,多缓冲区的起始点位置为 StartPoint ,终止点位置为 EndPoint ,其范围为 0 ~ NumSamp*MaxBlock-1 。 Buf 要求容量为 (EndPoint-StartPoint+1)*NumChn 个 WORD ,各通道 ( 共 NumChn 通道 ) 、各采样点的原始值顺序存放。调用成功函数返回 1 ,失败返回 0 。

•  拷贝录波器中当前示波器方式的采集结果

C 语言调用接口:

int __stdcall FromSnapshot(WORD * Buf);

VB 调用接口:

Declare Function FromSnapshot Lib "FRecordCore" (ByRef Buf As Integer) As Long

功能及参数说明:

录波器工作在示波器方式时,调用此函数将强制录波器再从 AD 板中获取最新采样数据,并把它拷贝到 Buf 中。 Buf 要求容量为 NumSamp*NumChn + 1 个 WORD ,第一个 WORD 存放 AD 块的序号,以后顺序存放各通道 ( 共 NumChn 通道 ) 、各采样点的 AD 值 ( 原始值 ) 。调用成功函数返回 1 ,失败返回 0 。

•  查询录波器当前显示波形的格式

C 语言调用接口:

int __stdcall QueryDispBuf(int * NumChn0, int * SW_Num0, int * PointNum);

VB 调用接口:

Declare Function QueryDispBuf Lib "FRecordCore" (ByRef NumChn0 As Long, ByRef SW_Num0 As Long, ByRef PointNum As Long) As Long

功能及参数说明:

调用此函数将返回当前录波器显示波形的格式 ( 有可能显示的是连续采集、示波器、或历史数据等不同的可能 ) 。 NumChn0 为总通道数,其中有 SW_Num0 个开关量通道 ( 占用 (SW_Num0+15)/16 个模拟量通道的位置 ) , PointNum 为总采样点数。调用成功函数返回 1 ,失败返回 0 。

•  拷贝录波器中当前显示的采集结果

C 语言调用接口:

int __stdcall GetDispBufAny(WORD * Buf, int StartPoint, int EndPoint);

VB 调用接口:

Declare Function GetDispBufAny Lib "FRecordCore" (ByRef Buf As Integer, ByVal StartPoint As Long, ByVal EndPoint As Long) As Long

功能及参数说明:

调用此函数将把当前录波器显示的缓冲区中的指定 AD 数据拷贝到 Buf 中。 Buf 要求容量为 (EndPoint-StartPoint+1)*NumChn 个 WORD ,各通道 ( 共 NumChn 通道 ) 、各采样点的 AD 值 ( 原始值 ) 顺序存放。调用成功函数返回 1 ,失败返回 0 。

•  查询录波器当前显示波形的范围

C 语言调用接口:

int __stdcall QueryDisplayed(int * StartPoint, int * EndPoint);

VB 调用接口:

Declare Function QueryDisplayed Lib "FRecordCore" (ByRef StartPoint As Long, ByRef EndPoint As Long) As Long

功能及参数说明:

调用此函数将返回当前录波器在屏幕上显示波形在缓冲区中的范围。 StartPoint 为起始位置, EndPoint 为结束位置。调用成功函数返回 1 ,失败返回 0 。

•  拷贝录波器中当前显示范围的采集结果

C 语言调用接口:

int __stdcall GetDisplayed(WORD * Buf);

VB 调用接口:

Declare Function GetDisplayed Lib "FRecordCore" (ByRef Buf As Integer) As Long

功能及参数说明:

调用此函数将把当前录波器屏幕上显示范围内的 AD 数据拷贝到 Buf 中。 Buf 要求容量为 (EndPoint-StartPoint+1)*NumChn 个 WORD ,各通道 ( 共 NumChn 通道 ) 、各采样点的 AD 值 ( 原始值 ) 顺序存放, EndPoint 和 StartPoint 为 QueryDisplayed() 的返回值。调用成功函数返回 1 ,失败返回 0 。

•  查询录波器当前瞬时值标线的位置

C 语言调用接口:

int __stdcall QueryMarked(int * StartPoint, int * EndPoint);

VB 调用接口:

Declare Function QueryMarked Lib "FRecordCore" (ByRef StartPoint As Long, ByRef EndPoint As Long) As Long

功能及参数说明:

调用此函数将返回当前录波器在屏幕上显示波形时双瞬时标线在整个缓冲区中的位置。 StartPoint 为一个瞬时标线的位置, EndPoint 为另一个瞬时标线的位置。调用成功函数返回 1 ,失败返回 0 。

•  拷贝录波器中当前瞬时值波形范围内的采集结果

C 语言调用接口:

int __stdcall GetMarked(WORD * Buf);

VB 调用接口:

Declare Function GetMarked Lib "FRecordCore" (ByRef Buf As Integer) As Long

功能及参数说明:

调用此函数将把当前录波器屏幕上双瞬时标线范围内的 AD 数据拷贝到 Buf 中。 Buf 要求容量为 (EndPoint-StartPoint+1)*NumChn 个 WORD ,各通道 ( 共 NumChn 通道 ) 、各采样点的 AD 值 ( 原始值 ) 顺序存放, EndPoint 和 StartPoint 为 QueryMarked() 的返回值。调用成功函数返回 1 ,失败返回 0 。

•  返回 AD 采集结果多通道的工程量

C 语言调用接口:

int __stdcall GetEngineeringValueAllChn(double * EngBuff, int PointPos);

VB 调用接口:

Declare Function GetEngineeringValueAllChn Lib "FRecordCore" (ByRef EngBuff As Double, ByVal PointPos As Long) As Long

功能及参数说明:

此调用把显示缓冲区 DispBuf 中第 PointPos( 逻辑 ) 采样点 ( 从 0 编号 , 显示全部波形时波形区上最左边的为第 0 点 ) 的 Analog_Num 个通道的工程值返回在缓冲区 EngBuff 中。缓冲区 EngBuff 要求 Analog_Num 个双精度浮点数。调用成功函数返回 1 ,失败返回 0 。

•  返回 AD 采集结果单通道的工程量

C 语言调用接口:

int __stdcall GetEngineeringValue1Chn(double * EngBuff, int PointPos, int iChn);

VB 调用接口:

Declare Function GetEngineeringValue1Chn Lib "FRecordCore" (ByRef EngBuff As Double, ByVal PointPos As Long, ByVal iChn As Long) As Long

功能及参数说明:

此调用把显示缓冲区 DispBuf 中第 PointPos( 逻辑 ) 采样点 ( 从 0 编号 , 显示全部波形时波形区上最左边的为第 0 点 ) 的第 iChn 通道的工程值返回在缓冲区 EngBuff 中。缓冲区 EngBuff 要求 1 个双精度浮点数。调用成功函数返回 1 ,失败返回 0 。

•  返回读取环境温度值

C 语言调用接口:

double __stdcall FRecordUpdateEnvTemp(WORD * ADBuf, int NumChn, int iPos);

VB 调用接口:

Declare Function FRecordUpdateEnvTemp Lib "FRecordCore" _

(ByRef iADBuf As Integer, _

ByVal iNumChn As Long, _

ByVal iPos As Long) As Double

功能及参数说明:

注:若环境温度是由某传感器测量的话 , 此调用根据 NmChn 个通道的采集缓冲区 ADBuf, 确定第 iPos 点处的环境温度值 ( 环境温度测量值在 ADBuf[iPos*NumChn+iChn] 处, iChn 由 FRecord 中环境温度通道指定 ) 。在调用 FRecordEngineeringValueFromBuff,FRecordEngineeringValueFromADValue 和 FRecordADValueFromEngineeringValue 之前 , 应调用此函数 , 以便正确地计算需要补偿的 J 、 K 型热电偶的环境温度。

•  返回缓冲区中采集量的工程量纲值

C 语言调用接口:

double __stdcall FRecordEngineeringValueFromBuff(WORD * ADBuf, int NumChn, int iPos, int iChn);

VB 调用接口:

Declare Function FRecordEngineeringValueFromBuff Lib "FRecordCore" _

(ByRef ADBuf As Integer, _

ByVal NumChn As Long, _

ByVal iPos As Long, _

ByVal iChn As Long) As Double

功能及参数说明:

此调用返回 NumChn 通道的采集缓冲区 ADBuf 中,第 iChn 通道、第 iPos 位置处的工程量纲下的值 ( 采集值原始量为 ADBuf[iPos*NumChn+iChn] ,通道属性在 FRecord 中定义 )

•  返回特定采集值的工程量纲值

C 语言调用接口:

double __stdcall FRecordEngineeringValueFromADValue(float ADValue, int iChn);

VB 调用接口:

Declare Function FRecordEngineeringValueFromADValue Lib "FRecordCore" _

(ByVal ADValue As Single, _

ByVal iChn As Long) As Double

功能及参数说明:

此调用返回原始采集量 ADValue 的工程量纲下的值, 所处的第 iChn 通道的属性在 FRecord 中定义

•  返回工程量纲对应的直接 AD 值

C 语言调用接口:

WORD __stdcall FRecordADValueFromEngineeringValue(double EngValue, int iChn);

VB 调用接口:

Declare Function FRecordADValueFromEngineeringValue Lib "FRecordCore" _

(ByVal EngValue As Double, _

ByVal iChn As Long) As Integer

功能及参数说明:

此调用返回工程量纲下值 EngValue 所对应的原始采集量值, 所处的第 iChn 通道的属性在 FRecord 中定义

•  返回 RAMBUF 的详细信息

C 语言调用接口:

int __stdcall GetRAMBufInfo(WORD ** pRAMBuf,

int * pCntNumSamp,

int * pCntNumChn,

int * pMaxBlock,

int * pidBlock);

VB 调用接口:

Declare Function GetRAMBufInfo Lib "FRecordCore" (ByRef pRAMBuf As Long, _

ByRef pCntNumSamp As Long, _

ByRef pCntNumChn As Long, _

ByRef pMaxBlock As Long, _

ByRef pidBlock As Long) As Long

功能及参数说明:

注:此函数提供特殊的内部编程信息,使用要注意。

// pRAMBUF: 返回 RAMBUF 的地址,通过它可以直接访问 RAMBUF

// pCntNumSamp: 返回 CntNumSamp, 块长度 ( 每块的每通道采集点数 )

// pCntNumChn: 返回 CntNumChn, 采集通道数

// pMaxBlock: 返回 pMaxBlock, RAMBuf 中的块数

// pidBlock: 返回 idBlock, 当前块在 RAMBuf 中的位置, 0 为第 1 块

//

配置界面辅助工具

//Tool function

•  调用 AD 板采集参数配置界面

C 语言调用接口:

int __stdcall SetupADCard(void);

VB 调用接口:

Declare Function SetupADCard Lib "FRecordCore" () As Long

功能及参数说明:

成功时返回 true ,负责返回 false(0) 。

•  调用 AD 板采集通道配置界面

C 语言调用接口:

int __stdcall SetupChannel(void);

VB 调用接口:

Declare Function SetupChannel Lib "FRecordCore" () As Long

功能及参数说明:

成功时返回 true ,负责返回 false(0) 。

•  调用录波器缓冲区配置界面

C 语言调用接口:

int __stdcall SetupRecordBuf(void);

VB 调用接口:

Declare Function SetupRecordBuf Lib "FRecordCore" () As Long

功能及参数说明:

成功时返回 true ,负责返回 false(0) 。

•  调用录波器配色板配置界面

C 语言调用接口:

int __stdcall SetupColorPal(void);

VB 调用接口:

Declare Function SetupColorPal Lib "FRecordCore" () As Long

功能及参数说明:

成功时返回 true ,负责返回 false(0) 。

•  调用录波器启动算法配置界面

C 语言调用接口:

int __stdcall SetupAlgorithm(void);

VB 调用接口:

Declare Function SetupAlgorithm Lib "FRecordCore" () As Long

功能及参数说明:

成功时返回 true ,负责返回 false(0) 。

•  调用录波器设备专用参数配置界面

C 语言调用接口:

int __stdcall SetupIOCtl(void);

VB 调用接口:

Declare Function SetupIOCtl Lib "FRecordCore" () As Long

功能及参数说明:

成功时返回 true ,负责返回 false(0) 。

•  调用录波器通道校准界面

C 语言调用接口:

int __stdcall SetupCalibrate(void);

VB 调用接口:

Declare Function SetupCalibrate Lib "FRecordCore" () As Long

功能及参数说明:

成功时返回 true ,负责返回 false(0) 。

•  调用录波器万能页配置界面

C 语言调用接口:

int __stdcall SetupVPage(void);

VB 调用接口:

Declare Function SetupVPage Lib "FRecordCore" () As Long

功能及参数说明:

成功时返回 true ,负责返回 false(0) 。

•  设置录波器 AD 采集回调处理函数

C 语言调用接口:

int __stdcall SetupADCallBack( void __stdcall fCallBack(WORD * ADBuf, int NumChn, int NumSamp));

功能及参数说明:

本函数设置录波器每采集一块结果时 , 用户程序对采集数据进行处理的回调函数 .C/C++ 下回调函数的例子为 :

void __stdcall CallBackFunction(WORD * ADBuf, int NumChn, int NumSamp)

{

// 用户对 ADBuf[1+NumChn*NumSamp] 中的数据进行处理

}

调用方式为 : SetupADCallBack(&CallBackFunction); 成功时返回 true ,负责返回 false(0) 。

注:此函数只能在 C/C++ 语言 ( 要求支持函数地址 ) 下使用 ,VB 下不支持。

•  设置启动录波器前的回调处理函数

C 语言调用接口:

int __stdcall SetupPrepareStartFRecordCallBack( int __stdcall fCallBack(int SampStatus));

功能及参数说明:

本函数设置在启动录波器或示波器前,用户程序为检查或调整录波器的系统参数而进行处理的回调函数。注意,由于参数配置不合理,启动录波器可能失败,而且,启动过程中,如果要求使用从历史记录文件中回放数据的模拟调试功能,或网络远程启动功能,录波器的参数还可能变化 ( 使用临时配置 ) ,因此,此回调函数与 StartFRecordCallBack 用法稍有不同。而且,回调过 PrepareStartFRecordCallBack 后,可能不会回调 StartFRecordCallBack( 因为启动不成功 ) ,而且,两次回调时系统配置可能不同。特别注意的是,在此回调函数中可以修改系统配置,在 StartFRecordCallBack 中一定不能再修改配置参数。 C/C++ 下回调函数的例子为 :

int __stdcall PrepareStartFRecordCallBackFunction(int SampStatus)

{

// 用户对开始采样前的参数检查、停止等准备工作

if(SampStatus==1) {

//FRecord mode

} else

if(SampStatus==2) {

// Oscil Mode

} else {

// error, not possible

}

return true; //return true, 若系统参数正确,允许系统继续启动录波器

// 否则, return false ,指示系统停止启动录波器的任务 ;

}

调用方式为 : SetupPrepareStartFRecordCallBack(&PrepareStartFRecordCallBackFunction); 成功时返回 true ,负责返回 false(0) 。

注:此函数只能在 C/C++ 语言 ( 要求支持函数地址 ) 下使用 ,VB 下不支持。

•  设置启动录波器成功后的回调处理函数

C 语言调用接口:

int __stdcall SetupStartFRecordCallBack( void __stdcall fCallBack(int SampStatus));

功能及参数说明:

本函数设置在启动录波器或示波器成功后,但在有实际 AD 采集数据到达前,用户程序进行必要准备工作而进行处理的回调函数。注意,由于参数配置不合理,启动录波器可能失败,而且,启动过程中,如果要求使用从历史记录文件中回放数据的模拟调试功能,或网络远程启动功能,录波器的参数还可能变化 ( 使用临时配置 ) ,因此,此回调函数与前一个 PrepareStartFRecordCallBack 用法稍有不同。特别注意的是,在此回调函数中一定不能再修改系统配置参数。 C/C++ 下回调函数的例子为 :

void __stdcall StartFRecordCallBackFunction(int SampStatus)

{

// 用户对启动成功后、但实际处理 AD 采样数据前的准备工作

if(SampStatus==1) {

//FRecord mode

} else

if(SampStatus==2) {

// Oscil Mode

} else {

// error, not possible

}

return;

}

调用方式为 : SetupStartFRecordCallBack(&StartFRecordCallBackFunction); 成功时返回 true ,负责返回 false(0) 。

注:此函数只能在 C/C++ 语言 ( 要求支持函数地址 ) 下使用 ,VB 下不支持。

•  设置停止录波器后的回调处理函数

C 语言调用接口:

int __stdcall SetupStopFRecordCallBack( void __stdcall fCallBack(int SampStatus));

功能及参数说明:

本函数设置停止录波器或示波器后,用户程序进行必要善后处理工作而进行处理的回调函数。此回调函数与 StartFRecordCallBack 应成对出现并被成对调用。 C/C++ 下回调函数的例子为 :

void __stdcall StopFRecordCallBackFunction(int SampStatus)

{

// 程序自动或手动停止采样后的后处理工作

if(SampStatus==1) {

//FRecord mode

} else

if(SampStatus==2) {

// Oscil Mode

} else {

// error, not possible

}

return;

}

调用方式为 : SetupStopFRecordCallBack(&StopFRecordCallBackFunction); 成功时返回 true ,负责返回 false(0) 。

注:此函数只能在 C/C++ 语言 ( 要求支持函数地址 ) 下使用 ,VB 下不支持。

杂类功能

//miscellenouse function

•  使录波器工作于单机方式

C 语言调用接口:

int __stdcall DoAlone(void);

VB 调用接口:

Declare Function DoAlone Lib "FRecordCore" () As Long

功能及参数说明:

调用此函数将使录波器工作在单机方式,即屏蔽网络采集功能。注意:程序会自动记忆网络工作模式,即使用户程序重新启动后。调用成功函数返回 1 ,失败返回 0 。

•  使录波器工作于现场采集站方式 ( 服务器方式 )

C 语言调用接口:

int __stdcall DoServer(void);

VB 调用接口:

Declare Function DoServer Lib "FRecordCore" () As Long

功能及参数说明:

调用此函数将使录波器工作在现场采集站方式,即它采集的 AD 数据通过网络可供远程控制台读取。注意:程序会自动记忆网络工作模式,即使用户程序重新启动后。调用成功函数返回 1 ,失败返回 0 。

•  使录波器工作于远程控制台方式 ( 客户站方式 )

C 语言调用接口:

int __stdcall DoClient(void);

VB 调用接口:

Declare Function DoClient Lib "FRecordCore" () As Long

功能及参数说明:

调用此函数将使录波器工作在远程控制台方式,即它通过网络从现场采集站获取 AD 数据。这时要求从键盘输入现场采集站的 IP 地址。注意:程序会自动记忆网络工作模式,即使用户程序重新启动后。调用成功函数返回 1 ,失败返回 0 。

•  使录波器显示远程遥控窗口

C 语言调用接口:

int __stdcall DoRemoteControl(void);

VB 调用接口:

Declare Function DoRemoteControl Lib "FRecordCore" () As Long

功能及参数说明:

调用此函数将使录波器弹出远程控制窗口,从而通过 TCP/IP 协议遥控另外一台录波器。调用成功函数返回 1 ,失败返回 0 。

•  查询录波器的网络状态

C 语言调用接口:

int __stdcall QueryNetwork(int * IsAlone, int * Controlled);

VB 调用接口:

Declare Function QueryNetwork Lib "FRecordCore" (ByRef IsAlone As Long, ByRef Controlled As Long) As Long

功能及参数说明:

调用此函数返回当前录波器的网络状态, IsAlone=0 说明处于单机方式, =1 说明处于现场采集站方式, =2 说明处于远程控制台模式。 Controlled=0 说明此录波器没有被别的录波器遥控,否则说明网络上有另一个录波器遥控着本录波器的运行。调用成功函数返回 1 ,失败返回 0 。

•  发送设备专用数据

C 语言调用接口:

int __stdcall CoreIOCtl(int InSize, char * InBuff, int OutSize, char * OutBuff);

VB 调用接口:

Declare Function CoreIOCtl Lib "FRecordCore" (ByVal InSize As Long, ByRef InBuff As Byte, ByVal OutSize As Long, ByRef OutBuff As Byte) As Long

功能及参数说明:

调用此函数向低层设备驱动程序发送专用数据。发送和接收的数据的格式依赖于具体使用的 AD 板驱动程序。调用成功函数返回 1 ,失败返回 0 。

•  端口操作

C 语言调用接口:

int __stdcall ToolInportB(int port);

int __stdcall ToolInport(int port);

int __stdcall ToolInportDW(int port);

void __stdcall ToolOutportB(int port,int value);

void __stdcall ToolOutport(int port,int value);

void __stdcall ToolOutportDW(int port,int value);

VB 调用接口:

Declare Sub ToolOutportB Lib "FRecordCore" (ByVal Port As Integer, ByVal Value As Integer)

Declare Sub ToolOutport Lib "FRecordCore" (ByVal Port As Integer, ByVal Value As Integer)

Declare Sub ToolOutportDW Lib "FRecordCore" (ByVal Port As Integer, ByVal Value As Long)

Declare Function ToolInportB Lib "FRecordCore" (ByVal Port As Integer) As Integer

Declare Function ToolInport Lib "FRecordCore" (ByVal Port As Integer) As Integer

Declare Function ToolInportDW Lib "FRecordCore" (ByVal Port As Integer) As Long

功能及参数说明:

调用此组函数将可直接操作硬件端口,。

8 字符串操作

int __stdcall ToolCopyString(char * dString, char * sString);

VB 调用接口:

Declare Sub ToolCopyString Lib "FRecordCore" (ByRef dBuf As Byte, ByVal sBuf As String)

Declare Sub ToolCopyToString Lib "FRecordCore" Alias "ToolCopyString" (ByVal dBuf As String, ByRef sBuf As Byte)

功能及参数说明:

此函数实现 C 语言的 strcpy 功能,可用于 VB 中进行由字符数组向字符串的赋值。

9 波形存盘操作

int __stdcall SaveWaveFormAsBitmap(char * FileName);

VB 调用接口:

Declare Function SaveWaveFormAsBitmap Lib "FRecordCore" (ByRef FileName As Byte) As Long

Declare Function SaveWaveFormAsBitmap1 Lib "FRecordCore" Alias "SaveWaveFormAsBitmap" (ByRef FileName As Byte) As Long

功能及参数说明:

此函数把当前屏幕上的采集波形按 Bitmap 文件的格式存盘,文件名由 FileName 指定

int __stdcall SaveWaveFormAsText(char * FileName);

VB 调用接口:

Declare Function SaveWaveFormAsText Lib "FRecordCore" (ByRef FileName As Byte) As Long

Declare Function SaveWaveFormAsText1 Lib "FRecordCore" Alias "SaveWaveFormAsText" (ByRef FileName As Byte) As Long

功能及参数说明:

此函数把当前屏幕上的采集数据按 Text 文件的格式存盘,文件名由 FileName 指定