なんとかなるさね

マイコンをネタにブログを始めてみました


HEW | IronPythonからHEW TargetServerを制御する為の小技 (3) 

既に起動済みのHEWをHEW TargetServerとして制御する方法が分かったので書いておきます。

(7) 既に起動済みのHEWをHEW TargetServerとして制御する方法

HEW TargetServerのInvokeHewWithNoDialogメソッドを実行すると、既にHEWやHEW TargetServerが
起動していても、必ずもう1つ別のHEW TargetServerが起動してしまいます。新しいHEW TargetServerを
起動せずに、既にWindowsのスタートメニューやタスクバーなどから起動済みのHEWをHEW TargetServer
として制御するには、単にInvokeHewWithNoDialogメソッドを実行しないでおくだけで良かったようです。

def MonStart():
    global hts
    try:
        # 変数が定義済みかどうかチェック(変数が定義されていなければ例外が発生する)
        if hts == None:
            pass
    except:
        hts = None
    if hts == None:
        htsTLB = System.Guid("D090F28D-679E-46F2-914F-D8B2374CDB21")
        clr.AddReferenceToTypeLibrary(htsTLB)
        from HEWTARGETSERVERLib import HewServer1
        # コンストラクタを呼び出す
        hts = HewServer1()
        # イベントハンドラを登録する
        hts.GotEventMessage += MonEventMessage
    # 起動済みのHEW(HEW TargetServer)に接続する
    print ""
    print "WAITING for HEW TargetServer..."
    while True:
        InvokeHew = clr.Reference[int](0)
        OpenWorkspace = clr.Reference[int](0)
        BuildProject = clr.Reference[int](0)
        hr = hts.GetHewStatusEx2(InvokeHew, OpenWorkspace, BuildProject)
        InvokeHew = int(InvokeHew)
        if hr == 0 and InvokeHew == 1:
            break
    print ""
    print "HEW TargetServer CONNECTED!"
    return

関連記事

2012/09/22   blog-entry-190   category: HEW

go page top