Я зарегистрировал пробную учетную запись, чтобы протестировать Cumulocity и его API mqtt. Я хочу отправить операцию на какое-то устройство (в настоящее время эмулируемое службой Java) и получить результат операции.
В качестве руководства я использую следующие ссылки:
- https://www.cumulocity.com/guides/users-guide/device-management/#-a-name-operation-monitoring-a-working-with-operations
- https://cumulocity.com/guides/device-sdk/mqtt#hello-mqtt-java
Следующий код используется для ответа на Cumulocity.
if (payload.startsWith("510")) {
System.out.println("Simulating device restart...");
client.publish("s/us", "501,c8y_Restart".getBytes(), 2, false);
System.out.println("...restarting...");
Thread.sleep(TimeUnit.SECONDS.toMillis(1));
client.publish("s/us", "503,c8y_Restart".getBytes(), 2, false);
System.out.println("...done...");
}
Код 501
означает, что операция перезапуска началась, а код 503
означает, что устройство перезапущено успешно.
Но на самом деле в Cumulocity UI статус операции изменился на Pending
.
Если я снова отправлю операцию restart
, предыдущая операция изменится на Success
, а новая на Pending
.
Итак, что я делаю неправильно?
Я ожидаю пометить операцию как Failed
или Success
.