| 関数 |
def schedule (self, model, commands, variables, blockDatacomm=False, jobData=None)
|
| 引数 |
| model | Sumoから抽出したモデルの.dllファイルへのパス(.sumoファイル内のsumoproject.dll) |
| commands | シミュレーションエンジンへのコマンドのリスト。利用可能なコマンドについては、SumoCoreコマンドのドキュメントを参照してください。 |
| variables | 監視(リッスン)する変数のリスト。変数名はSumoのAdvanced -> Core Windowからコピーできます。 |
| blockDatacomm | Pythonが処理内容を決定する間、シミュレーションを待機させますか?シミュレーションを制御したい場合はtrueに設定し、それ以外の場合はより高速な結果を得るためfalseのままにします。 |
| jobData | ジョブとともに保存され、後でアクセスできる追加情報(辞書)。シミュレーション終了後もデータを保持するには、sumo.persistentフラグを設定できます。 |
| 返り値 | この関数は、シミュレーションを識別するために参照できるJobIDを返します。 |
例```
job1 = ds.sumo.schedule(
"sumoproject.dll"
commands = [
f"load state.xml",
f"set SumoStopTime {10*ds.sumo.dur.day};",
f"set SumoDataComm {1*ds.sumo.dur.hour};",
f"set SumoPlantInfluentparamfrSNHx_TKN 2;",
"mode dynamic;",
"start;"],
variables = ["Sumo__Time",
"Sumo__Plant__Effluent__SNOx",
"Sumo__Plant__Effluent__SPO4"],
jobData = {
ds.sumo.persistent: True,
"results" : { }
},
);
---
---
関数 ```
def sendCommand(self, job, command)
説明 ジョブにコマンドを送信します。まだ開始していないシミュレーションにコマンドを送信した場合、そのコマンドは開始時に実行されます。 引数 例```
ds.sumo.sendCommand(job1, "pause")
---
---
関数 ```
def sendCommands(self, job, commands)
説明 ジョブにコマンドのリストを送信します。まだ開始していないシミュレーションにコマンドを送信した場合、それらのコマンドは開始時に実行されます。 引数 例```
ds.sumo.sendCommands(job1, ["set SumoStopTime 86400000", "set SumoDataComm 3600000", "start"])
注 末尾のセミコロン(;)文字は不要です。 ---
---
関数 ```
def getJobData(self, jobId):
説明 スケジュール時にジョブへ割り当てたデータを取得します。このデータは変更でき、変更内容は保持されます。 引数
| jobId | 対象ジョブのID |
| 返り値 | schedule関数を呼び出したときに定義した辞書。ジョブデータを定義していなかった場合、この関数はnullを返します。 |
例```
jobData = ds.sumo.getJobData(job)
---
---
関数 ```
def finish(self, job)
説明 指定したジョブIDのジョブを終了させ、他のジョブが実行できるようにします。終了できるのは実行を開始したジョブのみです。スケジュールされたがまだ実行されていないジョブは終了できません。多くの場合、シミュレーションが完了したときにそのジョブを終了させることになります。ジョブが終了すると、そのジョブデータはクリアされます。ただし、sumo.persistentフラグが設定されている場合は保持されます。 注 通常は、1つのジョブにつき1回のシミュレーションのみ行う方がよいでしょう。スケジューラーはオーバーヘッドを減らすため、可能であれば同一プロセス内でジョブを実行するよう最適化しますが、1つのジョブを使いすぎると、そのジョブの動作が遅くなる可能性があります。他のジョブがまったく実行されなくなり、それらに影響を与える場合もあります。 引数 例```
def msg_callback(job, msg):
if (ds.sumo.isSimFinishedMsg(msg)):
ds.sumo.finish(job)
---
---
[¶](#cleanup) クリーンアップ
---------------------
| 関数 |
def cleanup(self)
|
| 説明 |
SumoSchedulerが確保したすべてのリソースを解放し、アンロードします。Pythonスクリプトの最後でのみ実行してください。クリーンアップ後にシミュレーションをスケジュールすると、問題が発生する可能性があります。また、persistentとしてマークされたジョブデータも含めてすべてクリーンアップします。
|
| 引数 |
---
---
[¶](#utility) ユーティリティ
---------------------
| 関数 |
def isSimFinishedMsg(self, msg)
|
| 説明 |
メッセージがシミュレーションの終了を示すものかどうかを判定します。
|
| 引数 |
| 返り値 | シミュレーション終了メッセージであればtrue、そうでなければfalse |
例```
def msg_callback(job, msg):
if (ds.sumo.isSimFinishedMsg(msg)):
ds.sumo.finish(job)
| |
|