Chore: Stop tracking files based on .gitignore update.
Untracked files matching the following rules: - Rule "!.vscode/launch.json": 1 file - Rule "!.vscode/settings.json": 1 file - Rule "!.vscode/tasks.json": 1 file - Rule "*.bak*": 8 files
This commit is contained in:
parent
2c46580a6c
commit
8c439b60c3
3
.gitignore
vendored
3
.gitignore
vendored
@ -150,3 +150,6 @@ dmypy.json
|
|||||||
*~
|
*~
|
||||||
Temp/*
|
Temp/*
|
||||||
*.txt
|
*.txt
|
||||||
|
_dist/
|
||||||
|
_build/
|
||||||
|
*.bak*
|
||||||
@ -381,5 +381,42 @@
|
|||||||
"use_spline": false
|
"use_spline": false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"corto": {
|
||||||
|
"name": "corto",
|
||||||
|
"targets": [
|
||||||
|
{
|
||||||
|
"target_id": 0,
|
||||||
|
"active": true,
|
||||||
|
"traceable": true,
|
||||||
|
"trajectory": [
|
||||||
|
{
|
||||||
|
"maneuver_type": "Fly to Point",
|
||||||
|
"duration_s": 10.0,
|
||||||
|
"target_range_nm": 50.0,
|
||||||
|
"target_azimuth_deg": 45.0,
|
||||||
|
"target_altitude_ft": 10000.0,
|
||||||
|
"target_velocity_fps": 506.343,
|
||||||
|
"target_heading_deg": -90.0,
|
||||||
|
"longitudinal_acceleration_g": 0.0,
|
||||||
|
"lateral_acceleration_g": 0.0,
|
||||||
|
"vertical_acceleration_g": 0.0,
|
||||||
|
"turn_direction": "Right"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"maneuver_type": "Fly to Point",
|
||||||
|
"duration_s": 30.0,
|
||||||
|
"target_range_nm": 50.0,
|
||||||
|
"target_azimuth_deg": -45.0,
|
||||||
|
"target_altitude_ft": 10000.0,
|
||||||
|
"longitudinal_acceleration_g": 0.0,
|
||||||
|
"lateral_acceleration_g": 0.0,
|
||||||
|
"vertical_acceleration_g": 0.0,
|
||||||
|
"turn_direction": "Right"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"use_spline": false
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,388 +0,0 @@
|
|||||||
{
|
|
||||||
"scenario1": {
|
|
||||||
"name": "scenario1",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 0,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 0.0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 100.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 1670.9318999999994,
|
|
||||||
"target_heading_deg": 10.0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 400.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_range_nm": 25.0,
|
|
||||||
"target_azimuth_deg": -20.0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"scenario2": {
|
|
||||||
"name": "scenario2",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 0,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_range_nm": 10.0,
|
|
||||||
"target_azimuth_deg": -3.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 0.0,
|
|
||||||
"target_heading_deg": 0.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 30.0,
|
|
||||||
"target_azimuth_deg": -10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 35.0,
|
|
||||||
"target_azimuth_deg": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 35.0,
|
|
||||||
"target_azimuth_deg": 30.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 45.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"target_id": 1,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_range_nm": 10.0,
|
|
||||||
"target_azimuth_deg": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 20.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 30.0,
|
|
||||||
"target_range_nm": 30.0,
|
|
||||||
"target_azimuth_deg": 30.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 30.0,
|
|
||||||
"target_range_nm": 35.0,
|
|
||||||
"target_azimuth_deg": -10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"target_id": 2,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 1.0,
|
|
||||||
"target_range_nm": 28.0,
|
|
||||||
"target_azimuth_deg": 0.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 300.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Dynamic Maneuver",
|
|
||||||
"duration_s": 9.0,
|
|
||||||
"maneuver_speed_fps": 1519.0289999999995,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 9.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 100.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 1012.686,
|
|
||||||
"target_heading_deg": -90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"scenario3": {
|
|
||||||
"name": "scenario3",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 0,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_range_nm": 5.0,
|
|
||||||
"target_azimuth_deg": 0.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 20.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 20.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 30.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": -180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"scenario_9g": {
|
|
||||||
"name": "scenario2",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 2,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 1.0,
|
|
||||||
"target_range_nm": 28.0,
|
|
||||||
"target_azimuth_deg": 0.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 300.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Dynamic Maneuver",
|
|
||||||
"duration_s": 9.0,
|
|
||||||
"maneuver_speed_fps": 1519.0289999999995,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 9.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 100.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 1012.686,
|
|
||||||
"target_heading_deg": -90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"scenario_dritto": {
|
|
||||||
"name": "scenario_dritto",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 0,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 1.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": -45.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 100.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 45.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"s1": {
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,385 +0,0 @@
|
|||||||
{
|
|
||||||
"scenario1": {
|
|
||||||
"name": "scenario1",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 0,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 0.0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 100.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 1670.9318999999994,
|
|
||||||
"target_heading_deg": 10.0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 400.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_range_nm": 25.0,
|
|
||||||
"target_azimuth_deg": -20.0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"scenario2": {
|
|
||||||
"name": "scenario2",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 0,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_range_nm": 10.0,
|
|
||||||
"target_azimuth_deg": -3.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 0.0,
|
|
||||||
"target_heading_deg": 0.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 30.0,
|
|
||||||
"target_azimuth_deg": -10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 35.0,
|
|
||||||
"target_azimuth_deg": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 35.0,
|
|
||||||
"target_azimuth_deg": 30.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 45.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"target_id": 1,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_range_nm": 10.0,
|
|
||||||
"target_azimuth_deg": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 20.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 30.0,
|
|
||||||
"target_range_nm": 30.0,
|
|
||||||
"target_azimuth_deg": 30.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 30.0,
|
|
||||||
"target_range_nm": 35.0,
|
|
||||||
"target_azimuth_deg": -10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"target_id": 2,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 1.0,
|
|
||||||
"target_range_nm": 28.0,
|
|
||||||
"target_azimuth_deg": 0.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 300.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Dynamic Maneuver",
|
|
||||||
"duration_s": 9.0,
|
|
||||||
"maneuver_speed_fps": 1519.0289999999995,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 9.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 100.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 1012.686,
|
|
||||||
"target_heading_deg": -90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"scenario3": {
|
|
||||||
"name": "scenario3",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 0,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_range_nm": 5.0,
|
|
||||||
"target_azimuth_deg": 0.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 20.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 20.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 30.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": -180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"scenario_9g": {
|
|
||||||
"name": "scenario2",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 2,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 1.0,
|
|
||||||
"target_range_nm": 28.0,
|
|
||||||
"target_azimuth_deg": 0.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 300.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Dynamic Maneuver",
|
|
||||||
"duration_s": 9.0,
|
|
||||||
"maneuver_speed_fps": 1519.0289999999995,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 9.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 100.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 1012.686,
|
|
||||||
"target_heading_deg": -90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"scenario_dritto": {
|
|
||||||
"name": "scenario_dritto",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 0,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 1.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": -45.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 100.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 45.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"s1": {
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"s1": {
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,385 +0,0 @@
|
|||||||
{
|
|
||||||
"scenario1": {
|
|
||||||
"name": "scenario1",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 0,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 0.0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 100.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 1670.9318999999994,
|
|
||||||
"target_heading_deg": 10.0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 400.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_range_nm": 25.0,
|
|
||||||
"target_azimuth_deg": -20.0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"scenario2": {
|
|
||||||
"name": "scenario2",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 0,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_range_nm": 10.0,
|
|
||||||
"target_azimuth_deg": -3.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 0.0,
|
|
||||||
"target_heading_deg": 0.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 30.0,
|
|
||||||
"target_azimuth_deg": -10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 35.0,
|
|
||||||
"target_azimuth_deg": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 35.0,
|
|
||||||
"target_azimuth_deg": 30.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 45.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"target_id": 1,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_range_nm": 10.0,
|
|
||||||
"target_azimuth_deg": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 20.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 30.0,
|
|
||||||
"target_range_nm": 30.0,
|
|
||||||
"target_azimuth_deg": 30.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 30.0,
|
|
||||||
"target_range_nm": 35.0,
|
|
||||||
"target_azimuth_deg": -10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"target_id": 2,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 1.0,
|
|
||||||
"target_range_nm": 28.0,
|
|
||||||
"target_azimuth_deg": 0.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 300.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Dynamic Maneuver",
|
|
||||||
"duration_s": 9.0,
|
|
||||||
"maneuver_speed_fps": 1519.0289999999995,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 9.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 100.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 1012.686,
|
|
||||||
"target_heading_deg": -90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"scenario3": {
|
|
||||||
"name": "scenario3",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 0,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_range_nm": 5.0,
|
|
||||||
"target_azimuth_deg": 0.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 20.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 20.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 30.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": -180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"scenario_9g": {
|
|
||||||
"name": "scenario2",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 2,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 1.0,
|
|
||||||
"target_range_nm": 28.0,
|
|
||||||
"target_azimuth_deg": 0.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 300.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Dynamic Maneuver",
|
|
||||||
"duration_s": 9.0,
|
|
||||||
"maneuver_speed_fps": 1519.0289999999995,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 9.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 100.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 1012.686,
|
|
||||||
"target_heading_deg": -90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"scenario_dritto": {
|
|
||||||
"name": "scenario_dritto",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 0,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 1.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": -45.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 100.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 45.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"s1": {
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
{
|
|
||||||
"s1": {
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,388 +0,0 @@
|
|||||||
{
|
|
||||||
"scenario1": {
|
|
||||||
"name": "scenario1",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 0,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 0.0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 100.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 1670.9318999999994,
|
|
||||||
"target_heading_deg": 10.0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 400.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_range_nm": 25.0,
|
|
||||||
"target_azimuth_deg": -20.0
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"scenario2": {
|
|
||||||
"name": "scenario2",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 0,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_range_nm": 10.0,
|
|
||||||
"target_azimuth_deg": -3.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 0.0,
|
|
||||||
"target_heading_deg": 0.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 30.0,
|
|
||||||
"target_azimuth_deg": -10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 35.0,
|
|
||||||
"target_azimuth_deg": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 35.0,
|
|
||||||
"target_azimuth_deg": 30.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 200.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 45.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"target_id": 1,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_range_nm": 10.0,
|
|
||||||
"target_azimuth_deg": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 20.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 30.0,
|
|
||||||
"target_range_nm": 30.0,
|
|
||||||
"target_azimuth_deg": 30.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 30.0,
|
|
||||||
"target_range_nm": 35.0,
|
|
||||||
"target_azimuth_deg": -10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"target_id": 2,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 1.0,
|
|
||||||
"target_range_nm": 28.0,
|
|
||||||
"target_azimuth_deg": 0.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 300.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Dynamic Maneuver",
|
|
||||||
"duration_s": 9.0,
|
|
||||||
"maneuver_speed_fps": 1519.0289999999995,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 9.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 100.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 1012.686,
|
|
||||||
"target_heading_deg": -90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"scenario3": {
|
|
||||||
"name": "scenario3",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 0,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_range_nm": 5.0,
|
|
||||||
"target_azimuth_deg": 0.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 20.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 10.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 20.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 30.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": -180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"scenario_9g": {
|
|
||||||
"name": "scenario2",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 2,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 1.0,
|
|
||||||
"target_range_nm": 28.0,
|
|
||||||
"target_azimuth_deg": 0.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 300.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 180.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Dynamic Maneuver",
|
|
||||||
"duration_s": 9.0,
|
|
||||||
"maneuver_speed_fps": 1519.0289999999995,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 9.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly for Duration",
|
|
||||||
"duration_s": 100.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 1012.686,
|
|
||||||
"target_heading_deg": -90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"scenario_dritto": {
|
|
||||||
"name": "scenario_dritto",
|
|
||||||
"targets": [
|
|
||||||
{
|
|
||||||
"target_id": 0,
|
|
||||||
"active": true,
|
|
||||||
"traceable": true,
|
|
||||||
"trajectory": [
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 1.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": -45.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"target_velocity_fps": 506.343,
|
|
||||||
"target_heading_deg": 90.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"maneuver_type": "Fly to Point",
|
|
||||||
"duration_s": 100.0,
|
|
||||||
"target_range_nm": 20.0,
|
|
||||||
"target_azimuth_deg": 45.0,
|
|
||||||
"target_altitude_ft": 10000.0,
|
|
||||||
"longitudinal_acceleration_g": 0.0,
|
|
||||||
"lateral_acceleration_g": 0.0,
|
|
||||||
"vertical_acceleration_g": 0.0,
|
|
||||||
"turn_direction": "Right"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"use_spline": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"s1": {
|
|
||||||
"a": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -3,7 +3,7 @@
|
|||||||
"scan_limit": 60,
|
"scan_limit": 60,
|
||||||
"max_range": 100,
|
"max_range": 100,
|
||||||
"geometry": "1599x1089+587+179",
|
"geometry": "1599x1089+587+179",
|
||||||
"last_selected_scenario": null,
|
"last_selected_scenario": "corto",
|
||||||
"connection": {
|
"connection": {
|
||||||
"target": {
|
"target": {
|
||||||
"type": "sfp",
|
"type": "sfp",
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 0 B After Width: | Height: | Size: 82 KiB |
74
target_simulator/_version.py
Normal file
74
target_simulator/_version.py
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# File generated by PyInstaller GUI Wrapper. DO NOT EDIT MANUALLY.
|
||||||
|
# Contains build-time information scraped from Git (if available)
|
||||||
|
# and a helper function to format version strings.
|
||||||
|
|
||||||
|
import re
|
||||||
|
|
||||||
|
# --- Version Data (Generated) ---
|
||||||
|
__version__ = "v.0.0.0.62-0-g00ffcb5-dirty"
|
||||||
|
GIT_COMMIT_HASH = "00ffcb54a320df4b682bb77920dbb758e10fbca0"
|
||||||
|
GIT_BRANCH = "master"
|
||||||
|
BUILD_TIMESTAMP = "2025-10-31T11:56:55.656151+00:00"
|
||||||
|
IS_GIT_REPO = True
|
||||||
|
|
||||||
|
# --- Default Values (for comparison or fallback) ---
|
||||||
|
DEFAULT_VERSION = "0.0.0+unknown"
|
||||||
|
DEFAULT_COMMIT = "Unknown"
|
||||||
|
DEFAULT_BRANCH = "Unknown"
|
||||||
|
|
||||||
|
# --- Helper Function ---
|
||||||
|
def get_version_string(format_string=None):
|
||||||
|
"""
|
||||||
|
Returns a formatted string based on the build version information.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
format_string (str, optional): A format string using placeholders.
|
||||||
|
Defaults to "{version} ({branch}/{commit_short})" if None.
|
||||||
|
Placeholders:
|
||||||
|
{{version}}: Full version string (e.g., 'v1.0.0-5-gabcdef-dirty')
|
||||||
|
{{tag}}: Clean tag part if exists (e.g., 'v1.0.0'), else DEFAULT_VERSION.
|
||||||
|
{{commit}}: Full Git commit hash.
|
||||||
|
{{commit_short}}: Short Git commit hash (7 chars).
|
||||||
|
{{branch}}: Git branch name.
|
||||||
|
{{dirty}}: '-dirty' if the repo was dirty, empty otherwise.
|
||||||
|
{{timestamp}}: Full build timestamp (ISO 8601 UTC).
|
||||||
|
{{timestamp_short}}: Build date only (YYYY-MM-DD).
|
||||||
|
{{is_git}}: 'Git' if IS_GIT_REPO is True, 'Unknown' otherwise.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
str: The formatted version string, or an error message if formatting fails.
|
||||||
|
"""
|
||||||
|
if format_string is None:
|
||||||
|
format_string = "{version} ({branch}/{commit_short})" # Default format
|
||||||
|
|
||||||
|
replacements = {}
|
||||||
|
try:
|
||||||
|
replacements['version'] = __version__ if __version__ else DEFAULT_VERSION
|
||||||
|
replacements['commit'] = GIT_COMMIT_HASH if GIT_COMMIT_HASH else DEFAULT_COMMIT
|
||||||
|
replacements['commit_short'] = GIT_COMMIT_HASH[:7] if GIT_COMMIT_HASH and len(GIT_COMMIT_HASH) >= 7 else DEFAULT_COMMIT
|
||||||
|
replacements['branch'] = GIT_BRANCH if GIT_BRANCH else DEFAULT_BRANCH
|
||||||
|
replacements['timestamp'] = BUILD_TIMESTAMP if BUILD_TIMESTAMP else "Unknown"
|
||||||
|
replacements['timestamp_short'] = BUILD_TIMESTAMP.split('T')[0] if BUILD_TIMESTAMP and 'T' in BUILD_TIMESTAMP else "Unknown"
|
||||||
|
replacements['is_git'] = "Git" if IS_GIT_REPO else "Unknown"
|
||||||
|
replacements['dirty'] = "-dirty" if __version__ and __version__.endswith('-dirty') else ""
|
||||||
|
|
||||||
|
tag = DEFAULT_VERSION
|
||||||
|
if __version__ and IS_GIT_REPO:
|
||||||
|
match = re.match(r'^(v?([0-9]+(?:\.[0-9]+)*))', __version__)
|
||||||
|
if match:
|
||||||
|
tag = match.group(1)
|
||||||
|
replacements['tag'] = tag
|
||||||
|
|
||||||
|
output_string = format_string
|
||||||
|
for placeholder, value in replacements.items():
|
||||||
|
pattern = re.compile(r'{{\s*' + re.escape(placeholder) + r'\s*}}')
|
||||||
|
output_string = pattern.sub(str(value), output_string)
|
||||||
|
|
||||||
|
if re.search(r'{\s*\w+\s*}', output_string):
|
||||||
|
pass # Or log a warning: print(f"Warning: Unreplaced placeholders found: {output_string}")
|
||||||
|
|
||||||
|
return output_string
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
return f"[Formatting Error: {e}]"
|
||||||
@ -211,7 +211,7 @@ class SfpTransport:
|
|||||||
)
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
sent_preview = repr(cs)
|
sent_preview = repr(cs)
|
||||||
logger.info(
|
logger.debug(
|
||||||
f"{log_prefix} Sent command to {destination} (TID: {header.SFP_TID}): {sent_preview!r}"
|
f"{log_prefix} Sent command to {destination} (TID: {header.SFP_TID}): {sent_preview!r}"
|
||||||
)
|
)
|
||||||
return True
|
return True
|
||||||
|
|||||||
@ -46,6 +46,12 @@ class AnalysisWindow(tk.Toplevel):
|
|||||||
self._hub = hub
|
self._hub = hub
|
||||||
self._active = True
|
self._active = True
|
||||||
|
|
||||||
|
# Cache last displayed state so we can preserve it between simulations.
|
||||||
|
# If no new analysis data is available (e.g. simulation stopped), we
|
||||||
|
# will keep showing these values until a new simulation populates the hub.
|
||||||
|
self._last_displayed_target_id = None
|
||||||
|
self._has_last_values = False
|
||||||
|
|
||||||
self.selected_target_id = tk.IntVar()
|
self.selected_target_id = tk.IntVar()
|
||||||
|
|
||||||
self._create_widgets()
|
self._create_widgets()
|
||||||
@ -118,32 +124,127 @@ class AnalysisWindow(tk.Toplevel):
|
|||||||
return
|
return
|
||||||
|
|
||||||
self._update_target_selector()
|
self._update_target_selector()
|
||||||
|
# If the simulation is not running, do not process new analysis data.
|
||||||
|
# Keep showing the last cached values (if any) until a simulation is
|
||||||
|
# actively running again.
|
||||||
|
try:
|
||||||
|
running = False
|
||||||
|
if hasattr(self.master, "is_simulation_running"):
|
||||||
|
try:
|
||||||
|
running = bool(self.master.is_simulation_running.get())
|
||||||
|
except Exception:
|
||||||
|
running = False
|
||||||
|
except Exception:
|
||||||
|
running = False
|
||||||
|
|
||||||
|
sel = self.selected_target_id.get()
|
||||||
|
|
||||||
|
if not running:
|
||||||
|
# Simulation not running: do not call analyze or update plots.
|
||||||
|
# Preserve last displayed values to avoid UI flicker/clearing.
|
||||||
|
# However, if there are no cached values, show a message in the
|
||||||
|
# stats table to indicate data will appear when simulation runs.
|
||||||
|
if not self._has_last_values:
|
||||||
|
self.stats_tree.delete(*self.stats_tree.get_children())
|
||||||
|
self.stats_tree.insert(
|
||||||
|
"",
|
||||||
|
"end",
|
||||||
|
values=("No Data", "-", "-", "-"),
|
||||||
|
)
|
||||||
|
self.after(UPDATE_INTERVAL_MS, self._update_loop)
|
||||||
|
return
|
||||||
|
|
||||||
|
# When running, perform live analysis and update views.
|
||||||
analysis_results = self._analyzer.analyze()
|
analysis_results = self._analyzer.analyze()
|
||||||
|
|
||||||
if self.selected_target_id.get() in analysis_results:
|
if sel in analysis_results:
|
||||||
self._update_stats_table(analysis_results[self.selected_target_id.get()])
|
# We have fresh analysis for the selected target: update and cache
|
||||||
self._update_plot(self.selected_target_id.get())
|
self._update_stats_table(analysis_results[sel])
|
||||||
|
self._update_plot(sel)
|
||||||
|
self._last_displayed_target_id = sel
|
||||||
|
self._has_last_values = True
|
||||||
else:
|
else:
|
||||||
|
# No fresh analysis for selected target. Decide whether to clear or
|
||||||
|
# keep the last displayed values. If the hub currently reports any
|
||||||
|
# active real targets, it means data should be cleared for missing
|
||||||
|
# selection; otherwise preserve.
|
||||||
|
try:
|
||||||
|
if self._hub and hasattr(self._hub, "has_active_real_targets") and self._hub.has_active_real_targets():
|
||||||
self._clear_views()
|
self._clear_views()
|
||||||
|
self._has_last_values = False
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
except Exception:
|
||||||
|
self._clear_views()
|
||||||
|
self._has_last_values = False
|
||||||
|
|
||||||
self.after(UPDATE_INTERVAL_MS, self._update_loop)
|
self.after(UPDATE_INTERVAL_MS, self._update_loop)
|
||||||
|
|
||||||
def _update_target_selector(self):
|
def _update_target_selector(self):
|
||||||
|
# Only update the combobox values when the hub reports target ids.
|
||||||
|
# This prevents the selector from being emptied when the hub is cleared
|
||||||
|
# at the end of a simulation and allows the analysis window to continue
|
||||||
|
# showing the last results until the next simulation starts.
|
||||||
|
try:
|
||||||
target_ids = sorted(self._hub.get_all_target_ids())
|
target_ids = sorted(self._hub.get_all_target_ids())
|
||||||
|
except Exception:
|
||||||
|
target_ids = []
|
||||||
|
|
||||||
|
if target_ids:
|
||||||
self.target_selector["values"] = target_ids
|
self.target_selector["values"] = target_ids
|
||||||
|
|
||||||
if target_ids and self.selected_target_id.get() not in target_ids:
|
if self.selected_target_id.get() not in target_ids:
|
||||||
|
# If previous selection isn't available, pick the first available
|
||||||
self.selected_target_id.set(target_ids[0])
|
self.selected_target_id.set(target_ids[0])
|
||||||
|
else:
|
||||||
|
# Do not overwrite existing combobox values when no targets are present.
|
||||||
|
# This preserves the user's last view after a simulation ends.
|
||||||
|
pass
|
||||||
|
|
||||||
def _on_target_select(self, event=None):
|
def _on_target_select(self, event=None):
|
||||||
# Trigger an immediate update when user changes selection
|
# Trigger an immediate update when user changes selection
|
||||||
analysis_results = self._analyzer.analyze()
|
# Only perform an immediate analysis if the simulation is running.
|
||||||
if self.selected_target_id.get() in analysis_results:
|
running = False
|
||||||
self._update_stats_table(analysis_results[self.selected_target_id.get()])
|
try:
|
||||||
self._update_plot(self.selected_target_id.get())
|
if hasattr(self.master, "is_simulation_running"):
|
||||||
|
running = bool(self.master.is_simulation_running.get())
|
||||||
|
except Exception:
|
||||||
|
running = False
|
||||||
|
|
||||||
|
sel = self.selected_target_id.get()
|
||||||
|
|
||||||
|
if not running:
|
||||||
|
# If we have cached values for this selection, keep them; otherwise
|
||||||
|
# show a placeholder and don't call the analyzer.
|
||||||
|
if self._has_last_values and self._last_displayed_target_id == sel:
|
||||||
|
return
|
||||||
else:
|
else:
|
||||||
|
self.stats_tree.delete(*self.stats_tree.get_children())
|
||||||
|
self.stats_tree.insert(
|
||||||
|
"",
|
||||||
|
"end",
|
||||||
|
values=("No Data", "-", "-", "-"),
|
||||||
|
)
|
||||||
|
self._has_last_values = False
|
||||||
|
return
|
||||||
|
|
||||||
|
# Simulation running -> perform analysis for selection
|
||||||
|
analysis_results = self._analyzer.analyze()
|
||||||
|
if sel in analysis_results:
|
||||||
|
self._update_stats_table(analysis_results[sel])
|
||||||
|
self._update_plot(sel)
|
||||||
|
self._last_displayed_target_id = sel
|
||||||
|
self._has_last_values = True
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
if self._hub and hasattr(self._hub, "has_active_real_targets") and self._hub.has_active_real_targets():
|
||||||
self._clear_views()
|
self._clear_views()
|
||||||
|
self._has_last_values = False
|
||||||
|
else:
|
||||||
|
pass
|
||||||
|
except Exception:
|
||||||
|
self._clear_views()
|
||||||
|
self._has_last_values = False
|
||||||
|
|
||||||
def _update_stats_table(self, results: Dict):
|
def _update_stats_table(self, results: Dict):
|
||||||
self.stats_tree.delete(*self.stats_tree.get_children())
|
self.stats_tree.delete(*self.stats_tree.get_children())
|
||||||
|
|||||||
@ -796,33 +796,12 @@ class MainView(tk.Tk):
|
|||||||
if self.is_simulation_running.get():
|
if self.is_simulation_running.get():
|
||||||
self.logger.info("Simulation is already running.")
|
self.logger.info("Simulation is already running.")
|
||||||
return
|
return
|
||||||
# If communicator exists but connection was deferred, try to connect now
|
# Require explicit connection before starting live. Do NOT auto-connect.
|
||||||
if self.target_communicator and not self.target_communicator.is_open:
|
if not (self.target_communicator and getattr(self.target_communicator, "is_open", False)):
|
||||||
try:
|
# Friendly English reminder to connect first
|
||||||
sfp_cfg = self.connection_config.get("target", {}).get("sfp", {})
|
messagebox.showwarning(
|
||||||
if sfp_cfg:
|
|
||||||
self.logger.info(
|
|
||||||
"Attempting deferred/auto connect for target communicator before starting simulation."
|
|
||||||
)
|
|
||||||
if not self.target_communicator.connect(sfp_cfg):
|
|
||||||
messagebox.showerror(
|
|
||||||
"Not Connected",
|
"Not Connected",
|
||||||
"Target communicator is not connected. Please check settings and connect.",
|
"Please connect to the target (use the Connect button) before starting live simulation.",
|
||||||
)
|
|
||||||
return
|
|
||||||
except Exception:
|
|
||||||
self.logger.exception(
|
|
||||||
"Exception while attempting auto-connect for target communicator."
|
|
||||||
)
|
|
||||||
messagebox.showerror(
|
|
||||||
"Not Connected",
|
|
||||||
"Target communicator is not connected. Please check settings and connect.",
|
|
||||||
)
|
|
||||||
return
|
|
||||||
if not self.target_communicator or not self.target_communicator.is_open:
|
|
||||||
messagebox.showerror(
|
|
||||||
"Not Connected",
|
|
||||||
"Target communicator is not connected. Please check settings and connect.",
|
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
if not self.scenario or not self.scenario.get_all_targets():
|
if not self.scenario or not self.scenario.get_all_targets():
|
||||||
@ -913,37 +892,60 @@ class MainView(tk.Tk):
|
|||||||
if not self.is_simulation_running.get() or not self.simulation_engine:
|
if not self.is_simulation_running.get() or not self.simulation_engine:
|
||||||
return
|
return
|
||||||
|
|
||||||
self.logger.info("Stopping live simulation...")
|
self.logger.info("Stopping live simulation (user request)...")
|
||||||
|
try:
|
||||||
self.simulation_engine.stop()
|
self.simulation_engine.stop()
|
||||||
|
except Exception:
|
||||||
|
self.logger.exception("Error while stopping simulation engine")
|
||||||
self.simulation_engine = None
|
self.simulation_engine = None
|
||||||
# Also disconnect the target communicator (SFP) so we stop receiving from server
|
|
||||||
try:
|
|
||||||
if self.target_communicator and getattr(
|
|
||||||
self.target_communicator, "is_open", False
|
|
||||||
):
|
|
||||||
self.logger.info(
|
|
||||||
"Disconnecting target communicator (SFP) after simulation stop."
|
|
||||||
)
|
|
||||||
try:
|
|
||||||
self.target_communicator.disconnect()
|
|
||||||
except Exception:
|
|
||||||
self.logger.exception(
|
|
||||||
"Error while disconnecting target communicator."
|
|
||||||
)
|
|
||||||
# Update visual status
|
|
||||||
self._update_communicator_status("Target", False)
|
|
||||||
try:
|
|
||||||
self.ppi_widget.update_connect_state(False)
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
except Exception:
|
|
||||||
self.logger.exception(
|
|
||||||
"Unexpected error while attempting to disconnect target communicator."
|
|
||||||
)
|
|
||||||
|
|
||||||
|
# IMPORTANT: Do NOT disconnect the communicator here. Keep the connection
|
||||||
|
# active so the user can choose when to disconnect manually.
|
||||||
|
|
||||||
|
# Update running flag and UI states
|
||||||
self.is_simulation_running.set(False)
|
self.is_simulation_running.set(False)
|
||||||
self._update_button_states()
|
self._update_button_states()
|
||||||
|
|
||||||
|
# Inform the user the simulation was stopped
|
||||||
|
try:
|
||||||
|
messagebox.showinfo(
|
||||||
|
"Simulation Stopped",
|
||||||
|
"Live simulation was stopped. Connection to the target remains active.",
|
||||||
|
)
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
def _on_simulation_finished(self):
|
||||||
|
"""Handle the natural end-of-simulation event coming from the engine.
|
||||||
|
|
||||||
|
This should update the UI and inform the user, but must NOT disconnect the
|
||||||
|
communicator — the connection stays active until the user explicitly disconnects.
|
||||||
|
"""
|
||||||
|
self.logger.info("Handling simulation finished (engine signalled completion).")
|
||||||
|
|
||||||
|
# If engine still exists, stop it cleanly
|
||||||
|
try:
|
||||||
|
if self.simulation_engine and getattr(self.simulation_engine, "is_running", False):
|
||||||
|
try:
|
||||||
|
self.simulation_engine.stop()
|
||||||
|
except Exception:
|
||||||
|
self.logger.exception("Error while stopping finished simulation engine")
|
||||||
|
self.simulation_engine = None
|
||||||
|
except Exception:
|
||||||
|
self.logger.exception("Error while handling simulation finished cleanup")
|
||||||
|
|
||||||
|
# Mark as not running and update UI (but keep connection state as-is)
|
||||||
|
self.is_simulation_running.set(False)
|
||||||
|
self._update_button_states()
|
||||||
|
|
||||||
|
# Notify the user in English that the simulation finished
|
||||||
|
try:
|
||||||
|
messagebox.showinfo("Simulation Finished", "The live simulation has completed.")
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
def _on_reset_simulation(self):
|
def _on_reset_simulation(self):
|
||||||
self.logger.info("Resetting scenario to initial state.")
|
self.logger.info("Resetting scenario to initial state.")
|
||||||
if self.is_simulation_running.get():
|
if self.is_simulation_running.get():
|
||||||
@ -963,8 +965,8 @@ class MainView(tk.Tk):
|
|||||||
|
|
||||||
if update == "SIMULATION_FINISHED":
|
if update == "SIMULATION_FINISHED":
|
||||||
self.logger.info("Simulation finished signal received.")
|
self.logger.info("Simulation finished signal received.")
|
||||||
# Ensure engine is stopped and UI reset
|
# Ensure engine is stopped and UI reset (do not disconnect communicator)
|
||||||
self._on_stop_simulation()
|
self._on_simulation_finished()
|
||||||
# Reset progress UI to final state
|
# Reset progress UI to final state
|
||||||
try:
|
try:
|
||||||
self.sim_elapsed_time = self.total_sim_time
|
self.sim_elapsed_time = self.total_sim_time
|
||||||
@ -1073,10 +1075,14 @@ class MainView(tk.Tk):
|
|||||||
def _update_button_states(self):
|
def _update_button_states(self):
|
||||||
is_running = self.is_simulation_running.get()
|
is_running = self.is_simulation_running.get()
|
||||||
|
|
||||||
|
# Determine if analysis data exists. Ensure boolean type.
|
||||||
has_data_to_analyze = (
|
has_data_to_analyze = (
|
||||||
self.simulation_hub.get_all_target_ids() if self.simulation_hub else False
|
bool(self.simulation_hub.get_all_target_ids()) if self.simulation_hub else False
|
||||||
)
|
)
|
||||||
analysis_state = tk.NORMAL if is_running or has_data_to_analyze else tk.DISABLED
|
|
||||||
|
# Enable Analysis only when simulation is NOT running and there is data
|
||||||
|
# to analyze (i.e., after a completed run or after receiving real data).
|
||||||
|
analysis_state = tk.NORMAL if (not is_running and has_data_to_analyze) else tk.DISABLED
|
||||||
|
|
||||||
state = tk.DISABLED if is_running else tk.NORMAL
|
state = tk.DISABLED if is_running else tk.NORMAL
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user