Skip to content
Open
Show file tree
Hide file tree
Changes from 18 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions images/icons/cf_icon_MP_grid_grey.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
48 changes: 48 additions & 0 deletions locale/en/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -5376,9 +5376,18 @@
"eeprom_load_ok": {
"message": "EEPROM <span style=\"color: #37a8db\">loaded</span>"
},
"missionSearchAddressSrOnly": {
"message": "Search for address"
},
"missionCenterMapSrOnly": {
"message": "Center map on latest GPS fix"
},
"confirm_delete_all_points": {
"message": "Do you really want to delete all points?"
},
"confirm_delete_selected_point": {
"message": "Delete this waypoint?"
},
"confirm_delete_point_with_options": {
"message": "Do you really want to delete this Waypoint with non-Geo JUMP/SET_HEAD/RTH options? \nIf yes, Non-Geo options attached will be removed also!"
},
Expand Down Expand Up @@ -6780,6 +6789,45 @@
"javascriptCompleteExample": {
"message": "Complete Example"
},
"missionGridPatternTitle": {
"message": "Generate grid survey pattern (Ctrl+G)"
},
"missionGridDrawPrompt": {
"message": "Click on the map to draw a survey area polygon. Double-click to finish. Press Escape to cancel."
},
"missionGridSettingsTitle": {
"message": "Grid Survey Settings"
},
"missionGridSpacing": {
"message": "Line Spacing"
},
"missionGridAltitude": {
"message": "Altitude"
},
"missionGridSpeed": {
"message": "Speed"
},
"missionGridAngle": {
"message": "Sweep Angle"
},
"missionGridOvershoot": {
"message": "Overshoot"
},
"missionGridEndRTH": {
"message": "End with RTH"
},
"missionGridGenerate": {
"message": "Generate"
},
"missionGridNoWaypoints": {
"message": "No waypoints generated. Try adjusting spacing or area."
},
"missionGridWaypointCount": {
"message": "Waypoints: $1 (remaining capacity: $2)"
},
"missionGridTooManyWaypoints": {
"message": "Grid needs $1 waypoints but only $2 slots remaining. Reduce area or increase spacing."
},
"sensorProfileTitle": {
"message": "Control profile — stores PID tuning, rates, and filtering settings"
},
Expand Down
4 changes: 4 additions & 0 deletions src/css/tabs/mission_planer.css
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,10 @@
background-image: url(./../../../images/icons/search-white.svg);
}

.tab-mission-control .ic_grid {
background-image: url(./../../../images/icons/cf_icon_MP_grid_grey.svg);
}

.tab-mission-control .ic_setup {
background-image: url(./../../../images/icons/cf_icon_setup_white.svg);
}
Expand Down
53 changes: 51 additions & 2 deletions tabs/mission_control.html
Original file line number Diff line number Diff line change
Expand Up @@ -40,14 +40,63 @@
<a id="searchAddressButton"
class="btnicon ic_search"
href="#"
title="Search for address (Ctrl+A)"></a>
title="Search for address (Ctrl+A)"
aria-label="Search for address (Ctrl+A)"><span class="sr-only" data-i18n="missionSearchAddressSrOnly">Search for address</span></a>
</div>

<div id="centerOnDrone" class="btn btn-default" style="padding-top: 1px; display: inline-block; cursor: pointer; float: left; opacity: 0.45; pointer-events: none;">
<a id="centerOnDroneButton"
class="btnicon ic_center"
href="#"
title="Center map on latest GPS fix (Ctrl+C)"></a>
title="Center map on latest GPS fix (Ctrl+C)"
aria-label="Center map on latest GPS fix (Ctrl+C)"><span class="sr-only" data-i18n="missionCenterMapSrOnly">Center map on latest GPS fix</span></a>
</div>

<div id="gridPattern" class="btn btn-default" style="padding-top: 1px; display: inline-block; cursor: pointer; float: left;">
<a id="gridPatternButton"
class="btnicon ic_grid"
href="#"
i18n_title="missionGridPatternTitle"
aria-label="Grid survey pattern"><span class="sr-only" data-i18n="missionGridPatternTitle">Grid survey pattern</span></a>
</div>
</div>
</div>

<div id="missionPlannerGridSettings" class="gui_box grey" style="display: none;">
<div class="gui_box_titlebar">
<div class="spacer_box_title" data-i18n="missionGridSettingsTitle"></div>
<div class="btnMenu btnMenuIcon save_btn">
<a id="gridCancel" class="ic_cancel" href="#" i18n_title="missionSettingsCancel" aria-label="Cancel grid settings"><span class="sr-only" data-i18n="missionSettingsCancel">Cancel</span></a>
</div>
</div>
<div class="spacer" id="gridSettingsContent">
<div class="point">
<label class="point-label" for="gridSpacing" data-i18n="missionGridSpacing">Grid spacing</label>
<input id="gridSpacing" type="number" value="100" min="5" max="1000" step="5"> m
</div>
<div class="point">
<label class="point-label" for="gridAltitude" data-i18n="missionGridAltitude">Grid altitude</label>
<input id="gridAltitude" type="number" value="50" min="5" max="5000" step="5"> m
</div>
<div class="point">
<label class="point-label" for="gridSpeed" data-i18n="missionGridSpeed">Grid speed</label>
<input id="gridSpeed" type="number" value="0" min="0" max="100" step="1"> m/s
</div>
<div class="point">
<label class="point-label" for="gridAngle" data-i18n="missionGridAngle">Grid angle</label>
<input id="gridAngle" type="number" value="0" min="0" max="359" step="1"> &deg;
</div>
<div class="point">
<label class="point-label" for="gridOvershoot" data-i18n="missionGridOvershoot">Grid overshoot</label>
<input id="gridOvershoot" type="number" value="0" min="0" max="200" step="5"> m
</div>
<div class="point">
<label class="point-label" for="gridEndRTH" data-i18n="missionGridEndRTH">End with return to home</label>
<input id="gridEndRTH" type="checkbox" checked>
</div>
<div id="gridWaypointCount" style="margin-top:4px;margin-left:5px;font-size:0.9em;color:#666;"></div>
<div style="margin-top:8px;text-align:right;padding-right:5px;">
<button id="gridGenerate" class="default_btn" data-i18n="missionGridGenerate" style="background:#007cba;color:#fff;border:none;padding:4px 14px;cursor:pointer;"></button>
</div>
</div>
</div>
Expand Down
Loading
Loading