一天调俩硬件,都是jna的功劳啊 哈哈
上代码
JNA代理类(代理kpci800.dll)
package xingyang.meam.kpci; import java.io.File; import com.sun.jna.Native; import com.sun.jna.win32.StdCallLibrary; public interface KPCIDevice extends StdCallLibrary { File f = new File(""); KPCIDevice INSTANCE = (KPCIDevice) Native.loadLibrary(f.getAbsolutePath() + "\\kpci800", KPCIDevice.class); /** * 该函数负责打开板卡的设备对象 * * @param iIndex * 指定KPCI板卡的设备序号,0对应第一个设备 * @return */ boolean OpenDevice(long iIndex); /** * 功能: 该函数负责关闭板卡的设备对象 参数: * * @param iIndex * 与OpenDevice中的相同 */ void CloseDevice(long iIndex); /** * 从端口读入一个字节 * * @param iIndex * 与OpenDevice中的相同 * @param dich * 为开关量输入的地址 * @return 读取的单字节数据 */ int ReadByte(long iIndex, int dich); /** * 该函数负责打开指定板卡型号的设备对象 * * @param iIndex * 指定KPCI板卡的设备序号,0对应第一个设备 * @param boardtype * 指定KPCI板卡的型号,这里只能是840、843、844、845、846、847、848。 * @return */ boolean OpenmDevice(long iIndex, long boardtype); }
运行类
package xingyang.meam.kpci; public class KPCIMain { public static void main(String[] args) { System.out.println("open:" + KPCIDevice.INSTANCE.OpenDevice(0)); for (int i = 0; i < 1; i++) { int value = KPCIDevice.INSTANCE.ReadByte(0, i); if (value != 0) { System.out.println(i + "->" + Integer.toBinaryString(value) + ";"); } } KPCIDevice.INSTANCE.CloseDevice(0); System.out.println("over!"); } }
这里没啥注意的
大家看KPCIMain里for循环那段,发没发现只循环一次? 哈哈 ,我试了一下,不管 ReadByte的第二个参数传啥,返回值都一样
Integer.toBinaryString(value)
结果是个8位2进制,每位代表一个继电器状态,大家自己看吧
附件是直接可运行的java工程
导入eclipse就行
相关推荐
jna-4.5.1 , jna-4.5.1-sources , jna-platform-4.5.1 jar包 JNA全称Java Native Access,是一个建立在经典的JNI技术之上的Java开源框架(https://github.com/twall/jna)。JNA提供一组Java工具类用于在运行期动态...
赠送jar包:jna-platform-4.1.0.jar; 赠送原API文档:jna-platform-4.1.0-javadoc.jar; 赠送源代码:jna-platform-4.1.0-sources.jar; 赠送Maven依赖信息文件:jna-platform-4.1.0.pom; 包含翻译后的API文档:...
赠送jar包:jna-platform-4.3.0.jar; 赠送原API文档:jna-platform-4.3.0-javadoc.jar; 赠送源代码:jna-platform-4.3.0-sources.jar; 赠送Maven依赖信息文件:jna-platform-4.3.0.pom; 包含翻译后的API文档:...
赠送jar包:jna-platform-5.10.0.jar; 赠送原API文档:jna-platform-5.10.0-javadoc.jar; 赠送源代码:jna-platform-5.10.0-sources.jar; 赠送Maven依赖信息文件:jna-platform-5.10.0.pom; 包含翻译后的API文档...
赠送jar包:jna-5.10.0.jar; 赠送原API文档:jna-5.10.0-javadoc.jar; 赠送源代码:jna-5.10.0-sources.jar; 赠送Maven依赖信息文件:jna-5.10.0.pom; 包含翻译后的API文档:jna-5.10.0-javadoc-API文档-中文...
Java Native Access(JNA)是Java平台上的一个开源库,它允许Java代码与本地操作系统功能进行交互,无需编写C语言的动态链接库(DLL)或Java本机接口(JNI)代码。JNA提供了更简单的方式来调用操作系统API,极大地...
JNA是一种开源Java库,它允许Java代码直接调用系统级别的函数,包括操作系统API和本地库,而无需编写C代码或使用JNI(Java Native Interface)。JNA通过一个动态代理机制,将Java方法映射到本地函数,极大地简化了...
赠送jar包:jna-5.5.0.jar 赠送原API文档:jna-5.5.0-javadoc.jar 赠送源代码:jna-5.5.0-sources.jar 包含翻译后的API文档:jna-5.5.0-javadoc-API文档-中文(简体)-英语-对照版.zip 对应Maven信息:groupId:...
标题中的"jna-4.2.2.jar"和"jna-platform-4.2.2.jar"是Java Native Access (JNA)框架的两个关键组件的版本号为4.2.2的JAR文件。JNA是Java平台上的一个开源库,它允许Java代码直接调用操作系统提供的原生函数,而无需...
赠送jar包:jna-4.1.0.jar; 赠送原API文档:jna-4.1.0-javadoc.jar; 赠送源代码:jna-4.1.0-sources.jar; 赠送Maven依赖信息文件:jna-4.1.0.pom; 包含翻译后的API文档:jna-4.1.0-javadoc-API文档-中文(简体)版...
标签:elasticsearch、jna、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...
内含jna-4.5.0.jar和jna-platform-4.5.0.jar eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
赠送jar包:jna-platform-4.3.0.jar; 赠送原API文档:jna-platform-4.3.0-javadoc.jar; 赠送源代码:jna-platform-4.3.0-sources.jar; 赠送Maven依赖信息文件:jna-platform-4.3.0.pom; 包含翻译后的API文档:...
赠送jar包:jna-4.3.0.jar; 赠送原API文档:jna-4.3.0-javadoc.jar; 赠送源代码:jna-4.3.0-sources.jar; 赠送Maven依赖信息文件:jna-4.3.0.pom; 包含翻译后的API文档:jna-4.3.0-javadoc-API文档-中文(简体)版...
Java Native Access(JNA)是Java平台上的一个开源库,它允许Java代码直接调用本机库(C、C++等)的函数,无需编写JNI(Java Native Interface)代码。JNA通过提供一种抽象层,使得Java开发者可以相对简单地与操作...
其中五个是最新JNA jar包,包括jna-platform-4.1.0.jar、jna-platform-4.2.0.jar、jna-platform-4.2.1.jar、jna-platform-4.2.2.jar,一个是JNA介绍文档,包括在线帮助、入门示例、简单程序示例等。
Java Native Access(JNA)是Java平台上的一个开源库,它允许Java代码直接调用操作系统提供的原生函数,而无需编写C/C++的桥接代码。JNA通过映射Java方法到本地函数,实现了Java与操作系统底层功能的交互,极大地...
赠送jar包:jna-platform-4.1.0.jar; 赠送原API文档:jna-platform-4.1.0-javadoc.jar; 赠送源代码:jna-platform-4.1.0-sources.jar; 赠送Maven依赖信息文件:jna-platform-4.1.0.pom; 包含翻译后的API文档:...