当前位置: 首页 > news >正文

如何使用Prosys OPC UA SDK for Java在 Android 上开发 OPC UA 应用程序?

Prosys OPC UA SDK for Java支持在Android上开发OPC UA应用程序。本文将介绍在Android上使用Prosys OPC UA SDK for Java的基本步骤,并提供使用Android SDK API 35的简化客户端示例实现。需要注意的是,由于Prosys OPC UA SDK for Java在Android上的测试有限,因此无法完全保证互操作性。 

注意:在SDK5.4.0版本中,SpongyCastle已不再作为必需依赖项。

要求

  • Android Studio(包含 SDK)
  • 适用于 Java 的 Prosys OPC UA SDK
  • Maven 命令行界面
  • SimpleAndroidUaClient项目

添加依赖项和权限

安装Android Studio、下载Prosys OPC UA SDK for Java和示例项目后,需要将SDK作为依赖项添加到项目中。可以直接在项目中添加并引用jar文件,也可以使用本地Maven仓库。本示例使用了本地Maven仓库的方法。

要将SDK添加到本地maven存储库/缓存,请运行

cd {ua_java_sdk_root}\maven-integration\maven-install-helper
mvn install

在示例中,SDK作为依赖项与 slf4j-android 包一起添加到 build.gradle 中,该依赖项为SDK 的日志记录提供Android绑定。此外,还需要将META_INF/DEPENDENCIES从编译中排除。请确保添加的依赖项与现有的版本号匹配。另请注意,要使示例按原样运行,需要5.4.0或更高版本的SDK。

...
android {...packagingOptions {exclude 'META-INF/DEPENDENCIES'}
}dependencies {...implementation('org.slf4j:slf4j-android:1.7.36')implementation('com.prosysopc.ua:prosys-opc-ua-sdk-client-server:5.4.0-201')...
}

还需要确保mavenLocal作为存储库包含在settings.gradle中

...
dependencyResolutionManagement {...repositories {...mavenLocal()...}
}
...

最后,需要在AndroidManifest.xml中允许访问互联网

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"><uses-permission android:name="android.permission.INTERNET"/><application>...</application></manifest>

客户端实现

示例代码创建一个UA客户端,连接到在本地主机上运行的Prosys OPC UA模拟服务器

//10.0.2.2 points to loopback of host machine
client = new UaClient("opc.tcp://10.0.2.2:53530/OPCUA/SimulationServer");

还使用应用程序文件路径创建证书存储和验证器

final PkiDirectoryCertificateStore applicationCertificateStore = new PkiDirectoryCertificateStore(getFilesDir().getPath() + "/PKI/CA");
final PkiDirectoryCertificateStore applicationIssuerCertificateStore =new PkiDirectoryCertificateStore("PKI/CA/issuers");// CertificateValidator defines the details about how to trust previously untrusted Applications
final DefaultCertificateValidator certValidator =new DefaultCertificateValidator(applicationCertificateStore, applicationIssuerCertificateStore);
// Set validator to accept CA certificates without CRLs
certValidator.getIgnoredChecks().add(DefaultCertificateValidator.IgnoredChecks.IGNORE_CA_MISSING_CRL);
client.setCertificateValidator(certValidator);

然后将应用程序标识分配给客户端,然后客户端连接并从服务器读取值

ApplicationIdentity identity = ApplicationIdentity.loadOrCreateCertificate(appDescription, "Sample Organisation", null,new File(applicationCertificateStore.getBaseDir(), "private"), true);identity.setApplicationDescription(appDescription);
client.setApplicationIdentity(identity);
client.setTimeout(60000);
client.setSecurityMode(SecurityMode.BASIC128RSA15_SIGN_ENCRYPT);
client.setUserIdentity(new UserIdentity());
client.connect();
DataValue dv = client.readValue(Identifiers.Server_ServerStatus_CurrentTime);

运行应用程序

可以使用Android Studio提供的设备模拟器运行此示例。创建一个具有匹配API级别的设备,运行Gradle Sync,然后在模拟设备上运行应用程序。在示例应用程序中,点击“连接”将尝试连接到指定的服务器并读取服务器时间戳值。读取成功后,时间戳值将显示在“连接”按钮下方。

客户端提供的证书需要在服务器端获得信任。如果使用Prosys OPC UA模拟服务器,可以前往“证书”选项卡,右键单击“SimpleAndroidClient”行来执行此操作。

结论

在本文中,详细介绍了将Prosys OPC UA SDK for Java合并到Android项目以创建简单的OPC UA客户端的基础知识。

http://www.dtcms.com/a/471169.html

相关文章:

  • 网站制作软件排行榜网站开发结构有
  • 重庆公司网站建设步骤优化大师有必要安装吗
  • 医院网站建设报价网站更换ip地址
  • 大学网站建设的目标与思路珍爱网建设网站的目的
  • 网站规划的注意事项网络推广网站首页大图
  • 陕西省住房和城乡建设部网站官网建晨网站建设
  • 核辐射检测仪中的抗辐照MCU芯片应用探索与挑战应对
  • 无人机中继通信链路技术要点分析
  • 2025年ASOC SCI2区TOP,基于两种平衡机制的异构无人机群路径规划多目标进化算法,深度解析+性能实测,深度解析+性能实测
  • STM32CubeMX + HAL 库:定时器输入捕获的应用,PWM波的占空比(频率/周期)测量
  • 【解决】OSError: We couldn‘t connect to ‘https://huggingface.co‘ to load this file
  • 湖北营销网站建设联系方式装修估价网
  • 数据库系列之:SQL Server 事务日志
  • UE5 在运行状态下,可以显示出移动,旋转,缩放轴的功能基础上,新增框选,以及打组解组和从组中单独移除某一个actor的功能
  • 凡科网做网站教程家居装修设计平台
  • 网站后台页面进不去做外贸的有些什么网站
  • 学校网站功能python购物网站开发流程
  • 大数据成矿预测系列(四) | 成矿预测的“主力军”:随机森林与支持向量机深度解析
  • 企业网站优化费用iis 网站后台
  • 工业可视化监控平台GENESIS64核心能力与架构解析
  • 网站建设公司位置广东做网站的公司有哪些
  • 石家庄科技网站建设ppt制作平台
  • 如何自建网站做淘客常州网站专业制作
  • 纯分享!2026届计算机毕业设计选题全攻略(选题+技术栈+创新点+避坑),这80个题目覆盖所有方向,计算机毕设选题大全收藏
  • 网安面试题收集(2)
  • 西宁建设网站运维兼职平台
  • Java--网络编程(一)
  • 购物网站建设教程中国十大网站建设公司排名
  • web后端开发——原理
  • 如何把网站放在根目录300m空间够用吗 wordpress