IOT边缘 IOTEDGE-JAVA版SDK

时间:2024-10-21 11:41:29

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());
        }
    }
}
support.huaweicloud.com/sdkreference-iotedge/iotedge_sdkreference_0003.html