Multicast()#
Multicast(objcode, tag, d, userID)#
種類を指定して'broadcast'イベントをマルチキャスト送信します。
パラメータ#
int objcode
種類を指定します。
objcode | |
---|---|
1 | TRAIN |
2 | CAMERA |
3 | BELL |
4 | ATS |
5 | MOTIONPATH |
6 | EMITTER |
0x100 | POINT |
0x101 | SIGNAL |
0x102 | CROSSING |
0x103 | TURNTABLE |
string tag
ユーザー定義のイベントタグの文字列。送信したイベントを識別するために必ず設定してください。
dict d
ユーザー定義のイベントパラメータ。dict型で設定します。
int userID
イベントを識別するためにユーザーが設定した任意の数値。省略した場合は0になります。
戻り値#
コメント#
複数の部品にbroadcastイベントを同時送信します。
ユーザーIDは、イベントをハンドラで判別するために使用します。
param['eventUID']に、設定したuserIDが入ります。
param['broadcast']に、ユーザー定義のイベントタグが入ります。 ユーザー定義タグでイベントを識別してください。
ビルド156以降、ユーザーIDが追加されました。
スレッド処理ではありませんが、並列を想定してコードを実装してください。
サンプル#
Xキーを押したら、編成を出発
#LAYOUT
import vrmapi
def vrmevent(obj,ev,param):
if ev == 'init':
obj.SetEventKeyDown('X',100)
elif ev == 'keydown':
if param['eventUID'] == 100:
# testタグを全編成にマルチキャスト
d = dict(pm=123)
obj.Multicast(1, 'test', d, 500)
#編成スクリプト
#OBJID=9
import vrmapi
def vrmevent_9(obj,ev,param):
if ev == 'init':
dummy = 1
elif ev == 'broadcast':
vrmapi.LOG(param['eventUID'])
# testタグに反応させる
if param['broadcast'] == 'test':
obj.SetVoltage(0.2)