MulticastCar()#
MulticastCar(trainID, tag, d, userID)#
指定の編成に含まれる車輌に'broadcast'イベントをマルチキャストします。
パラメータ#
int trainID
編成を部品IDで指定します。
string tag
ユーザー定義のイベントタグの文字列。送信したイベントを識別するために必ず設定してください。
dict d
ユーザー定義のイベントパラメータ。dict型で設定します。
int userID
イベントを識別するためにユーザーが設定した任意の数値。省略した場合は0になります。
戻り値#
コメント#
部品IDで指定した編成に含まれるすべての車両にbroadcastを送信します。
ユーザーIDは、イベントをハンドラで判別するために使用します。
param['eventUID']に、設定したuserIDが入ります。
param['broadcast']に、ユーザー定義のイベントタグが入ります。 ユーザー定義タグでイベントを識別してください。
ビルド156以降、ユーザーIDが追加されました。
スレッド処理ではありませんが、並列を想定してコードを実装してください。
サンプル#
Xキーで編成9に含まれる車両のヘッドライトを点灯する
#LAYOUT
import vrmapi
def vrmevent(obj,ev,param):
if ev == 'init':
obj.SetEventKeyDown('X',100)
elif ev == 'keydown':
if param['eventUID'] == 100:
d = dict(pm=123)
obj.MulticastCar(9, 'test', d, 500)
#編成9の1号車
#CARID=1
import vrmapi
def vrmcarevent_1(obj,ev,param):
if ev == 'init':
dummy = 1
elif ev == 'broadcast':
vrmapi.LOG(param['eventUID'])
# testタグに反応させる
if param['broadcast'] == 'test':
obj.SetHeadlight(True)