アクションプロパティ (Action Property)
“ap.” のプリフィックスをつけることで参照します。
アクションの実行時に外部から渡されるプロパティとして定義できます。
アクション変数 (Action Variable)
“av.” のプリフィックスをつけることで参照します。
アクション内で参照できる変数。
コンポーネントプロパティ (Component Property)
“cp.” のプリフィックスをつけることで参照します。
コンポーネントの動作を決める値。それぞれのコンポーネントが持っている変数。
例えば、HTTPRequestコンポーネントならMethod(GET|POST…)/URLプロパティなど。
コンポーネント変数 (Component Variable)
“cv.” のプリフィックスをつけることで参照します。
コンポーネントで暗黙で宣言されている変数があります。
例) cv.StatusCode
HTTPRequestコンポーネントならHTTPステータスコードやレスポンスヘッダ類がcvとなります。
トリガー変数 (Trigger Variable)
“tv.” のプリフィックスをつけることで参照します。
センサーから送信されたデータは、以下のトリガー変数で、Actionプログラム内で参照できます。
トリガー変数名 | 説明 |
---|---|
tv.AreaId | エリアID |
tv.AreaName | エリア名 |
tv.LayerId | レイヤーID |
tv.LayerName | レイヤー名 |
tv.KindId | データ種別ID |
tv.KindName | データ種別名 |
tv.PhysicalDeviceId | センサーの物理デバイスID |
tv.PhysicalDeviceName | センサーの物理デバイス名 |
tv.Timestamp | センサーからデータが出力されたときの時刻。フォーマットはRFC3339Nano |
tv.DataId | このセンサーデータ固有ID |
tv.Data | センサーデータの値。tv.Dataは最初のコンポーネントのcv.Payloadと同じになります |
トリガープロパティ (Trigger Property)
イベントトリガーやタイマートリガーで設定された、トリガープロパティをアクション内で参照できます。
“tp.” のプリフィックスをつけることで参照します。
例) tp.KeyAreaName、tp.KeyLayerName、tp.TriggerName
値(型)
変数型 | 説明 |
---|---|
Int | 整数 |
Double | 浮動小数点 |
String | 文字列 |
Bool | true/false |
DateTime | 日時 |
バイト列 | バイト列 |
配列 | 配列 |
Object | オブジェクト |
型 | 例 |
---|---|
リテラル | [1, 2, 3] |
配列 | ["abc", "def", "hij"] ["abc", 123, cv.variable] |
Object | {"key1":123, "key2":"abc", "key3":cv.variable, "key4":[1, 2, 3], "key5":{"subkey1":"def"}} |
型変換
それぞれの型からそれぞれの型への変換が可能です。
型 | 例 |
---|---|
Boolean | 数値系は0の時はfalse、それ以外はtrue。 日時の時Unix時間で0の時はfalse、それ以外はtrue。 文字列の時は“true”/“1“の時はtrue、それ以外はfalse。 バイト列は文字列に変換後に文字列のルールに従う。 それ以外の型のときはfalse |
整数 | Booleanはtrueの時は1、それ以外は0。 浮動小数はGo言語のキャストのルール。 日時の時はUnix時間を数値とする。 文字列の時はstrconv.ParseIntのルールに従う。 バイト列は文字列に変換後に文字列のルールに従う。それ以外の型は0 |
浮動小数 | Booleanはtrueの時は1.0、それ以外は0.0。 整数はGo言語のキャストのルール。 日時の時はUnix時間を数値とする。 文字列の時はstrconv.ParseFloatのルールに従う。 バイト列は文字列に変換後に文字列のルールに従う。 それ以外の型は0.0 |
文字列 | Booleanはtrueの時は“true”、それ以外は“false” 整数はstrconv.FormatInt、浮動小数はstrconv.FormatFloatで文字列に直す。 日時の時は、time.RFC3339Nanoフォーマットで文字列に直す。 バイト列はutf-8バイト列とみなし文字列にする。エラーがある場合は空文字。 配列、Objectはjson.Marshalをかけて文字列にする |
日時 | 数値系とBooleanは整数に直すルールで整数にした後に、Unix時間とみなして日時に変換。 文字列は、下記フォーマットを順に試しできたらそれを日時とみなし、それ以外は0(日時の0とは、1年1月1日00:00:00のこと) time.RFC3339Nano, “2006-01-02T15:04:05.999 MST”, “2006-01-02T15:04:05.999”, “20060102T150405.999 MST”, “20060102T150405.999”, バイト列は文字列に直し文字列と同じルール。 それ以外は0 |
バイト列 | Booleanと数値系と日時は文字列に直しutf-8バイト列にする。
文字列はutf-8バイト列にする。
配列、Objectはjson.Marshalを書けて文字列をバイト列にする。 配列、Object 数値系と、日時はその値を1つ含む配列にする。 文字列は、JSON文字列とみなしjson.Unmarshalする。エラーの場合はサイズ0の配列。 バイト列は文字列に直し、文字列と同じルール。 配列とObjectはそのまま。 それ以外の型はサイズ0の配列 |
演算子
使用できる演算子を以下の表で説明します。
演算子 | 説明 |
---|---|
+ | 加算 |
– | 減算 |
* | 乗算 |
/ | 除算 |
** | べき乗 |
& | ビット論理積 (AND) |
| | ビット論理和 (OR) |
^ | ビット排他的論理和 (XOR) |
% | 剰余 |
比較演算子
使用できる比較演算子を以下の表で説明します。
比較演算子 | 説明 |
---|---|
> | より小さい |
>= | 以下 |
< | より大きい |
<= | 以上 |
== | 等価 |
!= | 不等価 |
=~ | 正規表現マッチ |
!~ | 正規表現非マッチ |
論理演算子
使用できる論理演算子を以下の表で説明します。
論理演算子 | 説明 |
---|---|
|| | 論理 OR |
&& | 論理 AND |
Need more help with this?
Join our slack community for help