Как я могу создать измерение с Cumulocity REST?

Я новичок в Cumulocity и пытаюсь написать микросервис для платформы Cumulocity на C#.

Я клонировал примеры Cumulocity.SDK.Client REST отсюда: https://bitbucket.org/m2m/cumulocity-sdk-cs/src/master/

Я создал несколько устройств через InventoryApi и добавил некоторые атрибуты при создании (c8y_Hardware, c8y_RequiredAvailability, c8y_Position). Когда я пытаюсь добавить измерение к устройству, я теряюсь.

Я попытался добавить измерение в качестве атрибута.

Мой код выглядит так:

 MeasurementRepresentation measurement = new MeasurementRepresentation();

 measurement.DateTime = DateTime.Now.ToUniversalTime();
 measurement.Source = InventoryAPI.Get(new GId(deviceId));
 measurement.Type = "Temperature";

 JObject T = new JObject();
 T.Add("value", 90);
 T.Add("unit","C");
 measurement.Attrs.Add("Temperature", T);

 MeasurementApi.Create(measurement);

При этом я хочу, чтобы устройство измеряло тип температуры. Он не выдает ошибку, но также не создает никаких измерений.

Сначала я подумал, что ошибся с вложением Json, поэтому добавил еще один слой под атрибутом перед «T».

Как это:

 JObject T = new JObject();
 T.Add("value", 90);
 T.Add("unit","C");

 JObject temperatureMeasurement = new JObject();
 temperatureMeasurement.Add("T",T);

 measurement.Attrs.Add("Temperature", temperatureMeasurement);

Это тоже не сработало.

Когда я просмотрел тестовые файлы, я увидел, что используется какой-то метод Set(). Должен ли я создать объект измерения, а затем передать его методом Set()?

Поскольку классы Fragment в тестовых файлах пусты, я не знаю, как должен выглядеть объект.

Я совсем не в себе или просто что-то незначительное, что мне не хватает?

Каков правильный метод создания измерения для устройства?


person Feanaroc    schedule 27.09.2019    source источник


Ответы (1)


По-видимому, правильный способ - использовать метод Set() с классом измерения в качестве параметра объекта.

person Feanaroc    schedule 02.10.2019