コンテンツにスキップ

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)