kopia lustrzana https://github.com/cyoung/stratux
509 wiersze
27 KiB
HTML
Executable File
509 wiersze
27 KiB
HTML
Executable File
<div class="col-sm-12">
|
|
<!-- Begin Left Col -->
|
|
<div class="col-sm-6">
|
|
<!-- Hardware Settings -->
|
|
<div class="panel-group col-sm-12">
|
|
<div class="panel panel-default ng-scope">
|
|
<div class="panel-heading">Hardware</div>
|
|
<div class="panel-body">
|
|
<div class="form-group">
|
|
<label class="control-label col-xs-7">978 MHz</label>
|
|
<div class="col-xs-5">
|
|
<ui-switch ng-model='UAT_Enabled' settings-change></ui-switch>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="control-label col-xs-7">1090 MHz</label>
|
|
<div class="col-xs-5">
|
|
<ui-switch ng-model='ES_Enabled' settings-change></ui-switch>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="control-label col-xs-7">Ping ADS-B</label>
|
|
<div class="col-xs-5">
|
|
<ui-switch ng-model='Ping_Enabled' settings-change></ui-switch>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="control-label col-xs-7">GPS</label>
|
|
<div class="col-xs-5">
|
|
<ui-switch ng-model='GPS_Enabled' settings-change></ui-switch>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="control-label col-xs-7">AHRS Sensor</label>
|
|
<div class="col-xs-5">
|
|
<ui-switch ng-model='IMU_Sensor_Enabled' settings-change></ui-switch>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="control-label col-xs-7">Baro Sensor</label>
|
|
<div class="col-xs-5">
|
|
<ui-switch ng-model='BMP_Sensor_Enabled' settings-change></ui-switch>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- WiFi Settings -->
|
|
<div class="panel-group col-sm-12">
|
|
<div class="panel panel-default ng-scope">
|
|
<div class="panel-heading">WiFi Settings</div>
|
|
<div class="panel-body grayout">
|
|
<form name="WiFiSettings">
|
|
<div class="alert alert-info">
|
|
<strong>Notice!</strong> This feature has not been implemented... YET!
|
|
</div>
|
|
<div class="form-group reset-flow">
|
|
<label class="control-label col-xs-5">WiFi SSID</label>
|
|
<input class="col-xs-7" type="string" ng-model="WiFiSSID" placeholder="WiFi Network Name" />
|
|
</div>
|
|
<div class="form-group reset-flow">
|
|
<label class="control-label col-xs-7">Network Security</label>
|
|
<div class="col-xs-5">
|
|
<ui-switch ng-model="WiFiSecurityEnabled" settings-change></ui-switch>
|
|
</div>
|
|
</div>
|
|
<div class="form-group reset-flow">
|
|
<label class="control-label col-xs-5">WiFi Passcode</label>
|
|
<input class="col-xs-7" type="string" ng-model="WiFiPasscode" placeholder="WiFi Passcode" />
|
|
</div>
|
|
<div class="form-group reset-flow">
|
|
<label class="control-label col-xs-7">WiFi Channel</label>
|
|
<select class="input-small col-sm-2 form-control-sm" ng-model="WiFiChannel" id="WiFiChannel">
|
|
<option value="1">1</option>
|
|
<option value="2">2</option>
|
|
<option value="3">3</option>
|
|
<option value="4">4</option>
|
|
<option value="5">5</option>
|
|
<option value="6">6</option>
|
|
<option value="7">7</option>
|
|
<option value="8">8</option>
|
|
<option value="9">9</option>
|
|
<option value="10">10</option>
|
|
<option value="11">11</option>
|
|
<option value="12">12</option>
|
|
<option value="13">13</option>
|
|
</select>
|
|
</div>
|
|
<div class="form-group reset-flow">
|
|
<button class="btn btn-primary btn-block" ui-turn-on="modalSubmitWiFi">Submit WiFi Changes</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- System Configuration -->
|
|
<div class="panel-group col-sm-12">
|
|
<div class="panel panel-default">
|
|
<div class="panel-heading">Configuration</div>
|
|
<div class="panel-body">
|
|
<div class="form-group reset-flow">
|
|
<label class="control-label col-xs-5">Mode S Code (Hex)</label>
|
|
<form name="modeForm" ng-submit="updatemodes()" novalidate>
|
|
<!-- type="number" not supported except on mobile -->
|
|
<!-- RegEx for validation: ^[A-Fa-f0-9]{6}$ -->
|
|
<input class="col-xs-7" type="string" required ng-model="OwnshipModeS"
|
|
placeholder="FAA HEX code" ng-blur="updatemodes()" />
|
|
</form>
|
|
</div>
|
|
<div class="form-group reset-flow">
|
|
<label class="control-label col-xs-5">Watch List</label>
|
|
<form name="watchForm" ng-submit="updatewatchlist()" novalidate>
|
|
<!-- type="number" not supported except on mobile -->
|
|
<input class="col-xs-7" type="string" required ng-model="WatchList"
|
|
placeholder="space-delimited identifiers" ng-blur="updatewatchlist()" />
|
|
</form>
|
|
</div>
|
|
<div class="form-group reset-flow">
|
|
<label class="control-label col-xs-5">PPM Correction</label>
|
|
<form name="ppmForm" ng-submit="updateppm()" novalidate>
|
|
<!-- type="number" not supported except on mobile -->
|
|
<input class="col-xs-7" type="number_format" required ng-model="PPM" placeholder="integer"
|
|
ng-blur="updateppm()" />
|
|
</form>
|
|
</div>
|
|
<div class="form-group reset-flow" ng-class="{ 'section_invisible': (!visible_serialout)}">
|
|
<label class="control-label col-xs-5">Serial Output Baudrate</label>
|
|
<form name="ppmForm" ng-submit="updateBaud()" novalidate>
|
|
<!-- type="number" not supported except on mobile -->
|
|
<input class="col-xs-7" type="number_format" required ng-model="Baud" placeholder="integer"
|
|
ng-blur="updateBaud()" />
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Developer Options -->
|
|
<div ng-show="DeveloperMode" class="panel-group col-sm-12">
|
|
<div class="panel panel-default">
|
|
<div class="panel-heading">Developer Options</div>
|
|
<div class="panel-body">
|
|
<div class="col-xs-12">
|
|
<div class="form-group reset-flow">
|
|
<label class="control-label col-xs-5">Static IPs</label>
|
|
<form name="staticipForm" ng-submit="updatestaticips()" novalidate>
|
|
<input class="col-xs-7" type="string" required ng-model="StaticIps" ng-list=" "
|
|
ng-trim="false" placeholder="space-delimited ip's to send network data"
|
|
ng-blur="updatestaticips()" />
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- End Left Col -->
|
|
<!-- Begin Right Col -->
|
|
<div class="col-sm-6">
|
|
<!-- Diagnostics Values -->
|
|
<div class="panel-group col-sm-12">
|
|
<div class="panel panel-default">
|
|
<div class="panel-heading">Diagnostics</div>
|
|
<div class="panel-body">
|
|
<div class="form-group">
|
|
<label class="control-label col-xs-7">Show Traffic Source in Callsign</label>
|
|
<div class="col-xs-5">
|
|
<ui-switch ng-model='DisplayTrafficSource' settings-change></ui-switch>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="control-label col-xs-7">Verbose Message Log</label>
|
|
<div class="col-xs-5">
|
|
<ui-switch ng-model='DEBUG' settings-change></ui-switch>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="control-label col-xs-7">Record Replay Logs</label>
|
|
<div class="col-xs-5">
|
|
<ui-switch ng-model='ReplayLog' settings-change></ui-switch>
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label class="control-label col-xs-7">Record AHRS Logs</label>
|
|
<div class="col-xs-5">
|
|
<ui-switch ng-model='AHRSLog' settings-change></ui-switch>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- AHRS Options -->
|
|
<div class="panel-group col-sm-12">
|
|
<div class="panel panel-default">
|
|
<div class="panel-heading">AHRS</div>
|
|
<div class="panel-body">
|
|
<div class="col-xs-12">
|
|
<span style="position:relative; overflow: hidden;">
|
|
<button class="btn btn-primary btn-block" ui-turn-on="modalCalibrateForward"
|
|
ng-disabled="!IMU_Sensor_Enabled">Set AHRS Sensor Orientation</button>
|
|
</span>
|
|
</div>
|
|
<div class="form-group reset-flow">
|
|
<div class="col-xs-12">
|
|
<button class="btn btn-primary btn-block" ui-turn-on="modalCalibrateGyros"
|
|
ng-disabled="!IMU_Sensor_Enabled">Calibrate Gyros</button>
|
|
</div>
|
|
</div>
|
|
<div class="form-group reset-flow">
|
|
<label class="control-label col-xs-3">G Limits</label>
|
|
<form name="GLimitForm" ng-submit="updateGLimits()" novalidate ng-disabled="!IMU_Sensor_Enabled">
|
|
<input class="col-xs-9" type="string" required ng-model="GLimits" ng-blur="updateGLimits()"
|
|
placeholder="Space-separated negative and positive G meter limits"/>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- App Commands -->
|
|
<div class="panel-group col-sm-12">
|
|
<div class="panel panel-default">
|
|
<div class="panel-heading">Commands</div>
|
|
<div class="panel-body">
|
|
<!-- Upload. Temporary. -->
|
|
<div class="col-xs-12">
|
|
<span ng-show="update_files == ''">
|
|
<span style="position:relative; overflow: hidden;">
|
|
<span class="fake-btn fake-btn-block">Click to select System Update file</span>
|
|
<input style="opacity:0.0; position: absolute; top: 0; right: 0;" class="col-xs-12" type="file" name="update_file"
|
|
onchange="angular.element(this).scope().setUploadFile(this.files)"/>
|
|
</span>
|
|
</span>
|
|
<span ng-hide="update_files == ''">
|
|
<button class="btn btn-block" onclick="angular.element(this).scope().uploadFile()">
|
|
Install {{update_files[0].name}}</button>
|
|
</span>
|
|
</div>
|
|
<div class="form-group reset-flow">
|
|
<div class="col-xs-12">
|
|
<button class="btn btn-primary btn-block" ui-turn-on="modalReboot">Reboot</button>
|
|
</div>
|
|
</div>
|
|
<div class="form-group reset-flow">
|
|
<div class="col-xs-12">
|
|
<button class="btn btn-primary btn-block"ui-turn-on="modalShutdown">Shutdown</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-12" ng-show="DeveloperMode" >
|
|
<div class="panel panel-default">
|
|
<div class="panel-heading">Raw Configuration</div>
|
|
<div class="panel-body">
|
|
<p>stratux.conf:</p>
|
|
<pre>{{rawSettings}}</pre>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- ############################################## -->
|
|
<!-- Modal popups -->
|
|
<!-- ############################################## -->
|
|
<!-- Messages Modal -->
|
|
<div class="col-sm-12">
|
|
<h3 ui-if="rebooting" ui-state="rebooting">Stratux is rebooting. You may need to reconnect WiFi once it reboots.</h3>
|
|
<h3 ui-if="shuttingdown" ui-state="shuttingdown">Stratux is shutting down. You may disconnect power.</h3>
|
|
<h3 ui-if="WiFiRestart" ui-state="WiFiRestart">Stratux WiFi is Restarting Services. You may need to reconnect WiFi
|
|
once services are restored.</h3>
|
|
</div>
|
|
|
|
<div ui-content-for="modals">
|
|
<!-- Reboot Config Modal -->
|
|
<div class="modal" ui-if="modalReboot" ui-state="modalReboot">
|
|
<div class="modal-overlay "></div>
|
|
<div class="vertical-alignment-helper center-block">
|
|
<div class="modal-dialog vertical-align-center">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button class="close" ui-turn-off="modalReboot"></button>
|
|
<h4 class="modal-title">Are you really sure?</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<p>Do you wish to reboot the Stratux?</p>
|
|
<p>Note that the system will reboot immediately and it will stop responding during the reboot</p>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<a ui-turn-off="modalReboot" class="btn btn-default">Cancel</a>
|
|
<a ng-click="postReboot()" ui-turn-off="modalReboot" ui-turn-on="rebooting"
|
|
class="btn btn-primary">Reboot</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Shutdown Modal -->
|
|
<div class="modal" ui-if="modalShutdown" ui-state="modalShutdown">
|
|
<div class="modal-overlay "></div>
|
|
<div class="vertical-alignment-helper center-block">
|
|
<div class="modal-dialog vertical-align-center">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button class="close" ui-turn-off="modalShutdown"></button>
|
|
<h4 class="modal-title">Are you really sure?</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<p>Do you wish to shutdown the Stratux?</p>
|
|
<p>Note that the system will shutdown immediately. Please disconnect the power after the shutdown.</p>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<a ui-turn-off="modalShutdown" class="btn btn-default">Cancel</a>
|
|
<a ng-click="postShutdown()" ui-turn-off="modalShutdown" ui-turn-on="shuttingdown"
|
|
class="btn btn-primary">Shutdown</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Calibrate Forward Modal -->
|
|
<div class="modal" ui-if="modalCalibrateForward" ui-state="modalCalibrateForward">
|
|
<div class="modal-overlay "></div>
|
|
<div class="vertical-alignment-helper center-block">
|
|
<div class="modal-dialog vertical-align-center">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button class="close" ui-turn-off="modalCalibrateForward"></button>
|
|
<h4 class="modal-title">Set AHRS Sensor Orientation: Forward Direction</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<p>Point the Stratux so that the end that will be pointing toward the
|
|
<strong>nose</strong> of the airplane is pointing toward the sky and press the
|
|
<strong>Set Forward Direction</strong> button.</p>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<a ui-turn-off="modalCalibrateForward" class="btn btn-default">Cancel</a>
|
|
<a ng-click="setOrientation('forward')" ui-turn-off="modalCalibrateForward"
|
|
ui-turn-on="modalCalibrateDone" class="btn btn-default btn-primary">Set Forward Direction</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Calibration Success Modal -->
|
|
<div class="modal" ui-if="modalCalibrateDone" ui-state="modalCalibrateDone">
|
|
<div class="modal-overlay "></div>
|
|
<div class="vertical-alignment-helper center-block">
|
|
<div class="modal-dialog vertical-align-center">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button class="close" ui-turn-off="modalCalibrateDone"></button>
|
|
<h4 class="modal-title">Set AHRS Sensor Orientation: Finished</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<p>The sensor orientation is set. These settings will be saved for future flights.
|
|
Place the Stratux in its in-flight orientation and keep it stationary for 5 seconds
|
|
after you press the <strong>Done</strong> button.</p>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<a ng-click="setOrientation('done')" ui-turn-off="modalCalibrateDone"
|
|
class="btn btn-default btn-primary">Done</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Calibration Failed Modal -->
|
|
<div class="modal" ui-if="modalCalibrateFailed" ui-state="modalCalibrateFailed">
|
|
<div class="modal-overlay "></div>
|
|
<div class="vertical-alignment-helper center-block">
|
|
<div class="modal-dialog vertical-align-center">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button class="close" ui-turn-off="modalCalibrateFailed"></button>
|
|
<h4 class="modal-title">Set AHRS Sensor Orientation: Failed!</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<p>There was an error: {{Orientation_Failure_Message}}</p>
|
|
<p><div id="orientationFailureMessage"></div></p>
|
|
<p>The orientation failed. Please try again.</p>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<a ui-turn-off="modalCalibrateFailed" class="btn btn-default btn-primary">OK</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Gyro Calibration Modal -->
|
|
<div class="modal" ui-if="modalCalibrateGyros" ui-state="modalCalibrateGyros">
|
|
<div class="modal-overlay "></div>
|
|
<div class="vertical-alignment-helper center-block">
|
|
<div class="modal-dialog vertical-align-center">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button class="close" ui-turn-off="modalCalibrateGyros"></button>
|
|
<h4 class="modal-title">Calibrate MPU Gyros</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<p>Press <b>Calibrate</b> and keep the Stratux as stationary as possible for the next second.
|
|
You should only do this in calm air as turbulence will throw off the calibrations.</p>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<a ui-turn-off="modalCalibrateGyros" class="btn btn-default">Cancel</a>
|
|
<a ng-click="calibrateGyros()" ui-turn-off="modalCalibrateGyros"
|
|
class="btn btn-default btn-primary">Calibrate</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- WiFi Submit Modal -->
|
|
<div class="modal" ui-if="modalSubmitWiFi" ui-state="modalSubmitWiFi">
|
|
<div class="modal-overlay "></div>
|
|
<div class="vertical-alignment-helper center-block">
|
|
<div class="modal-dialog vertical-align-center">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button class="close" ui-turn-off="modalSubmitWiFi"></button>
|
|
<h4 class="modal-title">Are you really sure?</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<p>Do you wish to submit the WiFi changes?</p>
|
|
<p>Note that the wireless services will reboot immediately and
|
|
it will stop responding during the reboot</p>
|
|
<p>You might have to reselect the new WiFi network if you made changes to the SSID or security.</p>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<a ui-turn-off="modalSubmitWiFi" ui-turn-on="modalCancelWiFi" class="btn btn-default">Cancel</a>
|
|
<a ng-click="updateWiFi()" ui-turn-off="modalSubmitWiFi" ui-turn-on="WiFiRestart"
|
|
class="btn btn-primary">Submit Changes</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- WiFi Success Modal -->
|
|
<div class="modal" ui-if="modalSuccessWiFi" ui-state="modalSuccessWiFi">
|
|
<div class="modal-overlay "></div>
|
|
<div class="vertical-alignment-helper center-block">
|
|
<div class="modal-dialog vertical-align-center">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button class="close" ui-turn-off="modalSuccessWiFi"></button>
|
|
<h4 class="modal-title">Success</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<p>I am not able to get these values to update after updateWiFi function but they are being
|
|
sent back to the server correctly.
|
|
Something about a $scope.$apply() function and a change outside of the digets.
|
|
I cannot figure this out<br />
|
|
https://stackoverflow.com/questions/30119538/angularjs-ng-bind-not-updating</p>
|
|
<p>Your WiFi settings were successful. </p>
|
|
<p>WiFi SSID: {{WiFiSSID}}</p>
|
|
<p>WiFi Security: {{WiFiSecurityEnabled}}</p>
|
|
<p>WiFi Passcode: {{WiFiPasscode}}</p>
|
|
<p>WiFi Channel: {{WiFiChannel}}</p>
|
|
<p>Your Stratux's WiFi services are now restarting to apply the new settings.
|
|
You might have to reconnect to your new WiFi SSID.</p>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<a ui-turn-off="modalSuccessWiFi" class="btn btn-default">Close</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- WiFi Error Modal -->
|
|
<div class="modal" ui-if="modalErrorWiFi" ui-state="modalErrorWiFi">
|
|
<div class="modal-overlay "></div>
|
|
<div class="vertical-alignment-helper center-block">
|
|
<div class="modal-dialog vertical-align-center">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button class="close" ui-turn-off="modalErrorWiFi"></button>
|
|
<h4 class="modal-title">Errors in your WiFi Settings</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div>{{WiFiErrors.WiFiSSID}}</div>
|
|
<div>{{WiFiErrors.WiFiPasscode}}</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<a ui-turn-off="modalErrorWiFi" ng-click="resetSettings()" class="btn btn-default">Close</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- WiFi Canceled Modal -->
|
|
<div class="modal" ui-if="modalCancelWiFi" ui-state="modalCancelWiFi">
|
|
<div class="modal-overlay "></div>
|
|
<div class="vertical-alignment-helper center-block">
|
|
<div class="modal-dialog vertical-align-center">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<button class="close" ui-turn-off="modalCancelWiFi"></button>
|
|
<h4 class="modal-title">WiFi Settings: Canceled</h4>
|
|
</div>
|
|
<div class="modal-body">
|
|
<p>WiFi Settings Canceled.</p>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<a ui-turn-off="modalCancelWiFi" ng-click="resetSettings()" class="btn btn-default btn-primary">OK</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|