Fluo Coreリファレンス

目次

  1. Arbiterプロキシと関連トピック
    1. ArbiterProxy
    2. ArbiterInputTopic
    3. ArbiterOutputTopic
  2. UDPServerプロキシと関連トピック
    1. UDPServerProxy
    2. SocketTopic
  3. 論理演算・比較演算ビヘイビア
    1. AndBehavior
    2. OrBehavior
    3. ComparatorBehavior
  4. データ変換ビヘイビア
    1. CosineBehavior
    2. SineBehavior
    3. DataConnector
    4. DataPackBehavior
    5. DataUnpackBehavior
    6. DataToControl
    7. Differentiator
    8. ExpressionBehavior
    9. FilterBehavior
    10. MovingAverage
    11. DenormalizeBehavior
    12. NormalizeBehavior
    13. RemoveDuplicatesBehavior
    14. ScaleBehavior
    15. TextConcatBehavior
    16. UnaryOperatorBehavior
  5. 計測ビヘイビア
    1. CounterBehavior
    2. IntervalBehavior
  6. データ生成ビヘイビア
    1. NumberBehavior
    2. RandomBehavior
    3. ValueBehavior
  7. コントロール変換ビヘイビア
    1. ControlToControl
    2. ControlToData
  8. ファイル・ネットワークビヘイビア
    1. FileGetBehavior
    2. HttpGetBehavior
    3. JSONReaderBehavior
    4. UDPClientBehavior
  9. 時間ビヘイビア
    1. DelayBehavior
    2. SamplingBehavior
    3. TimerBehavior
  10. サブグラフビヘイビア
    1. GraphBehavior
    2. InputBehavior
    3. OutputBehavior
  11. 操作・デバッグビヘイビア
    1. ButtonBehavior
    2. InspectBehavior
    3. JoystickBehavior
    4. MonitorBehavior
    5. MultiplePlotterBehavior
    6. SinglePlotterBehavior
    7. TranscriptBehavior
    8. TextEntryBehavior

Arbiterプロキシと関連トピック

ArbiterProxy [top]

優先度に基づくデータ送信の調停を行う。受信したデータのうち、送信元のArbiterInputTopicの優先度が最も高いデータをArbiterOutputTopicに送信する。優先度の低いトピックからのデータは、より優先度の高いトピックからのデータ受信が終わり優先時間(2秒)が過ぎた後に、ArbiterProxyが受信すれば送信される。
同じ名前を持つArbiterProxyはサブグラフと共有されるため、複数のグラフで同時にArbiterProxyがデータを受信しても、ArbiterProxyは最も優先度の高いデータだけを送信する。

入力トピック
ArbiterInputTopic
出力トピック
ArbiterOutputTopic
設定パラメータ
名前(String)

ArbiterInputTopic [top]

ArbiterProxyの入力トピック。受信したデータをArbiterProxyへ設定された優先度で送信する。priorityの値が小さいほど優先度が高くなる。同じArbiterProxyに対して複数のArbiterInputProxyからデータが送信された場合は、最も優先度の高いトピックのデータが受け取られる。受け取られなかったデータはそのまま捨てられる。
ArbiterProxyにのみ接続できる。

受信データ
Object
設定パラメータ
priority(Integer)

ArbiterOutputTopic [top]

ArbiterProxyの出力トピック。ArbiterProxyから受信したデータを送信する。
任意のビヘイビアに接続できる。

送信データ
Object

UDPServerプロキシと関連トピック

UDPServerProxy [top]

UDPサーバーを構築する。openコントロールを受信すると、指定されたポート番号でUDPソケットを作成して接続を待つ。UDPポートから受信したデータは、接続されたSocketTopicに送信される。closeコントロールを受信すると、UDPサーバーを廃棄する。

出力トピック
SocketTopic
受信コントロール
#open, #close
設定パラメータ
ポート番号(Integer)

SocketTopic [top]

UDPServerProxyの出力トピック。UDPServerProxyから受信したデータを送信する。
任意のビヘイビアに接続できる。

送信データ
Object

論理演算・比較演算ビヘイビア

AndBehavior [top]

tickコントロールの受信後、次のtickを受信する前に受け取った真理値データにfalseが1つでも含まれていればfalseを、全てtrueであればtrueを送信する。

受信コントロール
#tick
受信データ
Boolean
送信データ
Boolean

OrBehavior [top]

tickコントロールの受信後、次のtickを受信する前に受け取った真理値データにtrueが1つでも含まれていればtrueを、全てfalseであればfalseを送信する。

受信コントロール
#tick
受信データ
Boolean
送信データ
Boolean

ComparatorBehavior [top]

受信したデータと設定されたデータを条件に従って比べ、結果を真理値として送信する。

受信データ
Object
送信データ
Boolean
設定パラメータ
条件(デフォルト=イコール), 比較データ(デフォルト=nil)
関連ビヘイビア
FilterBehavior

データ変換ビヘイビア

CosineBehavior [top]

受信したデータの余弦(cos)を求めて送信する。
単位として度またはラジアンを指定する。デフォルトの単位はラジアン。

受信データ
Number
送信データ
Number
設定パラメータ
単位(デフォルト:ラジアン)
関連ビヘイビア
SineBehavior

SineBehavior [top]

受信したデータの正弦(sin)を求めて送信する。
単位として度またはラジアンを指定する。デフォルトの単位はラジアン。

受信データ
Number
送信データ
Number
設定パラメータ
単位(デフォルト:ラジアン)
関連ビヘイビア
CosineBehavior

DataConnector [top]

受信したデータをそのまま送信する。

受信データ
Object
送信データ
Object(受信したもの)

DataPackBehavior [top]

受信したデータを結合して送信する。
受信したデータをd、データが流れてきたアークをaとすると、aをキーとしdを値としたAssociation(a->d)が作られ保持される。
一定時間内に他のデータを受信すれば、同様なAssociationを保持し、一定時間内に受信しなければ、保持したAssociationをDictionaryとして送信する。
なお、このビヘイビアへのアークは、必ずラベルがついていなければならない。(ラベルのないアークからのデータ受信はエラーとなる)

受信データ
Object(アークにラベルが必要)
送信データ
Dictonary
設定パラメータ
待ち時間(デフォルト:200ms)
関連ビヘイビア
DataUnpackBehavior

DataUnpackBehavior [top]

受信したDictionaryデータを分解して送信する。
受信したDictionaryデータをAssociationに分解し、キーをラベルとして持つアークに対して値を送信する。
なお、このビヘイビアからのアークは、必ずラベルがついていなければならない。(ラベルのないアークへは何も送信されない)

受信データ
Dictionary
送信データ
Object(ラベルは、受信するDictionaryのキーでなければならない)
関連ビヘイビア
DataPackBehavior

DataToControl [top]

受信した特定のデータを特定のコントロールに変換する。
デフォルトではtrueデータを受信した時に、tickコントロールを送信する。他のデータを受け取った場合は何もしない。

受信データ
ユーザー指定
送信コントロール
ユーザー指定
設定パラメータ
受信データ(デフォルト=true), 送信コントロール(デフォルト=#tick)
関連ビヘイビア
ControlToData

Differentiator [top]

直前に受信したデータとの差を送信する。
例えば、直前に受信したデータをx, 新たに受信したデータをyとすると、y-xを送信する。
受信データがDictionaryの場合は、各Association毎の差をとったDictionaryを送信する。

受信データ
NumberまたはDictionary
送信データ
NumberまたはDictionary

ExpressionBehavior [top]

受信データに任意の計算を行った結果を送信する。
任意の計算はSmalltalk式としてパラメータ設定する。式の内部では受信データをdataという名前の変数でアクセスできる。
Smalltalk式をsとすると、[:data|s]というブロックが内部的に格納される。

受信データ
Object
送信データ
Object
設定パラメータ
Smalltalk式

FilterBehavior [top]

受信したデータと設定されたデータを条件に従って比べ、真のときに受信したデータを送信する。

受信データ
Object
送信データ
Object
設定パラメータ
条件(デフォルト=イコール), 比較データ(デフォルト=nil)
関連ビヘイビア
ComparatorBehavior

MovingAverage [top]

受信したデータの移動平均を求めて送信する。

受信データ
Number
送信データ
Number
設定パラメータ
データ数(デフォルト=3)

DenormalizeBehavior [top]

受信した0から1までの範囲のデータを、最小値から最大値の範囲へ線形補間して送信する。

受信データ
Float(0より小さい値は0へ、1より大きい値は1へ丸められる)
送信データ
Number
設定パラメータ
最小値(デフォルト=0), 最大値(デフォルト=100)

NormalizeBehavior [top]

受信したデータを0から1の範囲で線形に正規化する。受信したデータを最小値と最大値の範囲に丸めた後、0から1までの小数点数に正規化したデータを送信する。

受信データ
Number(最小値より小さい値は最小値へ、最大値より大きい値は最大値に丸められる)
送信データ
Float(0から1までの範囲)
設定パラメータ
最小値(デフォルト=0), 最大値(デフォルト=100)

RemoveDuplicatesBehavior [top]

受信データのうち、直前のデータと異なる場合のみ送信する。つまり、同じデータを連続して受信した場合は、最初のデータのみ送信される。

受信データ
Object
送信データ
Object

ScaleBehavior [top]

受信した数値を定数倍して送信する。受信したデータが辞書データの場合は、値のそれぞれを定数倍する。

受信データ
NumberまたはDictionary(値はNumberである必要がある)
送信データ
NumberまたはDictionary
設定パラメータ
倍率(デフォルト=1.0)

TextConcatBehavior [top]

受信したデータを文字列として結合して送信する。結合する順序はアークに付けられたラベルの文字列順序によって決まる。
受信したデータはアーク毎に保持され、一定時間内に他のアークから受信しなければ、その時点での全てのアークのデータが結合され、送信される。
なお、このビヘイビアへのアークは、必ずラベルがついていなければならない。(ラベルのないアークからのデータ受信はエラーとなる)

受信データ
Object(アークにラベルが必要)
送信データ
String
設定パラメータ
待ち時間(デフォルト:200ms)

UnaryOperatorBehavior [top]

受信したデータに対して、指定された演算(絶対値、正負の反転、論理の反転)を行って送信する。

受信データ
NumberまたはBoolean
送信データ
NumberまたはBoolean
設定パラメータ
単項演算

計測ビヘイビア

CounterBehavior [top]

受信したデータを数える。データを受信するたびに、今まで受信したデータの個数を送信する。
tickコントロールを受信するとデータ個数をリセットする。

受信データ
Object
受信コントロール
#tick
送信データ
Integer

IntervalBehavior [top]

受信したデータの時間間隔を計測する。データを受信すると、直前に受信したデータから経過した時間をミリ秒単位で送信する。

受信データ
Object
送信データ
Integer

データ生成ビヘイビア

NumberBehavior [top]

指定された範囲の数値を生成して送信する。tickを受け取ると、minからmaxまでの値をstep刻みで生成して送信する。maxに達したらminに戻って繰り返す。

受信コントロール
#tick
送信データ
Number

RandomBehavior [top]

指定された範囲の乱数を生成して送信する。tickを受け取ると、minからmaxまでのランダムな値を生成して送信する。

受信コントロール
#tick
送信データ
Number

ValueBehavior [top]

受信したデータを保持するとともに送信する。
tickを受け取ったら、保持していたデータを送信する。
メニューにより保持するデータを入力することもできる。

受信データ
Object
受信コントロール
#tick
送信データ
Object
設定パラメータ
データ(Object)

コントロール変換ビヘイビア

ControlToControl [top]

受信した特定のコントロールを別のコントロールに変換する。
デフォルトではonコントロールを受信した時に、tickコントロールを送信する。他のコントロールを受け取った場合は何もしない。

受信コントロール
ユーザー指定
送信コントロール
ユーザー指定
設定パラメータ
受信コントロール(デフォルト=#on), 送信コントロール(デフォルト=#tick)

ControlToData [top]

受信した特定のコントロールを特定のデータに変換する。
デフォルトではtickコントロールを受信した時に、trueデータを送信する。他のコントロールを受け取った場合は何もしない。

受信コントロール
ユーザー指定
送信データ
ユーザー指定
設定パラメータ
受信コントロール(デフォルト=#tick), 送信データ(デフォルト=true)
関連ビヘイビア
DataToControl

ファイル・ネットワークビヘイビア

FileGetBehavior [top]

tickコントロールを受信すると、ファイルの内容を送信する。
初めてtickコントロールを受信したときにファイルの内容を読み込んで送信する。以降は読み込まない。
なお、ファイルはあらかじめFluoインストールディレクトリのtextsディレクトリ内に格納されていなければならない。

受信コントロール
#tick
送信データ
String
設定パラメータ
ファイル名(String)

HttpGetBehavior [top]

受信したデータをURLとするウェブページにアクセスし、得られたデータを送信する。

受信データ
String
送信データ
String

JSONReaderBehavior [top]

受信したJSON文字列をDictionaryに変換して送信する。

受信データ
String
送信データ
Dictionary

UDPClientBehavior [top]

設定したホストとポートを持つUDPサーバーに対して、受信したデータを送信する。
受信したデータをURLとするウェブページにアクセスし、得られたデータを送信する。

受信データ
Object(文字列に変換される), ByteArray(そのまま送信される)

時間ビヘイビア

DelayBehavior [top]

受信したデータを設定した時間待ってから送信する。

受信データ
Object
送信データ
Object
設定パラメータ
interval(ミリ秒)

SamplingBehavior [top]

受信データを一定の時間間隔で送信する。時間間隔内にデータを受信しなければ何も送信されず、複数のデータを受信した場合は、最後のデータが送信される。

受信データ
Object
送信データ
Object
設定パラメータ
interval(ミリ秒)

TimerBehavior [top]

一定の時間間隔でtickコントロールを送信する。

送信コントロール
#tick
設定パラメータ
interval(ミリ秒)

サブグラフビヘイビア

GraphBehavior [top]

サブグラフとの送受信を行う。受信したデータは指定したサブグラフのInputBehaviorに送られる。サブグラフ内のOutputBehaviorが受信したデータを送信する。

受信データ
Object(サブグラフのInputBehaviorに送信される)
送信データ
Object(サブグラフのOutputBehaviorが受信したもの)
設定パラメータ
グラフ(FluoGraph)
open/close
#openでサブグラフをセットアップし、サブグラフにopenコントロールを送る。

InputBehavior [top]

グラフの外部からデータを受け取るノード。受け取ったデータがそのまま送信される。

受信データ
Object(グラフ外部から受け取る)
送信データ
Object

OutputBehavior [top]

受け取ったデータをグラフの外部にデータを送信するノード。データを受け取ると、事前に登録されたcallbackブロックが受信データを引数として評価される。
callbackを登録するには、OutputBehaviorを含むグラフに対して、Blockを引数にして#callback:メッセージを送る。

受信データ
Object
設定パラメータ
callback(Block)

操作・デバッグビヘイビア

ButtonBehavior [top]

プロパティ上のPushボタンを押すとonコントロールを、離すとoffコントロールを送信する。

送信コントロール
#on, #off

InspectBehavior [top]

受信したデータを保持する。一度データを保持したら、それ以降のデータは保持しない。
プロパティ上のClearボタンを押すと、保持したデータを消去して新たなデータをする。Inspectボタンを押すと、保持したデータをinspectする。

受信データ
Object

JoystickBehavior [top]

tickコントロールを受信したら、物理的に接続されたジョイスティックかジョイスティックモーフの位置(x,y)を送信する。

受信コントロール
#tick
送信データ
Dictionary(キーとしてx, y, buttonsを持つ)

MonitorBehavior [top]

受信したデータをプロパティに表示する。

受信データ
Object

MultiplePlotterBehavior [top]

受信した複数のデータをプロットする。
Dictionaryデータを受信した場合、キーを系列として値をプロットする。ラベル付きアークから受信したNumberデータの場合には、ラベルを系列としてデータをプロットする。

受信データ
DictionaryまたはNumber(ただしアークにラベルが必要)
関連ビヘイビア
SinglePlotterBehavior

SinglePlotterBehavior [top]

受信したデータをプロットする。

受信データ
Number
関連ビヘイビア
MultiplePlotterBehavior

TranscriptBehavior [top]

受信したデータをTranscriptに表示する。

受信データ
Object

TextEntryBehavior [top]

プロパティ上に入力された文字列を送信する。入力した文字列は保持され、tickコントロールを受け取った時も送信される。

受信コントロール
#tick
送信データ
String
設定パラメータ
テキスト(文字列)

AndBehavior ButtonBehavior ComparatorBehavior ControlToControl ControlToData CosineBehavior CounterBehavior DataConnector DataPackBehavior DataToControl DataUnpackBehavior DelayBehavior DenormalizeBehavior Differentiator ExpressionBehavior FileGetBehavior FilterBehavior GraphBehavior HttpGetBehavior InputBehavior InspectBehavior IntervalBehavior JSONReaderBehavior JoystickBehavior MonitorBehavior MovingAverage MultiplePlotterBehavior NormalizeBehavior NumberBehavior OrBehavior OutputBehavior RandomBehavior RemoveDuplicatesBehavior SamplingBehavior ScaleBehavior SineBehavior SinglePlotterBehavior TextConcatBehavior TextEntryBehavior TimerBehavior TranscriptBehavior UDPClientBehavior UnaryOperatorBehavior ValueBehavior