SSブログ

スロットル操作を検知する(2) [JMRI]

スロットル定義とリスナーのクラスは一つにまとめることができるようです。
前回のサンプルは下のように書き換えることができます。

import jmri

class ThrottleProp(jmri.jmrit.automat.AbstractAutomaton,
                      java.beans.PropertyChangeListener):......(1)
    def init(self):
        global throttle
        throttle = self.getThrottle(301, True)
        if throttle == None :
            print "Couldn't assign throttle!"
        throttle.propertyChange = self.throttleEvent......(2)
        return
    def handle(self):
        return False

    def throttleEvent(self, event):......(3)
        print "propertyname:", event.propertyName
        print "oldvalue:", event.oldValue
        print "newvalue:", event.newValue

ThrottleProp().start()

AbstractAutomatonPropertyChangeListenerを多重継承した(1)クラスに処理を記述していきます。
initメソッド中のリスナークラスのインスタンス生成とthrottleオブジェクトにアタッチする部分を(2)のように書き換えます。ここでpropertyChange属性に代入したthrottleListenerメソッド(3)にリスナー反応時の処理を記述していきます。

リスナーの処理を他のクラスで使い回さなければ、こちらの方がシンプルで良さげですね。


nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:趣味・カルチャー

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

スロットル操作を検知するOS XでJMRI ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。