• 销售138-1082-4283 / 138-1062-7682
  • 投诉电话:139-1165-8145
  • ztic@ztic.cn (销售)
  • 北京市北京经济技术开发区科创十三街29号院一区2号楼13层1301-17
手机版
扫码访问手机版
关注微信
扫码关注官方微信
  • 客服电话
    点击联系客服

    周一至周五 9:00-12:00 13:00-17:00

    客服电话

    销售138-1082-4283

    138-1062-7682

    电子邮件

    ztic@ztic.cn
  • 手机版

    扫描进手机版

    随时随地掌握行业动态

  • 官方微信

    扫描二维码

    关注中泰联创微信公众号

IntelliJ IDEA环境 Java代码调用Em9118.dll使用说明

时间:2021-10-09 作者:中泰联创

在IntelliJIDEA环境下,通过Java代码调用EM9118数据采集模块的动态库文件使用说明。

一、编程方法
1.概述

EM9118是16位450KHz多功能并行数据采集模块,是数据采集卡的一种,板载64MB硬件缓冲区保证其可以长时间连续采集。
如果使用网络接口,无需安装驱动即可操作设备。如果使用 USB 接口,则需要首先安装驱动才能够使用设备。
 
2.JAVA调用dll简述
Java程序调用动态链接库可以通过JNA (java native access) 库调用实现。JNA提供了一组Java工具类,用于在运行期间动态访问系统本地库(native library:如Window的dll)而不需要编写任何Native/JNI代码,省去了对c/c++程序的再封装操作。
EM9118.dll是PC端程序调用EM9118设备的函数库,在使用函数库时,请确保EM9118.dll至少在下面目录中的一个:工程目录、可执行文件目录、系统目录。
Java代码通过JNA库调用EM9118.dll的库函数,就可以实现对于EM9118设备的操作,和设备相关的操作,都封装在Em9118.java文件中。
上述文件均可以在示例文件目录下找到,如果用户属于资深JAVA程序员并且熟悉JetBrains的IEDA开发环境,可以直接看第五、六部分的设备相关操作。如果是初次接触JAVA编程的新手,可以顺序阅读以下章节,一步步的建立工程,最终实现对EM9118的编程操作。
 
二、建立开发环境
1.简述
用户需要准备Jdk+IntelliJ IDEA的开发环境。其中Jdk是Java开发包,可以在Oracle公司的官方网站免费下载;IntelliJ IDEA是开发Java程序的集成开发环境,在这个软件界面内可以进行编程、调试等工作。
 
2.程序下载地址
Jdk下载地址:https://www.oracle.com/cn/java/technologies/javase-jdk15-downloads.html 
选择Windows x64 Installer下载。

 

IntelliJ IDEA下载地址:https://download.jetbrains.com/idea/ideaIC-2020.3.3.win.zip


3.Jdk程序安装

执行jdk-15.0.2_windows-x64_bin.exe程序,按照提示进行默认配置安装即可。安装完成后,可以检查Jdk是否安装成功,在命令行界面下执行Java -version,可以显示计算机当前安装的Java版本信息。



在程序安装完毕后,需要检查系统变量的设置。
(1)选择【此电脑】-单击右键-【属性】

 
(2)在【系统】窗口中,选择【高级系统设置】




(3)在【系统属性】窗口中选择【环境变量】

 
 
(4)在【环境变量】窗口中选择【系统变量】下的Path,单机【编辑】按钮




(5)如果没有出现如下图红框中的Java安装目录,需要单击【新建】按钮,增加一个条目,将Jdk安装后的bin目录加入。


4.IntelliJ IDEA程序安装

解压缩下载的ideaIC-2020.3.3.win.zip文件,执行安装程序,按照提示进行默认配置安装即可。
 

四、IntelliJ IDEA界面概述

1.IDEA的默认界面如下图,


2.代码编辑窗口,在这里可以读、写、浏览源代码。
3.导航栏,操作导航栏可以在用户项目的结构中,打开各个文件。选择菜单项View | Appearance | Navigation Bar,可以开闭导航栏。
4.状态栏,显示最近的事件信息和操作提示。选择菜单项View | Appearance | Status Bar,可以开闭状态栏。
5.项目工具窗口,对编辑代码的支持,可以显示用户项目的结构信息。用户在这里可以选择项目中的各个文件。选择菜单项View | Tool Windows开闭工具窗口。
6.上下文菜单,可以在界面元素上单击右键,显示与该元素有关的操作的上下文菜单。
7.弹出菜单,支持与当前上下文相关的操作菜单。
8.运行工具窗口,显示用户程序运行输出的各项信息。
 

五、示例建立Java项目及配置开发环境

1.在启动界面后,单击【New Project】按钮


2.在【New Project】窗口中,如下图,确认选择Java项目,单击【Next】按钮。



3.在【New Project】窗口,选中【Create project from template】,单击【Next】按钮。IDEA会创建一个含有默认Main类的工程。



4.用户可以在【Project name】后,输入项目的名称,本示例使用的名称是JavaTest。在【Project location】后输入项目的存储位置。默认情况下,项目名称就是用户项目所在目录的名称。用户也可以选择其他目录存储项目,这时要保证所选目录中不包含其他Java项目。在【Base packeage】后输入用户自定义的包名称。包是Java开发过程中的一种代码组织形式,是一系列相关的类和接口的集合,这样可以最大化避免发生命名冲突的问题。用户在开发自己的程序时,也需要定义自己的包。一般形式是,com.xxxx,xxxx是指的用户自定义的名称。


单击【Finish】按钮,完成项目的创建。如果用户选择的目录不存在,IDEA会提示建立。
之后,在用户计算机中,就会出现与刚才定义相关的目录结构,其中源文件存放在下面目录中,注意“user”目录名可能会根据用户真实的用户名有所不同。



5.在项目目录中创建libs目录



6.将示例文件目录libs中的Jna5.6.0.jar文件拷贝到此目录下。



 7.将Em9118.java拷贝到项目的srccomuser目录下,保证与Main.java处于同一个目录。



用户需要将Em9118.java文件开始处的package改为用户定义的package名称。示例程序是改为package com.user;

8.将EM9118.dll拷贝到项目根目录下;
9.在IDEA的项目工具窗口中,将出现6、7、8中创建的目录和拷贝的文件。



10.此时操作EM9118所有必要的文件都已经复制到工程目录下,接下来还需要设置一些工程属性才能够正常编译调试工程:选择【File】-【Project Structure...】



11.选择【Project Settings】-【Libraries】,选择【+】-【Java】



12.选择刚才创建的libs目录下的jna-5.6.0.jar,单击【ok】按钮。


13.会出现将Jna库加入项目的提示,单击【OK】按钮确认即可。


14.出现如下的界面,表示Jna库引入项目成功。



15.此时可以在IEDA环境下调试程序,如果想要生成jar文件,则需要继续设置工程:仍然选择【File】-【Project Structure...】-【Project Settings】-【Artifacts】



按照如下设置:

 


单击OK按钮后可以看到如下界面,点击箭头所指的“+”:

 



选择File选项:

 

 
选择工程目录下的EM9118.dll:


 


此时配置应该如下所示:

 


点击OK按钮后,工程目录树应该如下所示:

 


增加了MANIFEST.MF文件,此时点击Build菜单的Build Artifacts项,就可以生成jar文件了

 

 
生成的文件在下面的目录:


 


此时在命令行窗口进入对应目录后运行:
java -jar javatest.jar
就可以得到程序的输出结果了。
 



六、接口类说明

1.Em9118.dll的Java接口类定义在Em9118.java文件中。
2.Em9118.dll输出函数的Java声明封装在Em9118 class的IEm9118 interface中。
3.Em9118 class中还定义了调用Em9118.dll输出函数所必须的各个变量;为了方便用户开发,也定义了一些方法实现用户程序对Em9118设备的连接/断开、启动/停止采集、读取采集数据等操作。
4.Em9118.strIP:设备IP地址变量
5.Em9118.iCmdPort:命令连接端口,默认值为8000.
6.Em9118.iDatPort:数据连接端口,默认值为8001.
7.Em9118.dfFreq:ad采集组频率,取值范围是可以是1~450000Hz,注意只有6通道以下才可以达到450000Hz采集频率,大于6通道只能实现100000Hz采集频率。
8.Em9118.iIsAdInFifo:ad通道是否进fifo标识变量,1表示进fifo,0表示不进fifo。
9.Em9118.iAdRangeIdx:Ad范围取值下标,0表示-10v~+10v,1表示-5v~+5v。
10.Em9118.iClkSrc:时钟源,0表示内部,1表示外部
11.Em9118.iTriSrc:触发源,0表示内部,1表示为外部
12.Em9118.iEdgeLevel:触发方式,0表示边沿触发,1表示电平触发
13.Em9118.iUpdown:0表示上升,1表示下降。
14.Em9118.bAdType:true表示返回数据原码,false表示返回数据物理值。
15.Em9118.Em9118():接口类的构造函数形式一
16.Em9118.Em9118(String):接口类的构造函数形式二,输入参量是Em9118设备的IP地址。
17.Em9118.DevConn():连接设备。返回值为0,表示没有错误。
18.Em9118.DevDisConn():断开设备连接。无返回值。
19.Em9118.StartHc():启动设备采集。返回值为0,表示没有错误。
20.Em9118.StopHc():停止设备采集。无返回值。
21.Em9118.ReadAdVal():得到fifo中各个ad通道的数据。返回值类型是double类型的二维数组double[][]。数组第一维表示通道,第二维表示每通道的数据内容。
 

七、调用流程

1、声明初始化接口类变量。
2、设置接口类变量(端口号、ip地址、触发源、ad进FIFO变量等)。
3、连接设备。
4、启动设备采集。
5、得到ad通道的数据。
6、用户自行处理数据。
7、处理完毕后停止设备采集。
8、断开设备连接。
流程图见下页。
 





微信二维码

扫一扫Get更多资讯

Copyright © 北京中泰联创科技有限公司 版权所有 ICP备案号:京ICP备18049974号-1 京公网安备:11010802021254号