利用JNI实现安卓的Java代码调用C语言API。
利用JNI实现安卓的Java代码调用C语言API。
RTU的英文全称为Remote Terminal Unit, 中文全称远程终端单元。
RTU具有的特点是:
1.通信距离较长;
2.用于各种环境恶劣的工业现场;
3.模块结构化设计,便于扩展;
4.在具有遥信,遥测,遥控的领域的水利等行业广泛使用。
RTU是一种远程测控单元装置,负责对现场的信号及工业设备的监测和控制。与常用的PLC相比,RTU具有优良的通讯能力,更多的计算功能,适用于更恶劣的温度及湿度环境。针对水环境监测及控制的需求,开发出一款实用性及良好的扩展性兼备的RTU,型号为XXXX
该款RTU有如下特点:
1.采用24V供电系统;
2.8路控制输出,输出电平可配置为5V或12V,具有较好的兼容性;
3.8路电平输入,采用光耦隔离,具备良好的抗干扰能力;
4.模拟电压信号输入;
5.4-20mA电流信号输入;
6.RS485通信接口;
7.高速USB通信接口;
8.SPI通信接口;
9.采用modbus-rtu通信协议;
10.使用高性能的32位ARM-Cortex处理芯片;
11.预留I/O扩展功能。
备注:模拟电压及电流信号输入共用12个模拟信号采集通道,可根据实际需求进行组合配置。
目前工业上广泛使用的各类变送器大致可以分为两类。第一类为模拟量输出,输出 为4-20mA电流信号。第二类为数字信号输出,该类变送器多配有串行的通信 接口(如RS485)。也有一些变送器同时配有这两种接口。
水质的酸碱度由一个传感器采集,传感器输出信号经过变送器之后输出显示,如图1 所示的一个正在工作的PH/ORP变送器: 图1:变送器工作状态
图1所示的变送器输出的是4-20mA的电流信号。电路信号通过采样电阻可以转变为容 易测量的电压信号,如图2所示:将转变后的电压信号输入外部的采集板。 图2:采集板
图3为外部的采集板采集到的数据,与图1中显示的电流值相比,两者相差0.34mA。 图3:实际采集到的电流值
由于变送器不具备控制功能,因此在需要保持水环境在一定的酸碱度范围内的情况下, 需要设计一个酸碱度控制器,控制器实时监测酸碱度,在其超出设定范围后控制 化学药剂的使用量来调整水的酸碱度。
随着自动化水平的提高,现场作业人员的数量逐渐减少,各类控制器的数量却随之增 加。现如今我们对于信息获取的速度要求也越来越高,而数据量越来越大,为此设备 的物联网化是一个行之有效的方法:控制器实现工业现场离散信息的获取,通过总线 将获取到的信息汇总至中央处理模块,该模块负责数据的分析处理,实时显示及上传 等工作,最终实现与移动终端的互联。
因为我们更喜欢在Linux上开发程序, 所以生成交叉编译器,以便在Linux上交叉编译出windows程序。
# 安装minGW:在Linux上运行gcc交叉编译生成windows程序
# 我们用到Cgo,因此需要安装 C 语言交叉编译器
sudo apt-get install gcc-mingw-w64
# 下载Go语言的源代码
git clone https://github.com/golang/go.git
# 32-bit go-compiler for windows
GOOS=windows GOARCH=386 CGO_ENABLED=1 CXX_FOR_TARGET=i686-w64-mingw32-g++ CC_FOR_TARGET=i686-w64-mingw32-gcc ./make.bash
# 64-bit 编译器
GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CXX_FOR_TARGET=x86_64-w64-mingw32-g++ CC_FOR_TARGET=x86_64-w64-mingw32-gcc ./make.bash
# 非交叉编译,生成Linux程序
GOOS=linux GOARCH=amd64 CGO_ENABLED=1 CXX_FOR_TARGET=g++ CC_FOR_TARGET=gcc ./make.bash
# 生成Go编译器之后,以下命令执行交叉编译,生成windows程序
GOOS=windows GOARCH=386 go build
最终的目标是要生成windows程序,所以Cgo引用的库文件也必须是windows版本的。 以ffmpeg库为例:参考截图,在ffmpeg文件夹之下,新建一个文件夹,名为libwin, 用于保存windows版本的库文件(dll文件)。
pkgconfig 也需要做相应调整。而头文件无需变动。
准备工作只有这么多了。通过指定pkgconfig的路径,就能够交叉编译Cgo程序了。
GOOS=windows GOARCH=386 PKG_CONFIG_PATH=/foo/bar go build
我们将Blog系统,从wordpress迁移到Jekyll & octopress。 最大的好处是,可以在github编辑页面。
几天之内,我们会将老系统的内容也复制过来。