2016-05-24 3 views
1

Я пытаюсь реализовать в java-agent рабочий режим c8y_Command (Shell). Я дошел до того, что могу запустить команду на устройстве, я также могу установить OperationStatus, но я не нашел способ отправить результат (вывод команды).параметр c8y_Command result String from Java

http://www.cumulocity.com/guides/reference/device-management/ говорит:

Чтобы сообщить о результатах конкретной команды, устройство добавляет "результат" в собственности:

"c8y_Command": { 
    "text": "get uboot.sn", 
    "result": "165711141901401" 
} 

если это, как агент может установить статус:

operation.setStatus(OperationStatus.SUCCESSFUL.toString()); 

, тогда вы могли бы показать, пожалуйста, как отправить результат команды String!

Спасибо, кучка.

ответ

2

Класс, соответствующий объекту «c8y_Command» в Json, является c8y.Command. Таким образом, код для установки результата будет следующим:

operation.get(Command.class).setResult("165711141901401"); 
+0

Спасибо André, operation.get (Command.class) дал null. operation.get («c8y_Command») дает мне некоторый объект, но я не уверен, какой он тип. Я не нашел метод setResult в javadoc http://resources.cumulocity.com/documentation/javasdk/current/, возможно, вы имели в виду com.cumulocity.sdk.client.buffering.Result.setResponse (object)? – Peter

+0

Возможно, вы использовали неправильный Command.class. Проверьте, является ли он одним из пакета c8y в вашем импорте. Если он возвращает null, это означает, что он не нашел объект именно этого класса. –

1

aha, я должен был бросить его вот так.

((c8y.Command)operation.get("c8y_Command")).setResult("165711141901401");