`
suigara
  • 浏览: 81889 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 使用jna连接kpci-1847(847)等板卡(继电器相关)

    博客分类:
  • java
 
阅读更多

一天调俩硬件,都是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-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工具类用于在运行期动态...

    jna-platform-4.1.0-API文档-中文版.zip

    赠送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文档:...

    jna-platform-4.3.0-API文档-中文版.zip

    赠送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文档:...

    jna-platform-5.10.0-API文档-中英对照版.zip

    赠送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文档...

    jna-5.10.0-API文档-中英对照版.zip

    赠送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文档-中文...

    JNA-5.7.0 jna-platform-5.7.0

    Java Native Access(JNA)是Java平台上的一个开源库,它允许Java代码与本地操作系统功能进行交互,无需编写C语言的动态链接库(DLL)或Java本机接口(JNI)代码。JNA提供了更简单的方式来调用操作系统API,极大地...

    jna-5.6.0.jar、jna-platform-5.6.0.jar

    JNA是一种开源Java库,它允许Java代码直接调用系统级别的函数,包括操作系统API和本地库,而无需编写C代码或使用JNI(Java Native Interface)。JNA通过一个动态代理机制,将Java方法映射到本地函数,极大地简化了...

    jna-5.5.0-API文档-中英对照版.zip

    赠送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

    标题中的"jna-4.2.2.jar"和"jna-platform-4.2.2.jar"是Java Native Access (JNA)框架的两个关键组件的版本号为4.2.2的JAR文件。JNA是Java平台上的一个开源库,它允许Java代码直接调用操作系统提供的原生函数,而无需...

    jna-4.1.0-API文档-中文版.zip

    赠送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文档-中文(简体)版...

    jna-4.5.1-API文档-中文版.zip

    标签:elasticsearch、jna、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心...

    jna-4.5.0和jna-platform-4.5.0

    内含jna-4.5.0.jar和jna-platform-4.5.0.jar eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee

    jna-platform-4.3.0-API文档-中英对照版.zip

    赠送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文档:...

    jna-4.3.0-API文档-中文版.zip

    赠送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文档-中文(简体)版...

    jna&jna-platform4.0版和5.6版本.zip

    Java Native Access(JNA)是Java平台上的一个开源库,它允许Java代码直接调用本机库(C、C++等)的函数,无需编写JNI(Java Native Interface)代码。JNA通过提供一种抽象层,使得Java开发者可以相对简单地与操作...

    jna-platform-4.0.0.jar、4.1.0.jar、4.2.0.jar、4.2.1.jar、4.2.2.jar及JNA使用方法、程序示例

    其中五个是最新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介绍文档,包括在线帮助、入门示例、简单程序示例等。

    jna-3.3.0 & jna-3.3.0-platform

    Java Native Access(JNA)是Java平台上的一个开源库,它允许Java代码直接调用操作系统提供的原生函数,而无需编写C/C++的桥接代码。JNA通过映射Java方法到本地函数,实现了Java与操作系统底层功能的交互,极大地...

    jna-platform-4.1.0-API文档-中英对照版.zip

    赠送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文档:...

Global site tag (gtag.js) - Google Analytics