イベント処理機能を使用して派生測定を作成したいと考えています。リアルタイム処理 - 管理オブジェクトフラグメントを読み取る
私たちのデバイスは、デバイスごとに管理オブジェクトフラグメントに格納される目標値を持つ測定値を報告します。私は、測定とターゲットの違いであるデバイス測定を作成したいと考えています.RTP/CELの実装には理想的です。
私はreal time processingのガイドを見てきましたが、管理対象オブジェクトからフラグメントを読み取る方法を理解することはできません。
編集。私は自分のコードを更新しましたが、私はそこにいるので、私は自分のフラグメントデータを取得する場所として測定から入ってくるdeviceIdをどのように使うのかを考え出すことができません。
create variable ManagedObject device = findManagedObjectById(m.measurement.source.value);
create variable BigDecimal setpoint = getNumber(device, "uty_Setpoint.value");
insert into CreateMeasurement
select
m.measurement.time as time,
m.measurement.source.value as source,
"uty_Pressure_delta" as type,
{"uty_Pressure_delta.T.value", getNumber(m, "uty_Pressure.pressure.value") - setpoint,
"uty_Pressure_delta.T.unit", "percent" } as fragments
from MeasurementCreated m
where getNumber(m, "uty_Pressure.pressure.value") is not null
外部の変数ではなく、ステートメント内で直接行う必要があります。したがって、setpointをgetNumber(findManagedObjectById(m.measurement.source.value)、 "uty_Setpoint.value")に置き換えてください。 Edit:バックグラウンドというのは、ステートメントのデプロイ時にあなたが宣言したような変数が解決されているからです。 .measurement.source.valueを解決することはできません) – TyrManuZ
それはなぜそれが私がそれを再展開したときに一度働いたか説明します!ありがとう。 –