フック関数,またはコールバック関数を登録します。
[指定形式]
[引数]
|
|
scriptFile
|
フック関数,またはコールバック関数が定義されたスクリプト・ファイルを指定します。
|
[戻り値]
なし
[詳細説明]
- | scriptFileを読み込んで,スクリプト・ファイルに宣言されているフック関数,またはコールバック関数を登録します。
フック関数,コールバック関数以外の関数が宣言されていても,問題はありません。
なお,フック関数,コールバック関数は,スクリプト・ファイルの終了時に登録します。 |
- | フック関数が宣言されている場合は,CS+のイベント発生後に呼び出されます。 |
注意 | フック関数の実行が完了するかreturnしなければ,CS+のイベント処理は完了しません。 |
- | フック関数の種類を以下に示します。
なお,フック関数には引数はありません。 |
|
|
BeforeBuild
|
ビルド開始前
|
BeforeDownload
|
ダウンロード前
|
AfterDownload
|
ダウンロード後
|
AfterCpuReset
|
CPUリセット後
|
BeforeCpuRun
|
実行開始前
|
AfterCpuStop
|
ブレーク後
|
AfterActionEvent
|
アクション・イベント後(Printfイベントのみ)
|
AfterInterrupt
|
指定した例外要因コードの受付後
(debugger.Interrupt.Notificationで設定した例外要因コードが対象)
|
AfterTimer
|
タイマ割り込み発生後
(debugger.Interrupt.SetTimerで設定したタイマ割り込みが対象)
|
def BeforeDownload():
# ダウンロード前に行いたい処理を追記
|
- | コールバック関数が宣言されている場合は,CS+のイベント発生後に呼び出されます。 |
- | コールバック関数名は,“pythonConsoleCallback”で固定です。
なお,コールバック関数の引数は,コールバック要因を示します。 |
|
|
10
|
イベント登録後
|
11
|
イベント削除後
|
12
|
実行の開始前
|
13
|
ブレーク後
|
14
|
CPUリセット後
|
18
|
デバッグ・ツールのプロパティ変更後
|
19
|
ダウンロード後
|
20
|
メモリ,またはレジスタ変更後
|
21
|
アクション・イベント後(Printfイベントのみ)
|
30
|
ビルド前
|
50
|
指定した例外要因コード発生後
(debugger.Interrupt.Notificationで指定した例外要因コードの受付後)
|
63
|
XRunBreak,またはタイマ割り込みで指定した時間経過後
|
注意 1. | フック関数,およびコールバック関数は,以下の操作で初期化されます。 |
注意 2. | フック関数,およびコールバック関数内では無限ループする処理は含めないでください。 |
注意 3. | フック関数,およびコールバック関数内では以下の関数を実行しないでください。 |
debugger.ActionEvent, debugger.Breakpoint, debugger.Connect,
debugger.Disconnect, debugger.Download, debugger.Erase, debugger.Go,
debugger.Map, debugger.Next, debugger.Reset, debugger.ReturnOut,
debugger.Run, debugger.Step, debugger.Stop
|
注意 4. | フック関数(AfterTimer),およびコールバック関数(引数:63)内で,別の条件のdebugger.XRunBreak.Set,またはdebugger.Interrupt.SetTimerを使用することはできません。 |
例 1. | フック関数の場合,以下のような指定は行わないでください。 |
def AfterTimer():
debugger.Interrupt.SetTimer(1, TimeType.Ms, True)
debugger.XRunBreak.Set(1, TimeType.Ms, True)
|
例 2. | コールバック関数の場合,以下のような指定は行わないでください。 |
def pythonConsoleCallback(Id):
if Id = 63:
debugger.XRunBreak.Delete()
debugger.Interrupt.SetTimer(1, TimeType.Ms, True)
debugger.XRunBreak.Set(1, TimeType.Ms, True)
|
注意 5. | フック関数がAfterTimer,AfterInterruptの場合,およびコールバック関数の引数が50,または63の場合は,以下の関数のみ使用してください。 |
debugger.Address,debugger.GetIORList,debugger.Interrupt,debugger.Memory,
debugger.Register,debugger.Watch,debugger.XRunBreak
|
ただし,debugger.Interrupt.SetTimer,debugger.XRunBreakは,フック関数がAfterTimer,またはコールバック関数の引数が63の場合は使用できません。
[使用例]
>>>Hook("E:/TestFile/TestScript/testScriptFile2.py")
|