1
0
Fork 0
mirror of https://github.com/iNavFlight/inav-configurator.git synced 2025-07-17 05:15:20 +03:00

Merge branch 'development' into thenickdude-private-development

Conflicts:
	js/data_storage.js
	main.css
	tabs/dataflash.css
	tabs/dataflash.html
This commit is contained in:
Dominic Clifton 2016-01-07 20:58:29 +01:00
commit 4ccd0bed3e
47 changed files with 1136 additions and 957 deletions

View file

@ -467,16 +467,25 @@
"message": "<strong>Note:</strong> Remember to configure a Serial Port (via Ports tab) and choose a Serial Receiver Provider when using RX_SERIAL feature."
},
"configurationBoardAlignment": {
"message": "Board Alignment"
"message": "Board and Sensor Alignment"
},
"configurationBoardAlignmentRoll": {
"message": "Roll Adjustment [deg]"
"message": "Roll Degrees"
},
"configurationBoardAlignmentPitch": {
"message": "Pitch Adjustment [deg]"
"message": "Pitch Degrees"
},
"configurationBoardAlignmentYaw": {
"message": "Yaw Adjustment [deg]"
"message": "Yaw Degrees"
},
"configurationSensorAlignmentGyro": {
"message": "GYRO Alignment"
},
"configurationSensorAlignmentAcc": {
"message": "ACCEL Alignment"
},
"configurationSensorAlignmentMag": {
"message": "MAG Alignment"
},
"configurationAccelTrims": {
"message": "Accelerometer Trim"
@ -697,6 +706,18 @@
"receiverRcRate": {
"message": "RC Rate"
},
"receiverDeadband": {
"message": "RC Deadband"
},
"receiverHelpDeadband": {
"message": "These are values (in us) by how much RC input can be different before it's considered valid. For transmitters with jitter on outputs, this value can be increased if rc inputs twitch while idle."
},
"receiverHelpYawDeadband": {
"message": "These are values (in us) by how much RC input can be different before it's considered valid. For transmitters with jitter on outputs, this value can be increased if rc inputs twitch while idle. <strong>This setting is for Yaw only.</strong>"
},
"receiverYawDeadband": {
"message": "Yaw Deadband"
},
"receiverRcExpo": {
"message": "RC Expo"
},
@ -861,6 +882,60 @@
"adjustmentsFunction20": {
"message": "Roll D Adjustment"
},
"adjustmentsFunction21": {
"message": "Alt P Adjustment"
},
"adjustmentsFunction22": {
"message": "Alt I Adjustment"
},
"adjustmentsFunction23": {
"message": "Alt D Adjustment"
},
"adjustmentsFunction24": {
"message": "Vel P Adjustment"
},
"adjustmentsFunction25": {
"message": "Vel I Adjustment"
},
"adjustmentsFunction26": {
"message": "Vel D Adjustment"
},
"adjustmentsFunction27": {
"message": "MAG P Adjustment"
},
"adjustmentsFunction28": {
"message": "Pos P Adjustment"
},
"adjustmentsFunction29": {
"message": "Pos I Adjustment"
},
"adjustmentsFunction30": {
"message": "PosR P Adjustment"
},
"adjustmentsFunction31": {
"message": "PosR I Adjustment"
},
"adjustmentsFunction32": {
"message": "PosR D Adjustment"
},
"adjustmentsFunction33": {
"message": "NavR P Adjustment"
},
"adjustmentsFunction34": {
"message": "NavR I Adjustment"
},
"adjustmentsFunction35": {
"message": "NavR D Adjustment"
},
"adjustmentsFunction36": {
"message": "Level P Adjustment"
},
"adjustmentsFunction37": {
"message": "Level I Adjustment"
},
"adjustmentsFunction38": {
"message": "Level D Adjustment"
},
"adjustmentsSave": {
"message": "Save"
},
@ -870,7 +945,7 @@
"servosFirmwareUpgradeRequired": {
"message": "Servos requires firmware &gt;= 1.10.0."
"message": "Servos requires firmware &gt;= 1.10.0. and target support."
},
"servosChangeDirection": {
"message": "Change Direction in TX To Match"
@ -965,7 +1040,7 @@
"message": "<strong>Motor Test Mode Notice:</strong><br />Moving the sliders will cause the motors to <strong>spin up</strong>.<br />In order to prevent injury <strong style=\"color: red\">remove ALL propellers</strong> before using this feature.<br />"
},
"motorsEnableControl": {
"message": "I understand the risks, propellors are removed - Enable motor control."
"message": "I understand the risks, propellers are removed - Enable motor control."
},
"sensorsInfo": {
@ -1219,7 +1294,7 @@
"message": "<strong>Recovery / Lost communication<strong>"
},
"firmwareFlasherRecoveryText": {
"message": "If you have lost comminication with your board follow these steps to restore communication: <ul><li>Power off</li><li>Enable 'No reboot sequence', enable 'Full chip erase'.</li><li>Jumper the BOOT pins or hold BOOT button.</li><li>Power on (activity LED will NOT flash if done correctly).</li><li>Release BOOT button if your FC has one.</li><li>Flash with correct firmware (using manual baud rate if specified in your FC's manual).</li><li>Power off.</li><li>Remove BOOT jumper.</li><li>Power on (activity LED should flash).</li><li>Connect normally.</li></ul>"
"message": "If you have lost communication with your board follow these steps to restore communication: <ul><li>Power off</li><li>Enable 'No reboot sequence', enable 'Full chip erase'.</li><li>Jumper the BOOT pins or hold BOOT button.</li><li>Power on (activity LED will NOT flash if done correctly).</li><li>Release BOOT button if your FC has one.</li><li>Flash with correct firmware (using manual baud rate if specified in your FC's manual).</li><li>Power off.</li><li>Remove BOOT jumper.</li><li>Power on (activity LED should flash).</li><li>Connect normally.</li></ul>"
},
"firmwareFlasherButtonLeave": {
"message": "Leave Firmware Flasher"
@ -1335,7 +1410,9 @@
"pidTuningLevelHelp": {
"message": "The values below change the behaviour of the ANGLE and HORIZON flight modes. Different PID controllers handle the LEVEL values differently. Please check the documentation."
},
"configHelp2": {
"message": "Arbitrary board rotation in degrees, to allow mounting it sideways / upside down / rotated etc. When running external sensors, use the sensor alignments (Gyro, Acc, Mag) to define sensor position independent from board orientation. "
},
"failsafeFeaturesHelpOld": {
"message": "Failsafe configuration has changed considerably. Use Cleanflight <strong>v1.12.0+</strong> to enable the improved configuration panel."
},
@ -1369,6 +1446,12 @@
"failsafeChannelFallbackSettingsHelp": {
"message": "These settings are applied to invalid individual AUX channels or to all channels when entering stage 1. <strong>Note:</strong> values are saved in steps of 25usec, so small changes disappear"
},
"failsafeChannelFallbackSettingsAuto": {
"message": "<strong>Auto</strong> means Roll, Pitch and Yaw to center and Throttle low. <strong>Hold</strong> means maintain the last good value received"
},
"failsafeChannelFallbackSettingsHold": {
"message": "<strong>Hold</strong> means maintain the last good value received. <strong>Set</strong> means the value given here will be used"
},
"failsafeStageTwoSettingsTitle": {
"message": "Stage 2 - Settings"
},

View file

@ -111,13 +111,6 @@
z-index: 3;
}
/* Dirty fix for Firefox adding padding where it shouldn't. */
@-moz-document url-prefix() {
.dropdown-select {
padding-left: 6px;
}
}
.dropdown-dark {
background: #636363; /* NEW2 */
background: #3e403f; /* NEW */

View file

@ -24,7 +24,6 @@
font-style: normal;
}
@font-face {
font-family: 'open_sanslight';
src: url('opensans-light-webfont.eot');
@ -37,7 +36,6 @@
font-style: normal;
}
@font-face {
font-family: 'open_sansitalic';
src: url('opensans-italic-webfont.eot');
@ -50,7 +48,6 @@
font-style: normal;
}
@font-face {
font-family: 'open_sansbold_italic';
src: url('opensans-bolditalic-webfont.eot');
@ -63,7 +60,6 @@
font-style: normal;
}
@font-face {
font-family: 'open_sansbold';
src: url('opensans-bold-webfont.eot');
@ -76,7 +72,6 @@
font-style: normal;
}
/* Fonts shouldn't be transformed by browser.
Using specific fonts for bold, italic and bold_italic instead.*/
@ -105,14 +100,12 @@ em strong {
font-weight: normal;
}
strong {
font-family: 'open_sansbold';
font-weight: normal;
font-style: normal;
}
b {
font-family: 'open_sansbold';
font-weight: normal;

View file

@ -1,129 +0,0 @@
/*Notes about grid:
Columns: 12
Grid Width: 825px
Column Width: 55px
Gutter Width: 15px
-------------------------------*/
.section {margin-bottom: 18px;
}
.section:after {content: ".";display: block;height: 0;clear: both;visibility: hidden;}
.section {*zoom: 1;}
.section .firstcolumn,
.section .firstcol {margin-left: 0;}
/* Border on left hand side of a column. */
.border {
padding-left: 7px;
margin-left: 7px;
border-left: 1px solid #eee;
}
/* Border with more whitespace, spans one column. */
.colborder {
padding-left: 42px;
margin-left: 42px;
border-left: 1px solid #eee;
}
/* The Grid Classes */
.grid1, .grid1_2cols, .grid1_3cols, .grid1_4cols, .grid2, .grid2_3cols, .grid2_4cols, .grid3, .grid3_2cols, .grid3_4cols, .grid4, .grid4_3cols, .grid5, .grid5_2cols, .grid5_3cols, .grid5_4cols, .grid6, .grid6_4cols, .grid7, .grid7_2cols, .grid7_3cols, .grid7_4cols, .grid8, .grid8_3cols, .grid9, .grid9_2cols, .grid9_4cols, .grid10, .grid10_3cols, .grid10_4cols, .grid11, .grid11_2cols, .grid11_3cols, .grid11_4cols, .grid12
{margin-left: 15px;float: left;display: inline; overflow: hidden;}
.width1, .grid1, .span-1 {width: 55px;}
.width1_2cols,.grid1_2cols {width: 20px;}
.width1_3cols,.grid1_3cols {width: 8px;}
.width1_4cols,.grid1_4cols {width: 2px;}
.input_width1 {width: 49px;}
.width2, .grid2, .span-2 {width: 125px;}
.width2_3cols,.grid2_3cols {width: 31px;}
.width2_4cols,.grid2_4cols {width: 20px;}
.input_width2 {width: 119px;}
.width3, .grid3, .span-3 {width: 195px;}
.width3_2cols,.grid3_2cols {width: 90px;}
.width3_4cols,.grid3_4cols {width: 37px;}
.input_width3 {width: 189px;}
.width4, .grid4, .span-4 {width: 265px;}
.width4_3cols,.grid4_3cols {width: 78px;}
.input_width4 {width: 259px;}
.width5, .grid5, .span-5 {width: 335px;}
.width5_2cols,.grid5_2cols {width: 160px;}
.width5_3cols,.grid5_3cols {width: 101px;}
.width5_4cols,.grid5_4cols {width: 72px;}
.input_width5 {width: 329px;}
.width6, .grid6, .span-6 {width: 405px;}
.width6_4cols,.grid6_4cols {width: 90px;}
.input_width6 {width: 399px;}
.width7, .grid7, .span-7 {width: 475px;}
.width7_2cols,.grid7_2cols {width: 230px;}
.width7_3cols,.grid7_3cols {width: 148px;}
.width7_4cols,.grid7_4cols {width: 107px;}
.input_width7 {width: 469px;}
.width8, .grid8, .span-8 {width: 545px;}
.width8_3cols,.grid8_3cols {width: 171px;}
.input_width8 {width: 539px;}
.width9, .grid9, .span-9 {width: 615px;}
.width9_2cols,.grid9_2cols {width: 300px;}
.width9_4cols,.grid9_4cols {width: 142px;}
.input_width9 {width: 609px;}
.width10, .grid10, .span-10 {width: 685px;}
.width10_3cols,.grid10_3cols {width: 218px;}
.width10_4cols,.grid10_4cols {width: 160px;}
.input_width10 {width: 679px;}
.width11, .grid11, .span-11 {width: 755px;}
.width11_2cols,.grid11_2cols {width: 370px;}
.width11_3cols,.grid11_3cols {width: 241px;}
.width11_4cols,.grid11_4cols {width: 177px;}
.input_width11 {width: 749px;}
.width12, .grid12, .span-12 {width: 825px;}
.input_width12 {width: 819px;}
/* Subdivided grid spaces */
.emptycols_left1, .prepend-1 {padding-left: 70px;}
.emptycols_right1, .append-1 {padding-right: 70px;}
.emptycols_left2, .prepend-2 {padding-left: 140px;}
.emptycols_right2, .append-2 {padding-right: 140px;}
.emptycols_left3, .prepend-3 {padding-left: 210px;}
.emptycols_right3, .append-3 {padding-right: 210px;}
.emptycols_left4, .prepend-4 {padding-left: 280px;}
.emptycols_right4, .append-4 {padding-right: 280px;}
.emptycols_left5, .prepend-5 {padding-left: 350px;}
.emptycols_right5, .append-5 {padding-right: 350px;}
.emptycols_left6, .prepend-6 {padding-left: 420px;}
.emptycols_right6, .append-6 {padding-right: 420px;}
.emptycols_left7, .prepend-7 {padding-left: 490px;}
.emptycols_right7, .append-7 {padding-right: 490px;}
.emptycols_left8, .prepend-8 {padding-left: 560px;}
.emptycols_right8, .append-8 {padding-right: 560px;}
.emptycols_left9, .prepend-9 {padding-left: 630px;}
.emptycols_right9, .append-9 {padding-right: 630px;}
.emptycols_left10, .prepend-10 {padding-left: 700px;}
.emptycols_right10, .append-10 {padding-right: 700px;}
.emptycols_left11, .prepend-11 {padding-left: 770px;}
.emptycols_right11, .append-11 {padding-right: 770px;}
.pull-1 {margin-left: -70px;}
.push-1 {margin-right: -70px;margin-left: 18px;float: right;}
.pull-2 {margin-left: -140px;}
.push-2 {margin-right: -140px;margin-left: 18px;float: right;}
.pull-3 {margin-left: -210px;}
.push-3 {margin-right: -210px;margin-left: 18px;float: right;}
.pull-4 {margin-left: -280px;}
.push-4 {margin-right: -280px;margin-left: 18px;float: right;}

View file

@ -1,396 +0,0 @@
@import url('grid_12-825-55-15.css');
/*
CSS Reset by Eric Meyer - Released under Public Domain
http://meyerweb.com/eric/tools/css/reset/
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center, dl, dt, dd, ol, ul, li,
fieldset, form, label, legend, table,
caption, tbody, tfoot, thead, tr, th, td
{margin: 0;padding: 0;border: 0;outline: 0;
font-size: 100%;vertical-align: baseline;
background: transparent;}
body {line-height: 1;}
ol, ul {list-style: none;}
blockquote, q {quotes: none;}
blockquote:before, blockquote:after,
q:before, q:after {content: ''; content: none;}
:focus {outline: 0;}
ins {text-decoration: none;}
del {text-decoration: line-through;}
table {border-collapse: collapse;border-spacing: 0;}
body {
color: #000;
background-color: #dcdcdc;
}
a {
text-decoration: none;
color: #1883ba;
}
h1{
font-size: 32px;
font-weight: normal;
font-style: normal;
margin-bottom: 18px;
}
h2{
font-size: 18px;
}
#container {
width: 865px;
margin: 0px auto;
}
#header {
padding: 20px;
font-size: 36px;
background-color: #000;
color: #fff;
}
#header span {
color: #666;
}
#main_content {
background-color: #fff;
padding: 60px 20px 20px;
}
#footer p {
margin: 0;
padding-top: 10px;
padding-bottom: 50px;
color: #333;
font: 10px Arial, sans-serif;
}
.tabs {
width: 100%;
height: 31px;
background-color: #444;
}
.tabs li {
float: left;
margin: 0;
overflow: hidden;
background-color: #444;
}
.tabs li a {
display: block;
color: #fff;
text-decoration: none;
font: bold 11px/11px 'Arial';
text-transform: uppercase;
padding: 10px 15px;
border-right: 1px solid #fff;
}
.tabs li a:hover {
background-color: #00b3ff;
}
.tabs li.active a {
color: #000;
background-color: #fff;
}
div.huge {
font-size: 300px;
line-height: 1em;
padding: 0;
letter-spacing: -.02em;
overflow: hidden;
}
div.glyph_range {
font-size: 72px;
line-height: 1.1em;
}
.size10{ font-size: 10px; }
.size11{ font-size: 11px; }
.size12{ font-size: 12px; }
.size13{ font-size: 13px; }
.size14{ font-size: 14px; }
.size16{ font-size: 16px; }
.size18{ font-size: 18px; }
.size20{ font-size: 20px; }
.size24{ font-size: 24px; }
.size30{ font-size: 30px; }
.size36{ font-size: 36px; }
.size48{ font-size: 48px; }
.size60{ font-size: 60px; }
.size72{ font-size: 72px; }
.size90{ font-size: 90px; }
.psample_row1 { height: 120px;}
.psample_row1 { height: 120px;}
.psample_row2 { height: 160px;}
.psample_row3 { height: 160px;}
.psample_row4 { height: 160px;}
.psample {
overflow: hidden;
position: relative;
}
.psample p {
line-height: 1.3em;
display: block;
overflow: hidden;
margin: 0;
}
.psample span {
margin-right: .5em;
}
.white_blend {
width: 100%;
height: 61px;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVkAAAA9CAYAAAAH4BojAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAO1JREFUeNrs3TsKgFAMRUE/eer+NxztxMYuEWQG3ECKwwUF58ycAKixOAGAyAKILAAiCyCyACILgMgCiCyAyAIgsgAiCyCyAIgsgMgCiCwAIgsgsgAiC4DIAogsACIL0CWuZ3UGgLrIhjMA1EV2OAOAJQtgyQLwjOzmDAAiCyCyAIgsQFtkd2cAEFkAkQVAZAHaIns4A4AlC2DJAiCyACILILIAiCzAV5H1dQGAJQsgsgCILIDIAvwisl58AViyAJYsACILILIAIgvAe2T9EhxAZAFEFgCRBeiL7HAGgLrIhjMAWLIAliwAt1OAAQDwygTBulLIlQAAAABJRU5ErkJggg==);
position: absolute;
bottom: 0;
}
.black_blend {
width: 100%;
height: 61px;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAVkAAAA9CAYAAAAH4BojAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAPJJREFUeNrs3TEKhTAQRVGjibr/9QoxhY2N3Ywo50A28IrLwP9g6b1PAMSYTQAgsgAiC4DIAogsgMgCILIAIgsgsgCILIDIAogsACILILIAIguAyAKILIDIAiCyACILgMgCZCnjLWYAiFGvB0BQZJsZAFyyAC5ZAO6RXc0AILIAIguAyAKkRXYzA4DIAogsACILkBbZ3QwALlkAlywAIgsgsgAiC4DIArwVWf8uAHDJAogsACILILIAv4isH74AXLIALlkARBZAZAFEFoDnyPokOIDIAogsACILkBfZZgaAuMhWMwC4ZAE+p4x3mAEgxinAAJ+XBbPWGkwAAAAAAElFTkSuQmCC);
position: absolute;
bottom: 0;
}
.fullreverse {
background: #000 !important;
color: #fff !important;
margin-left: -20px;
padding-left: 20px;
margin-right: -20px;
padding-right: 20px;
padding: 20px;
margin-bottom:0;
}
.sample_table td {
padding-top: 3px;
padding-bottom:5px;
padding-left: 5px;
vertical-align: middle;
line-height: 1.2em;
}
.sample_table td:first-child {
background-color: #eee;
text-align: right;
padding-right: 5px;
padding-left: 0;
padding: 5px;
font: 11px/12px "Courier New", Courier, mono;
}
code {
white-space: pre;
background-color: #eee;
display: block;
padding: 10px;
margin-bottom: 18px;
overflow: auto;
}
.bottom,.last {margin-bottom:0 !important; padding-bottom:0 !important;}
.box {
padding: 18px;
margin-bottom: 18px;
background: #eee;
}
.reverse,.reversed { background: #000 !important;color: #fff !important; border: none !important;}
#bodycomparison {
position: relative;
overflow: hidden;
font-size: 72px;
height: 90px;
white-space: nowrap;
}
#bodycomparison div{
font-size: 72px;
line-height: 90px;
display: inline;
margin: 0 15px 0 0;
padding: 0;
}
#bodycomparison div span{
font: 10px Arial;
position: absolute;
left: 0;
}
#xheight {
float: none;
position: absolute;
color: #d9f3ff;
font-size: 72px;
line-height: 90px;
}
.fontbody {
position: relative;
}
.arialbody{
font-family: Arial;
position: relative;
}
.verdanabody{
font-family: Verdana;
position: relative;
}
.georgiabody{
font-family: Georgia;
position: relative;
}
/* @group Layout page
*/
#layout h1 {
font-size: 36px;
line-height: 42px;
font-weight: normal;
font-style: normal;
}
#layout h2 {
font-size: 24px;
line-height: 23px;
font-weight: normal;
font-style: normal;
}
#layout h3 {
font-size: 22px;
line-height: 1.4em;
margin-top: 1em;
font-weight: normal;
font-style: normal;
}
#layout p.byline {
font-size: 12px;
margin-top: 18px;
line-height: 12px;
margin-bottom: 0;
}
#layout p {
font-size: 14px;
line-height: 21px;
margin-bottom: .5em;
}
#layout p.large{
font-size: 18px;
line-height: 26px;
}
#layout .sidebar p{
font-size: 12px;
line-height: 1.4em;
}
#layout p.caption {
font-size: 10px;
margin-top: -16px;
margin-bottom: 18px;
}
/* @end */
/* @group Glyphs */
#glyph_chart div{
background-color: #d9f3ff;
color: black;
float: left;
font-size: 36px;
height: 1.2em;
line-height: 1.2em;
margin-bottom: 1px;
margin-right: 1px;
text-align: center;
width: 1.2em;
position: relative;
padding: .6em .2em .2em;
}
#glyph_chart div p {
position: absolute;
left: 0;
top: 0;
display: block;
text-align: center;
font: bold 9px Arial, sans-serif;
background-color: #3a768f;
width: 100%;
color: #fff;
padding: 2px 0;
}
#glyphs h1 {
font-family: Arial, sans-serif;
}
/* @end */
/* @group Installing */
#installing {
font: 13px Arial, sans-serif;
}
#installing p,
#glyphs p{
line-height: 1.2em;
margin-bottom: 18px;
font: 13px Arial, sans-serif;
}
#installing h3{
font-size: 15px;
margin-top: 18px;
}
/* @end */
#rendering h1 {
font-family: Arial, sans-serif;
}
.render_table td {
font: 11px "Courier New", Courier, mono;
vertical-align: middle;
}

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 85 85" style="enable-background:new 0 0 85 85;" xml:space="preserve">
<style type="text/css">
.st0{fill:#707173;}
.st1{fill:#9C9E9F;}
</style>
<path class="st0" d="M35.8,82h21.4c9.4-6.7,16-22.1,16-39.9C73.2,24.8,67,9.8,58,2.8H35.6c9,7,15.2,22,15.2,39.3
c0,17.5-6.4,32.6-15.5,39.5C35.4,81.8,35.6,81.9,35.8,82z"/>
<g>
<path class="st1" d="M39.7,37.1c1.1-15.2,6.9-27.9,15-34.3H32.3c-8.1,6.3-14,19.1-15,34.3H39.7z"/>
<path class="st1" d="M42.4,61.6H19.9c2.8,9.1,7.5,16.3,13.2,20.4h21.4c0.2-0.1,0.4-0.2,0.5-0.4C49.6,77.5,45.1,70.4,42.4,61.6z"/>
</g>
<polygon class="st1" points="12.5,28.9 29.8,58.3 47.7,28.7 "/>
</svg>

After

Width:  |  Height:  |  Size: 911 B

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 85 85" style="enable-background:new 0 0 85 85;" xml:space="preserve">
<style type="text/css">
.st0{fill:#707173;}
.st1{fill:#9C9E9F;}
</style>
<g>
<path class="st0" d="M82.4,48.7V26.9C75.6,17.3,60,10.6,41.9,10.6C24.3,10.6,9.1,16.9,2,26.1v22.8c7.1-9.2,22.3-15.5,39.9-15.5
c17.8,0,33.1,6.5,40.1,15.8C82.2,49,82.3,48.8,82.4,48.7z"/>
<g>
<path class="st1" d="M61.7,64.8c9.2-2.9,16.6-7.6,20.7-13.4V29.7c-0.1-0.2-0.2-0.4-0.4-0.5c-4.2,5.6-11.4,10.1-20.3,12.9V64.8z"/>
<path class="st1" d="M36.8,67.4V44.6C21.4,43.5,8.4,37.6,2,29.3v22.9C8.4,60.4,21.4,66.4,36.8,67.4z"/>
</g>
<polygon class="st1" points="28.4,72.3 58.3,54.8 28.3,36.6 "/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 948 B

View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 85 85" style="enable-background:new 0 0 85 85;" xml:space="preserve">
<style type="text/css">
.st0{fill:#707173;}
</style>
<path class="st0" d="M44.8,5.1C25,5.1,8.7,20.6,7.5,40.1h14.4c1.2-11.6,11-20.7,22.9-20.7c12.7,0,23.1,10.3,23.1,23.1
S57.5,65.5,44.8,65.5c-5,0-9.6-1.6-13.4-4.3v0l-11.3,9.2c6.6,5.8,15.2,9.4,24.7,9.4c20.6,0,37.4-16.8,37.4-37.4S65.4,5.1,44.8,5.1z"
/>
<polygon class="st0" points="1.7,31 12.8,58.2 30.9,35.1 "/>
</svg>

After

Width:  |  Height:  |  Size: 726 B

View file

@ -12,19 +12,6 @@ function configuration_backup(callback) {
'profiles': [],
};
MSP.send_message(MSP_codes.MSP_STATUS, false, false, function () {
activeProfile = CONFIG.profile;
select_profile();
});
function select_profile() {
if (activeProfile > 0) {
MSP.send_message(MSP_codes.MSP_SELECT_SETTING, [0], false, fetch_specific_data);
} else {
fetch_specific_data();
}
}
var profileSpecificData = [
MSP_codes.MSP_PID_CONTROLLER,
MSP_codes.MSP_PID,
@ -41,10 +28,26 @@ function configuration_backup(callback) {
} else {
profileSpecificData.push(MSP_codes.MSP_SERVO_MIX_RULES);
}
if (semver.gte(CONFIG.apiVersion, "1.15.0")) {
profileSpecificData.push(MSP_codes.MSP_RC_DEADBAND);
}
}
update_profile_specific_data_list();
MSP.send_message(MSP_codes.MSP_STATUS, false, false, function () {
activeProfile = CONFIG.profile;
select_profile();
});
function select_profile() {
if (activeProfile > 0) {
MSP.send_message(MSP_codes.MSP_SELECT_SETTING, [0], false, fetch_specific_data);
} else {
fetch_specific_data();
}
}
function fetch_specific_data() {
var fetchingProfile = 0,
codeKey = 0;
@ -68,6 +71,9 @@ function configuration_backup(callback) {
'AdjustmentRanges': jQuery.extend(true, [], ADJUSTMENT_RANGES)
});
if (semver.gte(CONFIG.apiVersion, "1.15.0")) {
configuration.profiles[fetchingProfile].RCdeadband = jQuery.extend(true, {}, RC_deadband);
}
codeKey = 0;
fetchingProfile++;
@ -100,6 +106,7 @@ function configuration_backup(callback) {
uniqueData.push(MSP_codes.MSP_3D);
}
if (semver.gte(CONFIG.apiVersion, "1.15.0")) {
uniqueData.push(MSP_codes.MSP_SENSOR_ALIGNMENT);
uniqueData.push(MSP_codes.MSP_RX_CONFIG);
uniqueData.push(MSP_codes.MSP_FAILSAFE_CONFIG);
uniqueData.push(MSP_codes.MSP_RXFAIL_CONFIG);
@ -132,6 +139,7 @@ function configuration_backup(callback) {
configuration._3D = jQuery.extend(true, {}, _3D);
}
if (semver.gte(CONFIG.apiVersion, "1.15.0")) {
configuration.SENSOR_ALIGNMENT = jQuery.extend(true, {}, SENSOR_ALIGNMENT);
configuration.RX_CONFIG = jQuery.extend(true, {}, RX_CONFIG);
configuration.FAILSAFE_CONFIG = jQuery.extend(true, {}, FAILSAFE_CONFIG);
configuration.RXFAIL_CONFIG = jQuery.extend(true, [], RXFAIL_CONFIG);
@ -217,6 +225,7 @@ function configuration_backup(callback) {
});
});
}
}
function configuration_restore(callback) {
@ -299,6 +308,7 @@ function configuration_restore(callback) {
return semver.gte(generated, required);
}
function migrate(configuration) {
var appliedMigrationsCount = 0;
var migratedVersion = configuration.generatedBy;
@ -517,7 +527,28 @@ function configuration_restore(callback) {
appliedMigrationsCount++;
}
if (compareVersions(migratedVersion, '0.66.0') && !compareVersions(configuration.apiVersion, '1.15.0')) {
// api 1.15 exposes RCdeadband and sensor alignment
for (var profileIndex = 0; profileIndex < configuration.profiles.length; profileIndex++) {
if (configuration.profiles[profileIndex].RCdeadband == undefined) {
configuration.profiles[profileIndex].RCdeadband = {
deadband: 0,
yaw_deadband: 0,
alt_hold_deadband: 40,
};
}
}
if (configuration.SENSOR_ALIGNMENT == undefined) {
configuration.SENSOR_ALIGNMENT = {
align_gyro: 0,
align_acc: 0,
align_mag: 0
};
}
// api 1.15 exposes RX_CONFIG, FAILSAFE_CONFIG and RXFAIL_CONFIG configuration
if (configuration.RX_CONFIG == undefined) {
@ -566,7 +597,6 @@ function configuration_restore(callback) {
if (appliedMigrationsCount > 0) {
GUI.log(chrome.i18n.getMessage('configMigrationSuccessful', [appliedMigrationsCount]));
}
return true;
}
@ -582,6 +612,10 @@ function configuration_restore(callback) {
MSP_codes.MSP_SET_ACC_TRIM
];
if (semver.gte(CONFIG.apiVersion, "1.15.0")) {
profileSpecificData.push(MSP_codes.MSP_SET_RC_DEADBAND);
}
MSP.send_message(MSP_codes.MSP_STATUS, false, false, function () {
activeProfile = CONFIG.profile;
select_profile();
@ -608,6 +642,7 @@ function configuration_restore(callback) {
SERVO_RULES = configuration.profiles[profile].ServoRules;
MODE_RANGES = configuration.profiles[profile].ModeRanges;
ADJUSTMENT_RANGES = configuration.profiles[profile].AdjustmentRanges;
RC_deadband = configuration.profiles[profile].RCdeadband;
}
function upload_using_specific_commands() {
@ -674,6 +709,7 @@ function configuration_restore(callback) {
uniqueData.push(MSP_codes.MSP_SET_3D);
}
if (semver.gte(CONFIG.apiVersion, "1.15.0")) {
uniqueData.push(MSP_codes.MSP_SET_SENSOR_ALIGNMENT);
uniqueData.push(MSP_codes.MSP_SET_RX_CONFIG);
uniqueData.push(MSP_codes.MSP_SET_FAILSAFE_CONFIG);
}
@ -688,6 +724,7 @@ function configuration_restore(callback) {
ARMING_CONFIG = configuration.ARMING_CONFIG;
FC_CONFIG = configuration.FC_CONFIG;
_3D = configuration._3D;
SENSOR_ALIGNMENT = configuration.SENSOR_ALIGNMENT;
RX_CONFIG = configuration.RX_CONFIG;
FAILSAFE_CONFIG = configuration.FAILSAFE_CONFIG;
RXFAIL_CONFIG = configuration.RXFAIL_CONFIG;

View file

@ -195,6 +195,18 @@ var BLACKBOX = {
blackboxRateDenom: 1
};
var RC_deadband = {
deadband: 0,
yaw_deadband: 0,
alt_hold_deadband: 0
};
var SENSOR_ALIGNMENT = {
align_gyro: 0,
align_acc: 0,
align_mag: 0
};
var RX_CONFIG = {
serialrx_provider: 0,
maxcheck: 0,

View file

@ -288,7 +288,6 @@ GUI_control.prototype.content_ready = function (callback) {
$('.cf_tip').each(function() {
$(this).jBox('Tooltip', {
content: $(this).children('.cf_tooltiptext'),
delayOpen: 100,
delayClose: 100,
position: {

View file

@ -62,6 +62,8 @@ var MSP_codes = {
MSP_BOXIDS: 119,
MSP_SERVO_CONFIGURATIONS: 120,
MSP_3D: 124,
MSP_RC_DEADBAND: 125,
MSP_SENSOR_ALIGNMENT: 126,
MSP_SET_RAW_RC: 200,
MSP_SET_RAW_GPS: 201,
@ -78,6 +80,9 @@ var MSP_codes = {
MSP_SET_SERVO_CONFIGURATION: 212,
MSP_SET_MOTOR: 214,
MSP_SET_3D: 217,
MSP_SET_RC_DEADBAND: 218,
MSP_SET_RESET_CURR_PID: 219,
MSP_SET_SENSOR_ALIGNMENT: 220,
// MSP_BIND: 240,
@ -523,6 +528,18 @@ var MSP = {
}
}
break;
case MSP_codes.MSP_RC_DEADBAND:
var offset = 0;
RC_deadband.deadband = data.getUint8(offset++, 1);
RC_deadband.yaw_deadband = data.getUint8(offset++, 1);
RC_deadband.alt_hold_deadband = data.getUint8(offset++, 1);
break;
case MSP_codes.MSP_SENSOR_ALIGNMENT:
var offset = 0;
SENSOR_ALIGNMENT.align_gyro = data.getUint8(offset++, 1);
SENSOR_ALIGNMENT.align_acc = data.getUint8(offset++, 1);
SENSOR_ALIGNMENT.align_mag = data.getUint8(offset++, 1);
break;
case MSP_codes.MSP_SET_RAW_RC:
break;
case MSP_codes.MSP_SET_RAW_GPS:
@ -934,6 +951,18 @@ var MSP = {
case MSP_codes.MSP_SET_ARMING_CONFIG:
console.log('Arming config saved');
break;
case MSP_codes.MSP_SET_RESET_CURR_PID:
console.log('Current PID profile reset');
break;
case MSP_codes.MSP_SET_3D:
console.log('3D settings saved');
break;
case MSP_codes.MSP_SET_RC_DEADBAND:
console.log('Rc controls settings saved');
break;
case MSP_codes.MSP_SET_SENSOR_ALIGNMENT:
console.log('Sensor alignment saved');
break;
case MSP_codes.MSP_SET_RX_CONFIG:
console.log('Rx config saved');
break;
@ -1276,6 +1305,18 @@ MSP.crunch = function (code) {
buffer.push(highByte(_3D.deadband3d_throttle));
break;
case MSP_codes.MSP_SET_RC_DEADBAND:
buffer.push(RC_deadband.deadband);
buffer.push(RC_deadband.yaw_deadband);
buffer.push(RC_deadband.alt_hold_deadband);
break;
case MSP_codes.MSP_SET_SENSOR_ALIGNMENT:
buffer.push(SENSOR_ALIGNMENT.align_gyro);
buffer.push(SENSOR_ALIGNMENT.align_acc);
buffer.push(SENSOR_ALIGNMENT.align_mag);
break
default:
return false;
}
@ -1350,6 +1391,7 @@ MSP.sendServoConfigurations = function(onCompleteCallback) {
nextFunction();
}
function send_next_servo_configuration() {
var buffer = [];
@ -1472,6 +1514,7 @@ MSP.sendAdjustmentRanges = function(onCompleteCallback) {
send_next_adjustment_range();
}
function send_next_adjustment_range() {
var adjustmentRange = ADJUSTMENT_RANGES[adjustmentRangeIndex];

242
main.css
View file

@ -225,7 +225,6 @@ input[type="number"]::-webkit-inner-spin-button {
background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.45));
padding-left: 5px;
padding-right: 5px;
text-align: center;
text-shadow: 0px 1px rgba(0, 0, 0, 1.0);
}
@ -282,7 +281,6 @@ input[type="number"]::-webkit-inner-spin-button {
.magicon.active {
background-image: url(images/icons/sensor_mag_on.png);
color: #61d514;
color: #818181;
}
@ -301,7 +299,6 @@ input[type="number"]::-webkit-inner-spin-button {
.gpsicon.active {
background-image: url(images/icons/sensor_sat_on.png);
color: #61d514;
color: #818181;
}
@ -320,7 +317,6 @@ input[type="number"]::-webkit-inner-spin-button {
.baroicon.active {
background-image: url(images/icons/sensor_baro_on.png);
color: #61d514;
color: #818181;
}
@ -339,7 +335,6 @@ input[type="number"]::-webkit-inner-spin-button {
.sonaricon.active {
background-image: url(images/icons/sensor_sonar_on.png);
color: #61d514;
color: #818181;
}
@ -408,6 +403,7 @@ input[type="number"]::-webkit-inner-spin-button {
margin-bottom: 0px;
border: 0px solid silver; /* was 1px*/
background-color: #242424;
color: #ccc;
color: rgba(255, 255, 255, 0.60);
line-height: 21px;
height: 27px; /* was 65*/
@ -433,7 +429,6 @@ input[type="number"]::-webkit-inner-spin-button {
margin-right: 20px;
width: 110px;
opacity: 0.15;
background-image: url(images/icons/scroll.svg);
background-size: 80%;
box-shadow: inset 0 0 5px #000000;
transition: all ease 0.3s;
@ -501,20 +496,10 @@ input[type="number"]::-webkit-inner-spin-button {
}
#tabs {
font-size: 13px;
}
#tabs ul {
/* overflow-y: auto; do not force scrollbars as it renders blank stripe on some user agents */
}
#tabs.logopen ul {
/* Cause the height to shrink to contain its floated contents while log is open */
}
.header-wrapper .mode-connected {
display: none;
}
@ -556,6 +541,8 @@ input[type="number"]::-webkit-inner-spin-button {
#tabs li a:hover {
text-decoration: none;
background-color: rgba(0, 0, 0, 0.20);
color: #fff;
}
#tabs li.active {
@ -585,6 +572,10 @@ input[type="number"]::-webkit-inner-spin-button {
background-image: url(images/icons/cf_icon_setup_grey.svg);
}
.ic_setup:hover {
background-image: url(images/icons/cf_icon_setup_white.svg);
}
li.active .ic_setup {
background-image: url(images/icons/cf_icon_setup_white.svg);
}
@ -593,6 +584,10 @@ li.active .ic_setup {
background-image: url(images/icons/cf_icon_ports_grey.svg);
}
.ic_ports:hover {
background-image: url(images/icons/cf_icon_ports_white.svg);
}
li.active .ic_ports {
background-image: url(images/icons/cf_icon_ports_white.svg);
}
@ -601,6 +596,10 @@ li.active .ic_ports {
background-image: url(images/icons/cf_icon_config_grey.svg);
}
.ic_config:hover {
background-image: url(images/icons/cf_icon_config_white.svg);
}
li.active .ic_config {
background-image: url(images/icons/cf_icon_config_white.svg);
}
@ -609,6 +608,10 @@ li.active .ic_config {
background-image: url(images/icons/cf_icon_pid_grey.svg);
}
.ic_pid:hover {
background-image: url(images/icons/cf_icon_pid_white.svg);
}
li.active .ic_pid {
background-image: url(images/icons/cf_icon_pid_white.svg);
}
@ -617,6 +620,10 @@ li.active .ic_pid {
background-image: url(images/icons/cf_icon_rx_grey.svg);
}
.ic_rx:hover {
background-image: url(images/icons/cf_icon_rx_white.svg);
}
li.active .ic_rx {
background-image: url(images/icons/cf_icon_rx_white.svg);
}
@ -625,6 +632,10 @@ li.active .ic_rx {
background-image: url(images/icons/cf_icon_modes_grey.svg);
}
.ic_modes:hover {
background-image: url(images/icons/cf_icon_modes_white.svg);
}
li.active .ic_modes {
background-image: url(images/icons/cf_icon_modes_white.svg);
}
@ -633,6 +644,10 @@ li.active .ic_modes {
background-image: url(images/icons/cf_icon_adjust_grey.svg);
}
.ic_adjust:hover {
background-image: url(images/icons/cf_icon_adjust_white.svg);
}
li.active .ic_adjust {
background-image: url(images/icons/cf_icon_adjust_white.svg);
}
@ -641,6 +656,10 @@ li.active .ic_adjust {
background-image: url(images/icons/cf_icon_servo_grey.svg);
}
.ic_servo:hover {
background-image: url(images/icons/cf_icon_servo_white.svg);
}
li.active .ic_servo {
background-image: url(images/icons/cf_icon_servo_white.svg);
}
@ -649,6 +668,10 @@ li.active .ic_servo {
background-image: url(images/icons/cf_icon_gps_grey.svg);
}
.ic_gps:hover {
background-image: url(images/icons/cf_icon_gps_white.svg);
}
li.active .ic_gps {
background-image: url(images/icons/cf_icon_gps_white.svg);
}
@ -657,6 +680,10 @@ li.active .ic_gps {
background-image: url(images/icons/cf_icon_led_grey.svg);
}
.ic_led:hover {
background-image: url(images/icons/cf_icon_led_white.svg);
}
li.active .ic_led {
background-image: url(images/icons/cf_icon_led_white.svg);
}
@ -665,6 +692,10 @@ li.active .ic_led {
background-image: url(images/icons/cf_icon_sensors_grey.svg);
}
.ic_sensors:hover {
background-image: url(images/icons/cf_icon_sensors_white.svg);
}
li.active .ic_sensors {
background-image: url(images/icons/cf_icon_sensors_white.svg);
}
@ -673,6 +704,10 @@ li.active .ic_sensors {
background-image: url(images/icons/cf_icon_log_grey.svg);
}
.ic_log:hover {
background-image: url(images/icons/cf_icon_log_white.svg);
}
li.active .ic_log {
background-image: url(images/icons/cf_icon_log_white.svg);
}
@ -681,6 +716,10 @@ li.active .ic_log {
background-image: url(images/icons/cf_icon_data_grey.svg);
}
.ic_data:hover {
background-image: url(images/icons/cf_icon_data_white.svg);
}
li.active .ic_data {
background-image: url(images/icons/cf_icon_data_white.svg);
}
@ -689,6 +728,10 @@ li.active .ic_data {
background-image: url(images/icons/cf_icon_cli_grey.svg);
}
.ic_cli:hover {
background-image: url(images/icons/cf_icon_cli_white.svg);
}
li.active .ic_cli {
background-image: url(images/icons/cf_icon_cli_white.svg);
}
@ -697,6 +740,10 @@ li.active .ic_cli {
background-image: url(images/icons/cf_icon_motor_grey.svg);
}
.ic_motor:hover {
background-image: url(images/icons/cf_icon_motor_white.svg);
}
li.active .ic_motor {
background-image: url(images/icons/cf_icon_motor_white.svg);
}
@ -705,6 +752,10 @@ li.active .ic_motor {
background-image: url(images/icons/cf_icon_welcome_grey.svg);
}
.ic_welcome:hover {
background-image: url(images/icons/cf_icon_welcome_white.svg);
}
li.active .ic_welcome {
background-image: url(images/icons/cf_icon_welcome_white.svg);
}
@ -713,6 +764,10 @@ li.active .ic_welcome {
background-image: url(images/icons/cf_icon_help_grey.svg);
}
.ic_help:hover {
background-image: url(images/icons/cf_icon_help_white.svg);
}
li.active .ic_help {
background-image: url(images/icons/cf_icon_help_white.svg);
}
@ -721,6 +776,10 @@ li.active .ic_help {
background-image: url(images/icons/cf_icon_flasher_grey.svg);
}
.ic_flasher:hover {
background-image: url(images/icons/cf_icon_flasher_white.svg);
}
li.active .ic_flasher {
background-image: url(images/icons/cf_icon_flasher_white.svg);
}
@ -730,12 +789,19 @@ li.active .ic_flasher {
background-image: url(images/icons/cf_icon_failsafe_grey.svg);
}
.ic_failsafe:hover {
background-image: url(images/icons/cf_icon_failsafe_white.svg);
}
li.active .ic_failsafe {
background-image: url(images/icons/cf_icon_failsafe_white.svg);
}
.ic_backup {
background-image: url(images/icons/cf_icon_backup_grey.svg);
}
.ic_backup:hover {
background-image: url(images/icons/cf_icon_backup_white.svg);
}
li.active .ic_backup {
background-image: url(images/icons/cf_icon_backup_white.svg);
@ -744,6 +810,9 @@ li.active .ic_backup {
.ic_wizzard {
background-image: url(images/icons/cf_icon_wizard_grey.svg);
}
.ic_wizzard:hover {
background-image: url(images/icons/cf_icon_wizard_white.svg);
}
li.active .ic_wizard {
background-image: url(images/icons/cf_icon_wizard_white.svg);
@ -752,6 +821,9 @@ li.active .ic_wizard {
.ic_advanced {
background-image: url(images/icons/cf_icon_advanced_grey.svg);
}
.ic_advanced:hover {
background-image: url(images/icons/cf_icon_advanced_white.svg);
}
li.active .ic_advanced {
background-image: url(images/icons/cf_icon_advanced_white.svg);
@ -760,32 +832,35 @@ li.active .ic_advanced {
.ic_mission {
background-image: url(images/icons/cf_icon_mission_grey.svg);
}
.ic_mission:hover {
background-image: url(images/icons/cf_icon_mission_white.svg);
}
li.active .ic_mission {
background-image: url(images/icons/cf_icon_mission_white.svg);
}
#content {
margin-top: 0px; /* 31 */
padding: 0px; /* 10 */
margin-top: 0px;
padding: 0px;
height: calc(100% - 150px);
/* (port picker 105px, log CLOSED 25px, status bar: 20px + padding) - was: calc(100% - 171px)*/
background-color: white;
overflow-x: hidden;
overflow-y: auto;
border: 0px solid #848484; /* 1px solid #848484; */
border: 0px solid #848484;
-webkit-transform: rotateX(0deg); /* DO NOT REMOVE! this fixes the UI freezing bug on MAC OS X */
transition: all 0.3s;
}
#content.logopen {
margin-top: 0px; /* 31 */
padding: 0px; /* 10 */
margin-top: 0px;
padding: 0px;
height: calc(100% - 234px); /* (port picker, log OPEN, status bar: 20px + padding) - was: calc(100% - 171px)*/
background-color: white;
overflow-x: hidden;
overflow-y: auto;
border: 0px solid #848484; /* 1px solid #848484; */
border: 0px solid #848484;
-webkit-transform: rotateX(0deg); /* DO NOT REMOVE! this fixes the UI freezing bug on MAC OS X */
transition: all 0.5s;
/* Cause the height to shrink to contain its floated contents while log is open */
@ -874,10 +949,8 @@ dialog {
}
.tab_wrapper {
padding-left: 20px;
padding-right: 15px;
padding-top: 15px;
padding-bottom: 15px;
padding: 20px 15px 15px 15px;
}
.content_wrapper {
@ -1361,7 +1434,7 @@ dialog {
.properties dd {
width: 400px;
height: auto !important;
height: auto;
}
/* GPS Fix styling*/
@ -1375,7 +1448,6 @@ dialog {
font-size: 10px;
}
.fixfalse {
background-color: #e60000;
padding: 2px;
@ -1452,11 +1524,10 @@ dialog {
position: absolute;
top: -18px;
margin-top: 0px;
text-align: center;
left: 0;
right: 0;
width:120px;
text-align:left;
text-align: left;
color:silver;
}
@ -1477,119 +1548,122 @@ dialog {
margin-top:2px;
}
.cf_tooltiptext {
display:none;
}
@media only screen and (max-width: 1055px) , only screen and (max-device-width: 1055px) {
.content_wrapper {
.content_wrapper {
padding: 15px;
}
.tab_title {
}
.tab_title {
font-size: 16px;
line-height: 18px;
font-family: 'open_sanslight', Arial;
margin-bottom: 10px;
height: 22px;
}
.cf_doc_version_bt a {
}
.cf_doc_version_bt a {
padding: 1px 5px 1px 5px;
margin-top: -35px;
font-size: 9px;
line-height: 15px;
}
#content {
}
#content {
height: calc(100% - 151px);
/* (port picker 105px, log CLOSED 25px, status bar: 20px + padding) - was: calc(100% - 171px)*/
}
body {
/*font-size: 11px;*/
/* lets see if we really need this? */
}
}
.tab-setup, .tab-landing, .tab-adjustments, .tab-auxiliary, .tab-cli, .tab-configuration, .tab-failsafe, .tab-onboard_logging,
.tab-firmware_flasher, .tab-gps, .tab-help, .tab-led-strip, .tab-logging, .tab-modes, .tab-motors,
.tab-pid_tuning, .tab-ports, .tab-receiver, .tab-sensors, .tab-servos {
}
.cf_table td {
.cf_table td {
padding-top: 2px;
padding-bottom: 2px;
}
.default_btn {
margin-bottom: 10px;
}
.default_btn a {
/*font-size:11px;*/
}
}
#tabs li a {
.default_btn {
margin-bottom: 10px;
}
#tabs li a {
font-family: 'open_sansregular', Arial;
font-size: 12px;
padding-left: 53px;
padding-left: 60px;
padding-top: 6px;
padding-bottom: 2px;
content: "" !important;
content: "";
text-shadow: none;
transition: none;
/* following is just for a graceful degradation */
text-overflow: clip;
white-space: nowrap;
overflow: hidden;
}
.tab_container {
width: 40px;
}
.gui_box_titlebar {
}
.tab_container {
width: 60px;
}
.gui_box_titlebar {
font-size: 12px;
height: 24px;
padding-bottom: 0px;
margin-bottom: 5px;
float: left;
}
.spacer_box_title {
}
.spacer_box_title {
padding-left: 10px;
padding-right: 10px;
padding-top: 3px;
margin-bottom: 0px;
float: left;
}
input {
}
input {
font-size: 11px !important;
}
.helpicon {
}
.helpicon {
float: right;
margin-top: 5px;
margin-right: 7px;
height: 14px;
width: 14px;
transition: none;
}
#tooltiptext {
}
.gps_false {
.gps_false {
padding: 0px 3px 0px 3px;
font-size: 10px;
}
.gps_true {
}
.gps_true {
padding: 0px 3px 0px 3px;
font-size: 10px;
}
.content_toolbar .btn a {
}
.content_toolbar .btn a {
margin-right: 15px;
}
.toolbar_fixed_bottom .content_wrapper {
}
.toolbar_fixed_bottom .content_wrapper {
/* content wrapper in view with toolbar fixed over bottom edge
leave 50px space for the toolbar
*/
height: calc(100% - 81px);
overflow-y: auto;
}
}
}
@media only screen and (max-height: 700px) , only screen and (max-device-height: 700px) {
.tab_container {
.tab_container {
overflow-x: hidden;
overflow-y: auto;
}
}
}

View file

@ -1,7 +1,3 @@
.tab-adjustments {
}
#tab-adjustments-templates {
display: none;
}
@ -122,3 +118,7 @@
.tab-adjustments .adjustment .functionSwitchChannel {
width: 5%;
}
.tab-adjustments .spacebottom {
margin-bottom: 15px;
}

View file

@ -4,7 +4,7 @@
<div class="cf_doc_version_bt">
<a id="button-documentation" href="https://github.com/cleanflight/cleanflight/releases" target="_blank"></a>
</div>
<div class="note" style="margin-bottom: 15px;">
<div class="note spacebottom">
<div class="note_spacer">
<p i18n="adjustmentsHelp"></p>
<p i18n="adjustmentsExamples"></p>
@ -88,6 +88,24 @@
<option value="18" i18n="adjustmentsFunction18"></option>
<option value="19" i18n="adjustmentsFunction19"></option>
<option value="20" i18n="adjustmentsFunction20"></option>
<option value="21" i18n="adjustmentsFunction21"></option>
<option value="22" i18n="adjustmentsFunction22"></option>
<option value="23" i18n="adjustmentsFunction23"></option>
<option value="24" i18n="adjustmentsFunction24"></option>
<option value="25" i18n="adjustmentsFunction25"></option>
<option value="26" i18n="adjustmentsFunction26"></option>
<option value="27" i18n="adjustmentsFunction27"></option>
<option value="28" i18n="adjustmentsFunction28"></option>
<option value="29" i18n="adjustmentsFunction29"></option>
<option value="30" i18n="adjustmentsFunction30"></option>
<option value="31" i18n="adjustmentsFunction31"></option>
<option value="32" i18n="adjustmentsFunction32"></option>
<option value="33" i18n="adjustmentsFunction33"></option>
<option value="34" i18n="adjustmentsFunction34"></option>
<option value="35" i18n="adjustmentsFunction35"></option>
<option value="36" i18n="adjustmentsFunction36"></option>
<option value="37" i18n="adjustmentsFunction37"></option>
<option value="38" i18n="adjustmentsFunction38"></option>
</select></td>
<td class="adjustmentSlot"><select class="slot">
<option value="0" i18n="adjustmentsSlot0"></option>

View file

@ -69,6 +69,9 @@ TABS.adjustments.initialize = function (callback) {
availableFunctionCount += 2; // pitch and roll rate
if (semver.gte(CONFIG.flightControllerVersion, '1.9.0')) {
availableFunctionCount += 6; // pitch p,i,d and roll p,i,d
if(semver.gte(CONFIG.apiVersion, "1.15.0")){
availableFunctionCount += 18;
}
}
}

View file

@ -46,10 +46,7 @@
.tab-auxiliary .mode {
background-color: #f9f9f9;
vertical-align: top;
}
.tab-auxiliary .mode:nth-child(odd) {
border-bottom: 1px solid #000000;
}
.tab-auxiliary .mode .name {
@ -57,10 +54,6 @@
padding: 13px 0px;
}
.tab-auxiliary .mode.off .info, .tab-auxiliary .mode.on .info {
}
.tab-auxiliary .mode .info {
text-align: center;
width: 10%;
@ -122,12 +115,7 @@
padding: 2px;
}
.tab-auxiliary .range:nth-child(odd) {
}
.tab-auxiliary .mode .range .channelInfo {
display: inline-block;
float: left;
min-width: 90px;
text-align: center;
@ -152,17 +140,12 @@
}
.tab-auxiliary .range .channel-slider {
display: inline-block;
float: left;
width: 80%;
margin-left: 20px;
margin-top: 1px;
}
.tab-auxiliary .channel-slider {
}
.tab-auxiliary>.buttons {
margin-top: 10px;
}
@ -220,6 +203,11 @@
line-height: 28px;
}
.tab-auxiliary .spacebottom {
margin-bottom: 15px;
}
@media only screen and (max-width: 1055px) , only screen and (max-device-width: 1055px) {
.tab-auxiliary .fixed_band {
margin: 0px;

View file

@ -4,7 +4,7 @@
<div class="cf_doc_version_bt">
<a id="button-documentation" href="https://github.com/cleanflight/cleanflight/releases" target="_blank"></a>
</div>
<div class="note" style="margin-bottom: 15px;">
<div class="note spacebottom">
<div class="note_spacer">
<p i18n="auxiliaryHelp"></p>
</div>
@ -23,7 +23,7 @@
<div id="tab-auxiliary-templates">
<table class="modes">
<tbody>
<tr class="mode" style="border-bottom: 1px solid #000000">
<tr class="mode">
<td class="info">
<p class="name"></p>
<div class="buttons">

View file

@ -174,7 +174,7 @@ TABS.cli.read = function (readInfo) {
GUI.timeout_add('waiting_for_bootup', function waiting_for_bootup() {
MSP.send_message(MSP_codes.MSP_IDENT, false, false, function () {
GUI.log(chrome.i18n.getMessage('deviceReady'));
if (!this.tab_switch_in_progress) {
if (!GUI.tab_switch_in_progress) {
$('#tabs ul.mode-connected .tab_setup a').click();
}
});

View file

@ -56,7 +56,7 @@
margin: 0 0 10px 20px;
}
.tab-configuration select.mixerList {
.tab-configuration .mixerList {
width: 100%;
height: 20px;
margin-top: 5px;
@ -81,11 +81,6 @@
line-height: 18px;
}
.tab-configuration .number {
margin-bottom: 5px;
clear: left;
}
.tab-configuration .number input {
width: 50px;
padding-left: 3px;
@ -99,7 +94,7 @@
font-weight: normal;
}
.tab-configuration .number input.disabled {
.tab-configuration .number .disabled {
width: 43px;
padding: 0px 5px;
background-color: #ececec;
@ -175,7 +170,7 @@
}
.tab-configuration span {
margin: 0px
margin: 0px;
}
.tab-configuration .disarm .checkbox {
@ -193,13 +188,6 @@
width: calc(100% - 20px);
}
.tab-configuration .number {
padding-bottom: 5px;
border-bottom: 1px solid #ddd;
width: 100%;
float: left;
}
.tab-configuration .disarm {
margin-bottom: 5px;
float: left;
@ -214,7 +202,19 @@
border-bottom: 1px solid #ddd;
}
.tab-configuration .number:last-child {
.tab-configuration .number,
.tab-configuration .select
{
margin-bottom: 5px;
clear: left;
padding-bottom: 5px;
border-bottom: 1px solid #ddd;
width: 100%;
float: left;
}
.tab-configuration .number:last-child,
.tab-configuration .select:last-child {
border-bottom: none;
padding-bottom: 0px;
margin-bottom: 0px;
@ -330,10 +330,135 @@
font-style: normal;
font-family: 'open_sansregular', Arial;
line-height: 19px;
color: #7d7d7d;
color: #4F4F4F;
font-size: 11px;
}
.tab-configuration .alignicon {
width: 20px;
height: 20px;
float: left;
margin-left: -5px;
margin-right: 3px;
}
.tab-configuration .pitch {
background-image: url(../images/icons/cf_icon_pitch.svg);
background-repeat: no-repeat;
background-size: 20px;
background-position: center;
}
.tab-configuration .yaw {
background-image: url(../images/icons/cf_icon_yaw.svg);
background-repeat: no-repeat;
background-size: 20px;
background-position: center;
}
.tab-configuration .roll {
background-image: url(../images/icons/cf_icon_roll.svg);
background-repeat: no-repeat;
background-size: 20px;
background-position: center;
}
.tab-configuration .board select {
/*float: left;*/
width: 45%;
height: 20px;
margin: 0 0px 2px 0;
border: 1px solid silver;
border-radius:3px;
}
#mixercontent .mixerheadline {
font-size: 13px;
width: 100%;
padding-bottom: 0px;
float: left;
margin-bottom: 7px;
font-family: 'open_sanssemibold', Arial;
}
#mixercontent select {
float: left;
width: 100%;
height: 20px;
margin: 0 0px 2px 0;
border: 1px solid silver;
border-radius:3px;
margin-bottom: 20px;
margin-top:3px;
}
#mixercontent input {
width: 50px;
padding-left: 3px;
height: 20px;
line-height: 20px;
text-align: left;
border: 1px solid silver;
border-radius: 3px;
margin-right: 11px;
font-size: 12px;
font-weight: normal;
}
#mixercontent .mixerletter {
width: 23px;
height: 23px;
background-color: #d0d0d0;
line-height: 23px;
text-align: center;
border-radius: 100px;
margin-right: 10px;
font-size: 12px;
font-weight: bold;
float: left;
}
#mixercontent .number {
margin-bottom: 5px;
clear: left;
padding-top: 5px;
border-top: 1px solid #ddd;
width: 100%;
float: left;
}
#mixercontent .number:last-child {
padding-top: 0px;
margin-bottom: 0px;
}
#mixercontent .mixercanvas {
background-color: #f9f9f9;
border-radius: 5px;
border: 1px solid #e4e4e4;
height: 340px;
margin-top: 3px;
}
.tab-configuration .sensoralignment {
width: 50%;
float: left;
}
.tab-configuration .board_align_content {
width: 50%;
float: left;
}
.tab-configuration .sensoralignment span {
width: 55%;
float: left;
}
@media only screen and (max-width: 1055px) , only screen and (max-device-width: 1055px) {
.tab-configuration .gui_box span {
line-height: 17px;

View file

@ -33,13 +33,6 @@
</div>
<div class="spacer_box">
<table cellpadding="0" cellspacing="0">
<thead style="display: none;">
<tr>
<th i18n="configurationFeatureEnabled"></th>
<th i18n="configurationFeatureDescription"></th>
<th i18n="configurationFeatureName"></th>
</tr>
</thead>
<tbody class="features esc">
<!-- table generated here -->
</tbody>
@ -58,7 +51,8 @@
<label>
<div class="numberspacer">
<input type="number" name="autodisarmdelay" min="0" max="60" />
</div> <span i18n="configurationAutoDisarmDelay"></span>
</div>
<span i18n="configurationAutoDisarmDelay"></span>
</label>
</div>
</div>
@ -67,28 +61,32 @@
<label>
<div class="numberspacer">
<input type="number" name="minthrottle" min="0" max="2000" />
</div> <span i18n="configurationThrottleMinimum"></span>
</div>
<span i18n="configurationThrottleMinimum"></span>
</label>
</div>
<div class="number">
<label>
<div class="numberspacer">
<input type="number" name="midthrottle" min="0" max="2000" />
</div> <span i18n="configurationThrottleMid"></span>
</div>
<span i18n="configurationThrottleMid"></span>
</label>
</div>
<div class="number">
<label>
<div class="numberspacer">
<input type="number" name="maxthrottle" min="0" max="2000" />
</div> <span i18n="configurationThrottleMaximum"></span>
</div>
<span i18n="configurationThrottleMaximum"></span>
</label>
</div>
<div class="number">
<label>
<div class="numberspacer">
<input type="number" name="mincommand" min="0" max="2000" />
</div> <span i18n="configurationThrottleMinimumCommand"></span>
</div>
<span i18n="configurationThrottleMinimumCommand"></span>
</label>
</div>
</div>
@ -99,22 +97,57 @@
<div class="gui_box grey">
<div class="gui_box_titlebar">
<div class="spacer_box_title" i18n="configurationBoardAlignment"></div>
<div class="helpicon cf_tip" i18n_title="configHelp2"></div>
</div>
<div class="spacer_box">
<div class="board_align_content">
<div class="number">
<label> <input type="number" name="board_align_roll" step="1" min="-180" max="360" /> <span
i18n="configurationBoardAlignmentRoll"></span>
</label>
<div class="alignicon roll"></div>
</div>
<div class="number">
<label> <input type="number" name="board_align_pitch" step="1" min="-180" max="360" />
<span i18n="configurationBoardAlignmentPitch"></span>
</label>
<div class="alignicon pitch"></div>
</div>
<div class="number">
<label> <input type="number" name="board_align_yaw" step="1" min="-180" max="360" /> <span
i18n="configurationBoardAlignmentYaw"></span>
</label>
<div class="alignicon yaw"></div>
</div>
</div>
<div class="sensoralignment">
<div class="select">
<label>
<span i18n="configurationSensorAlignmentGyro"></span>
<select class="gyroalign">
<option value="0">Default</option>
<!-- list generated here -->
</select>
</label>
</div>
<div class="select">
<label>
<span i18n="configurationSensorAlignmentAcc"></span>
<select class="accalign">
<option value="0">Default</option>
<!-- list generated here -->
</select>
</label>
</div>
<div class="select">
<label>
<span i18n="configurationSensorAlignmentMag"></span>
<select class="magalign">
<option value="0">Default</option>
<!-- list generated here -->
</select>
</label>
</div>
</div>
</div>
</div>
@ -257,9 +290,7 @@
<div class="gui_box grey">
<div class="gui_box_titlebar">
<div class="spacer_box_title" i18n="configurationRSSI"></div>
<div class="helpicon cf_tip">
<div class="cf_tooltiptext" i18n="configurationRSSIHelp" style="display:none;"></div>
</div>
<div class="helpicon cf_tip" i18n_title="configurationRSSIHelp"></div>
</div>
<div class="spacer_box">
<table cellpadding="0" cellspacing="0">
@ -328,17 +359,20 @@
<div class="line">
<select class="gps_protocol">
<!-- list generated here -->
</select> <span i18n="configurationGPSProtocol"></span>
</select>
<span i18n="configurationGPSProtocol"></span>
</div>
<div class="line">
<select class="gps_baudrate">
<!-- list generated here -->
</select> <span i18n="configurationGPSBaudrate"></span>
</select>
<span i18n="configurationGPSBaudrate"></span>
</div>
<div class="line">
<select class="gps_ubx_sbas">
<!-- list generated here -->
</select> <span i18n="configurationGPSubxSbas"></span>
</select>
<span i18n="configurationGPSubxSbas"></span>
</div>
<div class="number">
<label> <input type="number" name="mag_declination" step="0.1" min="-180" max="180" />

View file

@ -54,7 +54,7 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
}
function load_3d() {
var next_callback = load_html;
var next_callback = load_sensor_alignment;
if (semver.gte(CONFIG.apiVersion, "1.14.0")) {
MSP.send_message(MSP_codes.MSP_3D, false, false, next_callback);
} else {
@ -62,6 +62,15 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
}
}
function load_sensor_alignment() {
var next_callback = load_html;
if (semver.gte(CONFIG.apiVersion, "1.15.0")) {
MSP.send_message(MSP_codes.MSP_SENSOR_ALIGNMENT, false, false, next_callback);
} else {
next_callback();
}
}
function load_html() {
$('#content').load("./tabs/configuration.html", process_html);
}
@ -202,6 +211,36 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
});
}
var alignments = [
'CW 0°',
'CW 90°',
'CW 180°',
'CW 270°',
'CW 0° flip',
'CW 90° flip',
'CW 180° flip',
'CW 270° flip'
];
var orientation_gyro_e = $('select.gyroalign');
var orientation_acc_e = $('select.accalign');
var orientation_mag_e = $('select.magalign');
if (semver.lt(CONFIG.apiVersion, "1.15.0")) {
$('.tab-configuration .sensoralignment').hide();
} else {
for (var i = 0; i < alignments.length; i++) {
orientation_gyro_e.append('<option value="' + (i+1) + '">'+ alignments[i] + '</option>');
orientation_acc_e.append('<option value="' + (i+1) + '">'+ alignments[i] + '</option>');
orientation_mag_e.append('<option value="' + (i+1) + '">'+ alignments[i] + '</option>');
}
orientation_gyro_e.val(SENSOR_ALIGNMENT.align_gyro);
orientation_acc_e.val(SENSOR_ALIGNMENT.align_acc);
orientation_mag_e.val(SENSOR_ALIGNMENT.align_mag);
}
// generate GPS
var gpsProtocols = [
'NMEA',
@ -225,6 +264,7 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
'Indian GAGAN'
];
var gps_protocol_e = $('select.gps_protocol');
for (var i = 0; i < gpsProtocols.length; i++) {
gps_protocol_e.append('<option value="' + i + '">' + gpsProtocols[i] + '</option>');
@ -433,6 +473,11 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
_3D.neutral3d = parseInt($('input[name="3dneutral"]').val());
_3D.deadband3d_throttle = ($('input[name="3ddeadbandthrottle"]').val());
SENSOR_ALIGNMENT.align_gyro = parseInt(orientation_gyro_e.val());
SENSOR_ALIGNMENT.align_acc = parseInt(orientation_acc_e.val());
SENSOR_ALIGNMENT.align_mag = parseInt(orientation_mag_e.val());
// track feature usage
if (isFeatureEnabled('RX_SERIAL')) {
googleAnalytics.sendEvent('Setting', 'SerialRxProvider', serialRXtypes[BF_CONFIG.serialrx_type]);
@ -445,6 +490,7 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
}
}
function save_serial_config() {
if (semver.lt(CONFIG.apiVersion, "1.6.0")) {
MSP.send_message(MSP_codes.MSP_SET_CF_SERIAL_CONFIG, MSP.crunch(MSP_codes.MSP_SET_CF_SERIAL_CONFIG), false, save_misc);
@ -458,7 +504,21 @@ TABS.configuration.initialize = function (callback, scrollPosition) {
}
function save_3d() {
MSP.send_message(MSP_codes.MSP_SET_3D, MSP.crunch(MSP_codes.MSP_SET_3D), false, save_acc_trim);
var next_callback = save_sensor_alignment;
if(semver.gte(CONFIG.apiVersion, "1.14.0")) {
MSP.send_message(MSP_codes.MSP_SET_3D, MSP.crunch(MSP_codes.MSP_SET_3D), false, next_callback);
} else {
next_callback();
}
}
function save_sensor_alignment() {
var next_callback = save_acc_trim;
if(semver.gte(CONFIG.apiVersion, "1.15.0")) {
MSP.send_message(MSP_codes.MSP_SET_SENSOR_ALIGNMENT, MSP.crunch(MSP_codes.MSP_SET_SENSOR_ALIGNMENT), false, next_callback);
} else {
next_callback();
}
}
function save_acc_trim() {

View file

@ -31,9 +31,7 @@
font-weight: normal;
}
.tab-failsafe .number input.disabled {
width: 43px;
padding: 0 5px;
.tab-failsafe .number input:disabled {
background-color: #ececec;
}
@ -184,7 +182,7 @@
font-style: normal;
font-family: 'open_sansregular', sans-serif;
line-height: 19px;
color: #7d7d7d;
color: #4F4F4F;
font-size: 11px;
}
@ -213,10 +211,31 @@
margin-right: 3px;
}
.tab-failsafe .channelprimary {
float:left;
width:60%;
}
.tab-failsafe .channelauxiliary {
float:left;
width:60%;
padding-top: 2px;
}
.tab-failsafe .channelname {
margin-right: 3px;
}
.tab-failsafe .channelsetting {
float:left;
width:25%;
}
.tab-failsafe .auxiliary {
float:left;
width:15%;
}
.tab-failsafe .note {
margin-bottom: 20px;
}

View file

@ -39,9 +39,7 @@
<div class="gui_box grey newpane">
<div class="gui_box_titlebar">
<div class="spacer_box_title" i18n="failsafePulsrangeTitle"></div>
<div class="helpicon cf_tip">
<div class="cf_tooltiptext" i18n="failsafePulsrangeHelp"></div>
</div>
<div class="helpicon cf_tip" i18n_title="failsafePulsrangeHelp"></div>
</div>
<div class="spacer_box">
<div class="number">
@ -59,9 +57,7 @@
<div class="gui_box grey stage1 newpane">
<div class="gui_box_titlebar">
<div class="spacer_box_title" i18n="failsafeChannelFallbackSettingsTitle"></div>
<div class="helpicon cf_tip">
<div class="cf_tooltiptext" i18n="failsafeChannelFallbackSettingsHelp"></div>
</div>
<div class="helpicon cf_tip" i18n_title="failsafeChannelFallbackSettingsHelp"></div>
</div>
<div class="spacer_box">
<div class="activechannellist">
@ -82,9 +78,7 @@
</div>
<label for="failsafe_feature_new"><span i18n="failsafeFeatureItem"></span>
</label>
<div class="helpicon cf_tip">
<div class="cf_tooltiptext" i18n="failsafeFeatureHelp"></div>
</div>
<div class="helpicon cf_tip" i18n_title="failsafeFeatureHelp"></div>
</div>
<div class="checkbox stage2">
<div class="numberspacer" >
@ -92,25 +86,19 @@
</div>
<label for="failsafe_kill_switch"><span i18n="failsafeKillSwitchItem"></span>
</label>
<div class="helpicon cf_tip">
<div class="cf_tooltiptext" i18n="failsafeKillSwitchHelp"></div>
</div>
<div class="helpicon cf_tip" i18n_title="failsafeKillSwitchHelp"></div>
</div>
<div class="number stage2">
<label> <input type="number" name="failsafe_delay" min="0" max="2000" /> <span
i18n="failsafeDelayItem"></span>
</label>
<div class="helpicon cf_tip">
<div class="cf_tooltiptext" i18n="failsafeDelayHelp"></div>
</div>
<div class="helpicon cf_tip" i18n_title="failsafeDelayHelp"></div>
</div>
<div class="number stage2">
<label> <input type="number" name="failsafe_throttle_low_delay" min="0" max="2000" /> <span
i18n="failsafeThrottleLowItem"></span>
</label>
<div class="helpicon cf_tip">
<div class="cf_tooltiptext" i18n="failsafeThrottleLowHelp"></div>
</div>
<div class="helpicon cf_tip" i18n_title="failsafeThrottleLowHelp"></div>
</div>
<!-- radio buttons -->
<div class="subline stage2" i18n="failsafeSubTitle1"></div>
@ -133,9 +121,7 @@
<label> <input type="number" name="failsafe_off_delay" min="0" max="2000" /> <span
i18n="failsafeOffDelayItem"></span>
</label>
<div class="helpicon cf_tip">
<div class="cf_tooltiptext" i18n="failsafeOffDelayHelp"></div>
</div>
<div class="helpicon cf_tip" i18n_title="failsafeOffDelayHelp"></div>
</div>
</div>
</div>

View file

@ -126,34 +126,31 @@ TABS.failsafe.initialize = function (callback, scrollPosition) {
if (i < channelNames.length) {
fullChannels_e.append('\
<div class="number">\
<div style="width:60%; float:left;">\
<div class="channelprimary">\
<span>' + channelNames[i] + '</span>\
</div>\
<div class="cf_tip" style="width:25%; float:left;">\
<div class="cf_tooltiptext" style="display:none;"><strong>Auto</strong> means Roll, Pitch and Yaw to center and Throttle low. <strong>Hold</strong> means maintain the last good value received.</div>\
<div class="cf_tip channelsetting" title="' + chrome.i18n.getMessage("failsafeChannelFallbackSettingsAuto") + '">\
<select class="aux_set" id="' + i + '">\
<option value="0">Auto</option>\
<option value="1">Hold</option>\
</select>\
</div>\
<div style="width:15%; float:left;"><input type="number" name="aux_value" min="750" max="2250" id="' + i + '"/></div>\
</div>\
');
} else {
fullChannels_e.append('\
<div class="number">\
<div style="width:60%; float:left; padding-top: 2px;">\
<div class="channelauxiliary">\
<span class="channelname">' + chrome.i18n.getMessage("controlAxisAux" + (aux_index++)) + '</span>\
' + auxAssignment[aux_assignment_index++] + '\
</div>\
<div class="cf_tip" style="width:25%; float:left;">\
<div class="cf_tooltiptext" style="display:none;"><strong>Hold</strong> means maintain the last good value received. <strong>Set</strong> means the value given here will be used. </div>\
<div class="cf_tip channelsetting" title="' + chrome.i18n.getMessage("failsafeChannelFallbackSettingsHold") + '">\
<select class="aux_set" id="' + i + '">\
<option value="1">Hold</option>\
<option value="2">Set</option>\
</select>\
</div>\
<div style="width:15%; float:left;"><input type="number" name="aux_value" min="750" max="2250" id="' + i + '"/></div>\
<div class="auxiliary"><input type="number" name="aux_value" min="750" max="2250" id="' + i + '"/></div>\
</div>\
');
}

View file

@ -243,12 +243,12 @@
background-color: #b8b8b8;
}
.tab-firmware_flasher .buttons a.back {
.tab-firmware_flasher .buttons .back {
float: right;
margin: 0;
}
.btn a.disabled {
.btn .disabled {
cursor: default;
color: #fff;
background-color: #AFAFAF;

View file

@ -1,7 +1,3 @@
.tab-gps {
}
.tab-gps progress {
width: 100%;
border-radius: 3px;

View file

@ -110,13 +110,15 @@
padding-top: 10px;
}
.tab-landing .content_mid h2, .tab-landing .content_mid h3 {
.tab-landing .content_mid h2 {
margin-bottom: 5px;
font-size: 13px;
}
.tab-landing .content_mid h3 {
font-size: 12px;
margin-bottom: 5px;
}
.tab-landing .content_mid .text1 .wrap {

View file

@ -154,11 +154,11 @@
}
.tab-led-strip button.w100 {
.tab-led-strip .w100 {
width: 100%;
}
.tab-led-strip button.w50 {
.tab-led-strip .w50 {
width: 49%;
}
@ -172,7 +172,6 @@
background: linear-gradient( to bottom right, rgba(255, 0, 0, .5) 0%, rgba(255, 255, 0, 0.5) 15%, rgba(0, 255, 0, .5) 30%, rgba(0, 255, 255, .5) 50%, rgba(0, 0, 255, .5) 65%, rgba(255, 0, 255, .5) 80%, rgba(255, 0, 0, .5) 100%);
}
.tab-led-strip .color-0 {}
.tab-led-strip .color-1 {background: white;}
.tab-led-strip .color-2 {background: red;}
.tab-led-strip .color-3 {background: orange;}
@ -186,8 +185,7 @@
.tab-led-strip .color-11 {background: darkviolet;}
.tab-led-strip .color-12 {background: magenta;}
.tab-led-strip .color-13 {background: deeppink;}
.tab-led-strip .color-14 {}
.tab-led-strip .color-15 {}
.tab-led-strip .directions button.btnOn,
.tab-led-strip .functions button.btnOn,
@ -354,3 +352,7 @@
z-index: 100;
border: 1px dotted white;
}
.tab-led-strip .spacebottom {
margin-bottom: 20px;
}

View file

@ -1,10 +1,10 @@
<div class="tab-led-strip toolbar_fixed_bottom">
<div class="content_wrapper">
<div class="tab_title" i18n="tabLedStrip" style="float: none;"></div>
<div class="tab_title" i18n="tabLedStrip"></div>
<div class="cf_doc_version_bt">
<a id="button-documentation" href="https://github.com/cleanflight/cleanflight/releases" target="_blank"></a>
</div>
<div class="note" style="margin-bottom: 20px;">
<div class="note spacebottom">
<div class="note_spacer">
<p i18n="ledStripHelp"></p>
</div>

View file

@ -1,7 +1,3 @@
.tab-logging {
}
.tab-logging .properties {
margin-top: 10px;
}

View file

@ -51,3 +51,7 @@
position: absolute;
bottom: 10px;
}
.tab-modes .partone {
width: 18%;
}

View file

@ -2,7 +2,7 @@
<div class="content_wrapper">
<table class="boxes">
<tr class="heads">
<th style="width: 18%"></th>
<th class="partone"></th>
</tr>
<tr class="main">
<th i18n="auxiliaryName"></th>

View file

@ -1,9 +1,4 @@
.tab-pid_tuning {
}
.tab-pid_tuning .rate-tpa th {
font-weight: normal;
background-color: #828885;
padding: 4px;
border-left: 0px solid #ccc;
@ -62,7 +57,7 @@
}
.tab-pid_tuning .rate-tpa {
border: 0px solid #ccc;
/*border: 0px solid #ccc; */
margin-bottom: 10px;
}
@ -78,7 +73,7 @@
}
.tab-pid_tuning .gui_box {
margin-bottom: 0px !important;
margin-bottom: 0px;
}
.tab-pid_tuning table, .tab-pid_tuning table td {
@ -128,10 +123,6 @@
padding-left: 0px;
}
.tab-pid_tuning table tr:nth-child(odd) {
}
.tab-pid_tuning table input {
display: block;
width: calc(100% - 0px);
@ -144,10 +135,10 @@
.tab-pid_tuning .controller {
float: left;
width: calc(50% - 2px);
width: calc(35% - 2px);
margin-left: 0px;
margin-bottom: 10px;
border-radius: 3px;
border-radius: 4px;
border: 1px solid #ccc;
}
@ -155,8 +146,6 @@
display: block;
text-align: left;
line-height: 20px;
font-weight: bold;
padding-left: 5px;
border-bottom: 1px solid #ccc;
background-color: #828885;
color: white;
@ -164,6 +153,8 @@
font-weight: normal;
padding: 2px;
padding-left: 6px;
border-top-left-radius: 3px;
border-top-right-radius: 3px;
}
.tab-pid_tuning .controller select {
@ -183,8 +174,6 @@
display: block;
text-align: left;
line-height: 20px;
font-weight: bold;
padding-left: 5px;
border-bottom: 1px solid #ccc;
background-color: #828885;
color: white;
@ -203,12 +192,24 @@
}
.tab-pid_tuning .pid_tuning .name {
width: 30%;
width: 25%;
}
.tab-pid_tuning .proportional {
width: 25%;
}
.tab-pid_tuning .integral {
width: 25%;
}
.tab-pid_tuning .derivative {
width: 25%;
}
.tab-pid_tuning .rate-tpa {
float: right;
width: calc(100% - 0px); /* - ( "virtual" margin) */
width: calc(100% - 2px); /* - ( "virtual" margin) */
}
.tab-pid_tuning .top-buttons {
@ -256,6 +257,12 @@
text-align: left;
}
.show {
width:110px;
float:right;
margin-right:3px;
}
.show a {
margin-left: 10px;
width: calc(100% - 10px);
@ -265,6 +272,62 @@
margin-top: -1px;
}
.tab-pid_tuning .number .helpicon {
margin-top: 3px;
margin-right: 0px;
}
.tab-pid_tuning .gui_box_titlebar .helpicon {
margin-top: 5px;
margin-right: 5px;
}
.tab-pid_tuning .spacer_left {
padding-left: 15px;
float: right;
width: calc(100% - 20px)
}
.tab-pid_tuning .numberspacer {
float: left;
width: 65px;
height: 21px;
}
.tab-pid_tuning .number {
margin-bottom: 5px;
clear: left;
padding-bottom: 5px;
border-bottom: 1px solid #ddd;
width: 100%;
float: left;
}
.tab-pid_tuning .number:last-child {
padding-bottom: 5px;
border-bottom: 0px;
}
.tab-pid_tuning .number input {
width: 50px;
padding-left: 3px;
height: 20px;
line-height: 20px;
text-align: left;
border: 1px solid silver;
border-radius: 3px;
margin-right: 11px;
font-weight: normal;
}
.tab-pid_tuning .gui_box span {
font-style: normal;
font-family: 'open_sansregular', Arial;
line-height: 19px;
color: #7d7d7d;
font-size: 11px;
}
#content-watermark {
position: absolute;
bottom: 40px;
@ -279,3 +342,48 @@
height: 174px;
opacity: 0.15;
}
.tab-pid_tuning .resetbt {
width: 140px;
float: right;
}
.tab-pid_tuning .right {
float: right;
}
.tab-pid_tuning .pids {
float: left;
width: 25%;
}
.tab-pid_tuning .leftzero {
padding-left: 0px;
}
.tab-pid_tuning .tpa-breakpoint {
border-top-left-radius: 0px;
}
.tab-pid_tuning .roll {
border-bottom-left-radius: 3px;
}
.tab-pid_tuning .pidTuningLevel {
float: left;
}
.tab-pid_tuning .borderleft {
border-top-left-radius: 3px;
border-top-right-radius: 3px;
}
.tab-pid_tuning .textleft {
width: 25%;
float: left;
text-align: left;
}
.tab-pid_tuning .topspacer {
margin-top:15px;
}

View file

@ -7,14 +7,20 @@
</div>
<div class="cf_column half">
<div class="controller">
<span class="head" i18n="pidTuningControllerHead"></span> <select name="controller">
<span class="head" i18n="pidTuningControllerHead"></span>
<select name="controller">
<!-- list generated here -->
</select>
</div>
<div class="cf_column fourth">
<div class="cf_column right">
<div class="default_btn show">
<a href="#" id="showAllPids">Show all PIDs</a>
</div>
<div class="default_btn resetbt">
<a href="#" id="resetPIDs">Reset PID Controller</a>
</div>
</div>
</div>
<form name="pid-tuning" id="pid-tuning">
@ -23,10 +29,10 @@
<div class="gui_box grey">
<table class="pid_titlebar">
<tr>
<th class="name" i18n="pidTuningName" style="width: 25%;"></th>
<th class="proportional" i18n="pidTuningProportional" style="width: 25%;"></th>
<th class="integral" i18n="pidTuningIntegral" style="width: 25%;"></th>
<th class="derivative" i18n="pidTuningDerivative" style="width: 25%;"></th>
<th class="name" i18n="pidTuningName""></th>
<th class="proportional" i18n="pidTuningProportional"></th>
<th class="integral" i18n="pidTuningIntegral"></th>
<th class="derivative" i18n="pidTuningDerivative"></th>
</tr>
</table>
<table id="pid_main" class="pid_tuning">
@ -121,20 +127,18 @@
</tr>
</table>
</div>
<div class="gui_box grey" style="margin-top:10px;">
<table id="pid_accel" class="pid_tuning">
<div class="gui_box grey topspacer">
<table id="pid_accel" class="pid_tuning">
<tr>
<th colspan="4">
<div class="pid_mode">
<div style="width: 25%; float: left; text-align: left;">
<div i18n="pidTuningLevel" style="float:left;"></div>
<div class="helpicon cf_tip">
<div class="cf_tooltiptext" i18n="pidTuningLevelHelp" style="display: none;"></div>
<div class="pid_mode borderleft">
<div class="textleft">
<div class="pidTuningLevel" i18n="pidTuningLevel"></div>
<div class="helpicon cf_tip" i18n_title="pidTuningLevelHelp"></div>
</div>
</div>
<div style="width:25%; float:left;" i18n="pidTuningLevelP"></div>
<div style="width:25%; float:left;" i18n="pidTuningLevelI"></div>
<div style="width:25%; float:left;" i18n="pidTuningLevelD"></div>
<div class="pids" i18n="pidTuningLevelP"></div>
<div class="pids" i18n="pidTuningLevelI"></div>
<div class="pids" i18n="pidTuningLevelD"></div>
</div>
</th>
</tr>
@ -163,7 +167,7 @@
<tr>
<td class="roll-pitch"><input type="number" name="roll-pitch" step="0.01" min="0"
max="1.00" /></td>
<td class="roll" style="border-bottom-left-radius: 3px;"><input type="number"
<td class="roll"><input type="number"
name="roll" step="0.01" min="0" max="1.00" /></td>
<td class="pitch"><input type="number" name="pitch" step="0.01" min="0" max="1.00" /></td>
<td><input type="number" name="yaw" step="0.01" min="0" max="2.55" /></td>
@ -174,13 +178,12 @@
<thead>
<tr>
<th i18n="pidTuningTPA"></th>
<th class="tpa-breakpoint" i18n="pidTuningTPABreakPoint"
style="border-top-left-radius: 0px;"></th>
<th class="tpa-breakpoint" i18n="pidTuningTPABreakPoint"></th>
</tr>
</thead>
<tbody>
<tr>
<td style="padding-left: 0px;"><input type="number" name="tpa" step="0.01" min="0"
<td class="leftzero"><input type="number" name="tpa" step="0.01" min="0"
max="1.00" /></td>
<td class="tpa-breakpoint"><input type="number" name="tpa-breakpoint" step="10"
min="1000" max="2000" /></td>

View file

@ -276,6 +276,11 @@ TABS.pid_tuning.initialize = function (callback) {
}
});
$('#resetPIDs').on('click', function(){
MSP.send_message(MSP_codes.MSP_SET_RESET_CURR_PID, false, false, false);
updateActivatedTab();
});
$('.pid_tuning tr').each(function(){
for(i = 0; i < PID_names.length; i++) {
if($(this).hasClass(PID_names[i])) {

View file

@ -24,10 +24,7 @@
.tab-ports table td {
border-bottom: 1px solid #e4e4e4;
padding-top: 6px;
padding-bottom: 7px;
padding-left: 5px;
padding-right: 5px;
padding: 6px 5px 7px 5px;
border-left: 1px solid #e4e4e4;
border-right: 1px solid #e4e4e4;
}
@ -56,6 +53,7 @@
.tab-ports select {
border: 1px solid silver;
margin-right: 3px;
}
.tab-ports .require-support {
@ -92,6 +90,10 @@
border-right: 0px;
}
.tab-ports .spacebottom {
margin-bottom: 20px;
}
@media only screen and (max-width: 1055px) , only screen and (max-device-width: 1055px) {
.tab-ports table thead tr:first-child {
font-size: 12px;

View file

@ -5,13 +5,13 @@
<a id="button-documentation" href="https://github.com/cleanflight/cleanflight/releases" target="_blank"></a>
</div>
<div class="require-support">
<div class="note" style="margin-bottom: 20px;">
<div class="note spacebottom">
<div class="note_spacer">
<p i18n="portsHelp"></p>
<p i18n="portsMSPHelp"></p>
</div>
</div>
<table class="ports" style="margin-bottom: 20px;">
<table class="ports spacebottom">
<thead>
<tr>
<td>Identifier</td>

View file

@ -219,16 +219,24 @@
text-align: right;
}
.tab-receiver .rssi_channel_wrapper {
float: right;
margin: 0px 0px 10px 0;
margin: 0px 0px 20px 0;
border-left: 0;
width: 30%;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
border-top-right-radius: 5px;
border-bottom-right-radius: 5px;
background-color: #DEDEDE;
}
.tab-receiver .rssi_channel_wrapper select {
height: 22px;
padding-left: 5px;
border: 1px solid silver;
margin: 4px;
width: calc(100% - 8px);
}
.tab-receiver .rssi_channel_wrapper .head {
height: 15px;
padding: 4px;
@ -251,10 +259,10 @@
.tab-receiver .rcmap_wrapper {
float: right;
position: relative;
margin: 0px 0px 10px 0;
margin: 0px 0px 20px 0;
width: calc(70% - 0px);
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
background-color: #DEDEDE;
}
@ -270,10 +278,6 @@
border-right: 1px solid silver;
}
.tab-receiver .rcmap_wrapper .head span {
}
.tab-receiver .hybrid_element {
border-right: 1px solid silver;
}
@ -292,7 +296,6 @@
}
.tab-receiver .hybrid_element select {
width: 100%;
height: 22px;
z-index: 1;
border: 1px solid silver;

View file

@ -21,7 +21,8 @@
<span i18n="receiverChannelMap" i18n_title="receiverChannelMapTitle"></span>
</div>
<div class="hybrid_element">
<input type="text" name="rcmap" spellcheck="false" /> <select class="hybrid_helper"
<input type="text" name="rcmap" spellcheck="false" />
<select class="hybrid_helper"
name="rcmap_helper">
<option value="AETR1234">Default</option>
<option value="AETR1234">Futaba / Hitec</option>
@ -49,6 +50,24 @@
<td><input type="number" name="expo" step="0.01" min="0" max="1" /></td>
</tr>
</table>
<table class="deadband">
<tr>
<th i18n="receiverDeadband"></th>
<th i18n="receiverYawDeadband"></th>
</tr>
<tr>
<td>
<div class="cf_tip" i18n_title="receiverHelpDeadband">
<input type="number" name="deadband" step="1" min="0" max="32" />
</div>
</td>
<td>
<div class="cf_tip" i18n_title="receiverHelpYawDeadband">
<input type="number" name="yaw_deadband" step="1" min="0" max="100" />
</div>
</td>
</tr>
</table>
</div>
</div>
</div>

View file

@ -26,7 +26,16 @@ TABS.receiver.initialize = function (callback) {
// Fetch features so we can check if RX_MSP is enabled:
function load_config() {
MSP.send_message(MSP_codes.MSP_BF_CONFIG, false, false, load_html);
MSP.send_message(MSP_codes.MSP_BF_CONFIG, false, false, load_rc_configs);
}
function load_rc_configs() {
var next_callback = load_html;
if (semver.gte(CONFIG.apiVersion, "1.15.0")) {
MSP.send_message(MSP_codes.MSP_RC_DEADBAND, false, false, next_callback);
} else {
next_callback();
}
}
function load_html() {
@ -59,6 +68,13 @@ TABS.receiver.initialize = function (callback) {
}
});
if (semver.lt(CONFIG.apiVersion, "1.15.0")) {
$('.deadband').hide();
} else {
$('.deadband input[name="yaw_deadband"]').val(RC_deadband.yaw_deadband);
$('.deadband input[name="deadband"]').val(RC_deadband.deadband);
}
// generate bars
var bar_names = [
chrome.i18n.getMessage('controlAxisRoll'),
@ -292,6 +308,11 @@ TABS.receiver.initialize = function (callback) {
RC_tuning.RC_EXPO = parseFloat($('.tunings .rate input[name="expo"]').val());
RC_tuning.RC_YAW_EXPO = parseFloat($('.tunings .yaw_rate input[name="yaw_expo"]').val());
if (semver.gte(CONFIG.apiVersion, "1.15.0")) {
RC_deadband.yaw_deadband = parseInt($('.deadband input[name="yaw_deadband"]').val());
RC_deadband.deadband = parseInt($('.deadband input[name="deadband"]').val());
}
// catch rc map
var RC_MAP_Letters = ['A', 'E', 'R', 'T', '1', '2', '3', '4'];
var strBuffer = $('input[name="rcmap"]').val().split('');
@ -308,7 +329,16 @@ TABS.receiver.initialize = function (callback) {
}
function save_misc() {
MSP.send_message(MSP_codes.MSP_SET_MISC, MSP.crunch(MSP_codes.MSP_SET_MISC), false, save_to_eeprom);
MSP.send_message(MSP_codes.MSP_SET_MISC, MSP.crunch(MSP_codes.MSP_SET_MISC), false, save_rc_configs);
}
function save_rc_configs() {
var next_callback = save_to_eeprom;
if (semver.gte(CONFIG.apiVersion, "1.15.0")) {
MSP.send_message(MSP_codes.MSP_SET_RC_DEADBAND, MSP.crunch(MSP_codes.MSP_SET_RC_DEADBAND), false, next_callback);
} else {
next_callback();
}
}
function save_to_eeprom() {

View file

@ -1,7 +1,3 @@
.tab-sensors {
}
.tab-sensors .info {
margin-bottom: 10px;
margin-top: 8px;

View file

@ -1,7 +1,3 @@
.tab-servos {
}
.tab-servos .title {
margin-top: 0px;
line-height: 30px;
@ -31,7 +27,7 @@
border: 0;
}
.tab-servos table.directions td.direction select {
.tab-servos .directions .direction select {
height: 19px;
line-height: 19px;
}
@ -45,10 +41,7 @@
.tab-servos table td {
border-bottom: 1px solid #e4e4e4;
padding-top: 6px;
padding-bottom: 7px;
padding-left: 5px;
padding-right: 5px;
padding: 6px 5px 7px 5px;
border-left: 1px solid #e4e4e4;
border-right: 1px solid #e4e4e4;
}
@ -113,10 +106,6 @@
text-align: right;
}
.tab-servos table .direction {
}
.tab-servos .direction .name {
float: left;
display: block;
@ -184,3 +173,11 @@
.tab-servos .live span {
margin-right: 10px;
}
.tab-servos .wide {
width: 120px;
}
.tab-servos .short {
width: 40px;
}

View file

@ -12,12 +12,12 @@
<th i18n="servosMid"></th>
<th i18n="servosMin"></th>
<th i18n="servosMax"></th>
<th style="width: 120px" i18n="servosAngleAtMin"></th>
<th style="width: 120px" i18n="servosAngleAtMax"></th>
<th style="width: 40px">CH1</th>
<th style="width: 40px">CH2</th>
<th style="width: 40px">CH3</th>
<th style="width: 40px">CH4</th>
<th class="wide" i18n="servosAngleAtMin"></th>
<th class="wide" i18n="servosAngleAtMax"></th>
<th class="short">CH1</th>
<th class="short">CH2</th>
<th class="short">CH3</th>
<th class="short">CH4</th>
</tr>
</table>
<div class="live">

View file

@ -43,7 +43,7 @@ TABS.servos.initialize = function (callback) {
function update_ui() {
if (semver.lt(CONFIG.apiVersion, "1.12.0")) {
if (semver.lt(CONFIG.apiVersion, "1.12.0") || SERVO_CONFIG.length == 0) {
$(".tab-servos").removeClass("supported");
return;

View file

@ -45,10 +45,8 @@
display: block;
top: 10px;
right: 10px;
z-index: 10;
border-radius: 3px;
bottom: 10px;
right: 10px;
height: 28px;
line-height: 28px;
padding: 0 15px 0 15px;
@ -56,7 +54,6 @@
font-weight: bold;
border: 1px solid silver;
background-color: #ececec;
border-radius: 3px;
z-index: 100;
}
@ -160,6 +157,40 @@
padding-top: 7px;
}
.tab_setup .content_wrapper {
position: initial;
}
.spacerbottom {
margin-bottom: 10px;
}
.initialstyle {
position: initial;
}
.buttonarea {
min-height: 100px;
width: 20%;
}
.halfbuttons {
width: calc(100% - 10px);
}
.setupinfo {
width: 80%;
}
.modelwrapper {
clear: both;
margin-bottom: 5px;
}
.instrumentsbox {
margin-bottom: 0px;
}
@media only screen and (max-width: 1055px) , only screen and (max-device-width: 1055px) {
.block.instrument .attitude {
width: 50px !important;

View file

@ -1,12 +1,12 @@
<div class="tab-setup">
<div class="content_wrapper" style="position: initial;">
<div class="content_wrapper initialstyle">
<!-- should be the first DIV on each tab -->
<div class="cf_column full" style="margin-bottom: 10px;">
<div class="cf_column full spacerbottom">
<div class="tab_title" i18n="tabSetup">Setup</div>
<div class="cf_doc_version_bt">
<a id="button-documentation" href="" target="_blank"></a>
</div>
<div class="cf_column fourth" style="min-height: 100px; width: 20%;">
<div class="cf_column fourth buttonarea">
<div class="spacer_right">
<div class="default_btn">
<a class="calibrateAccel" id="default_btn green" href="#"
@ -19,7 +19,7 @@
<a class="resetSettings" href="#" i18n="initialSetupButtonReset"></a>
</div>
<div class="half">
<div class="spacer_right" style="width: calc(100% - 10px);">
<div class="spacer_right halfbuttons">
<div class="default_btn half">
<a class="backup" href="#" i18n="initialSetupButtonBackup"></a>
</div>
@ -32,7 +32,7 @@
</div>
</div>
</div>
<div class="threefourth_right" style="width: 80%;">
<div class="threefourth_right setupinfo">
<div class="cell_setup">
<span i18n="initialSetupCalibrateAccelText"></span>
</div>
@ -47,7 +47,7 @@
</div>
</div>
</div>
<div style="clear: both; margin-bottom: 5px;"></div>
<div class="modelwrapper"></div>
<div class="cf_column threefourth_left">
<div class="spacer_right">
<div class="model-and-info">
@ -130,7 +130,7 @@
</div>
</div>
<div class="spacer_left">
<div class="gui_box grey" align="center" style="margin-bottom: 0px;">
<div class="gui_box grey instrumentsbox" align="center">
<div class="gui_box_titlebar" align="left">
<div class="spacer_box_title" i18n="initialSetupInstrumentsHead"></div>
</div>