- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
日本学校授课模板:物理Hasc Tool
HascTool独自ブロックの開発
独自ブロックの開発
HascTool
ブロック図で様々な処理を記述可能
Javaで独自のブロックを開発可能
開発環境のセットアップ
HascTool ソースファイル
Eclipse RCP 版 + プラグイン(Zest等)
独自ブロック用のフラグメントプロジェクトを新規作成(プロジェクトを分けたい場合のみ)
プラグインID: jp.hasc.hasctool.ui
ブロック
RuntimeBeanインタフェースを実装した任意のクラス
デフォルトコンストラクタ
プロパティをセットするためのsetterメソッド
入力/出力ポートを返すgetterメソッド
入力・出力ポート
入力ポート
MessageProcessorインタフェースを実装したオブジェクト
入力ポートのprocessMessageメソッドで、メッセージ受信時の処理を実装
出力ポート
MessageConnectorオブジェクト
出力ポートのprocessMessageメソッドを呼び出して、メッセージを送信
単に、接続先の入力ポートのprocessMessageメソッドを呼び出しているだけ
connectメソッドでポート間を接続
メッセージの種類
任意のオブジェクトをメッセージとして送受信可能
入力ポートによって、解釈できるメッセージの種類は異なる
現状では、静的な型チェックは無し
例:ベクトル信号メッセージ
時刻情報 + 実数値の配列
加速度CSVファイルの1行に対応
VectorSignalMessage 抽象クラス(のサブクラス)
VectorSignalMessages#create()メソッドで生成
例:スカラ信号メッセージ
要素数1のベクトル信号メッセージ(時刻情報 + 実数値)
ScalaSignalMessageクラス
サンプル
スカラ値に、valueToAddプロパティの値を加算する1入力1出力フィルタ
public class SampleAddFilter implements RuntimeBean, MessageProcessor
{
// valueToAdd プロパティ
private double valueToAdd_ = 0;
public void setValueToAdd(double valueToAdd) {
this.valueToAdd_ = valueToAdd;
}
// outputPort
private MessageConnector outputPort_=
new MessageConnector();
public MessageConnector getOutputPort() {
return outputPort_;
}
// inputPort
public MessageProcessor getInputPort() {
return this;
}
// RuntimeBeans interface
@Override
public void setup(RuntimeContext context) {}
// MessageProcessor interface
@Override
public void processMessage(Object message) throws InterruptedException
{
if (message instanceof ScalarSignalMessage) {
// ScalarSignalMessageの場合
ScalarSignalMessage inValue =
(ScalarSignalMessage)message;
// 新しい値を計算
double newValue =
inValue.getScalarValue() + valueToAdd_;
// 結果を出力
outputPort_.processMessage(
new ScalarSignalMessage(
inValue.getTime(), newValue));
}else{
// その他のメッセージ(BEGIN, ENDなど)は // そのまま出力
outputPort_.processMessage(message);
}
}
}
ヘルパークラス
AbstractFilter
RuntimeBeanを実装した抽象クラス
1入力1出力のブロックを作るのに使う
AbstractSink
RuntimeBeanを実装した抽象クラス
文档评论(0)