IoT边缘 IoTEdge
IoT边缘 IoTEdge
- 最新动态
- 产品介绍
- 快速入门
- 用户指南
- 开发指南
- 最佳实践
- API参考
- SDK参考
- 场景代码示例
-
常见问题
- 概念相关
-
节点管理
- 安装专业版节点异常如何处理?
- 安装专业版节点,执行安装命令时失败,一直提示“edgedaemon not found"?
- 安装专业版节点失败,提示“edge_core has existed”,该如何处理?
- 专业版节点所在机器断网/断电一段时间后恢复,节点模块一直处于“部署中”怎么处理?
- 专业版节点欠费充值后,部署、升级模块仍然报错?
- MQTT设备无法接入边缘节点如何处理?专业版节点所在机器断网/断电一段时间后恢复,节点模块一直处于“部署中”怎么处理?
- 误删除IoTDA上的edge_node/modbus_server产品后,在边缘服务创建节点/添加Modbus设备失败,该怎么处理?
- 边缘节点离线排查指南
- 修改专业版(Docker)或基础版节点的云端日志级别,但没有生效?
- ubuntu系统下节点shell命令兼容性导致的安装失败
- 子设备管理
- 应用管理
- 账号与权限
- Module-SDK
- 视频帮助
- 文档下载
- 通用参考
本文导读
展开导读
链接复制成功!
JAVA版SDK
SDK获取和安装
1. 安装Java开发环境。
访问Java官网,下载并说明安装Java开发环境。
华为云Java SDK支持Java JDK 1.8 及其以上版本。
2. 使用eclipse/IDEA创建工程。
3. 下载ModuleSDK,并在工程中导入jar包。
4. 开发代码
开发数据处理的代码示例,详细说明请参考开发应用集成ModuleSDK进行数据处理。
/**
* 监控APP,检视设备上报的数据,并对设备进行相应的控制
*/
public class MonitorApp implements BusMessageCallback {
/**
* 接收设备数据的消息总线输入点,取值需在创建应用版本的inputs参数中定义
*/
private static final String INPUT = "input";
/**
* 发送设备数据的消息总线输出点,取值需在创建应用版本的outputs参数中定义
*/
public static final String OUTPUT = "output";
public static final int FIVE_SECOND = 5000;
/**
* 电机设备的产品ID
*/
public static final String MOTOR_PRODUCT_ID = "6b4843db3f0189e9c577";
/**
* 与EdgeHub通信的客户端
*/
private AppClient appClient;
public MonitorApp() throws GeneraException {
appClient = AppClient.createFromEnv();
}
public void start() throws GeneraException {
//设置回调,打开客户端
appClient.setBusMessageCallback(INPUT, this);//设置收到设备数据的回调
appClient.open();
}
public void stop() throws GeneraException {
appClient.close();
}
/**
* 收到设备上报数据的回调处理,样例代码在马达设备状态错误时对马达进行重启
*
* @param busMessage
*/
@Override
public void onMessageReceived(BusMessage busMessage) {
try {
if (busMessage.getProductId().equals(MOTOR_PRODUCT_ID)) {
//马达设备状态错误时对马达进行重启
MotorData motorData = JsonUtil.fromJson(
JsonUtil.toJson(busMessage.getServices().get(0).getProperties()), MotorData.class);
if (motorData.getStatus().equals("error")) {
Command command = new Command(busMessage.getDeviceId(), "power", "restart", null);
appClient.callDeviceCommand(command, FIVE_SECOND);
}else{
//其他设备数据发布到总线
appClient.sendBusMessage(OUTPUT, busMessage);
}
} else {
//其他设备数据发布到总线
appClient.sendBusMessage(OUTPUT, busMessage);
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}