diff --git a/images/icons/cf_icon_position.png b/images/icons/cf_icon_position.png new file mode 100644 index 00000000..48f8c9da Binary files /dev/null and b/images/icons/cf_icon_position.png differ diff --git a/js/msp.js b/js/msp.js index cfde7dc0..50d1bf60 100644 --- a/js/msp.js +++ b/js/msp.js @@ -227,6 +227,7 @@ var MSP = { CONFIG.activeSensors = data.getUint16(4, 1); CONFIG.mode = data.getUint32(6, 1); CONFIG.profile = data.getUint8(10); + $('select[name="profilechange"]').val(CONFIG.profile); sensor_status(CONFIG.activeSensors); $('span.i2c-error').text(CONFIG.i2cError); @@ -822,6 +823,7 @@ var MSP = { DATAFLASH.totalSize = 0; DATAFLASH.usedSize = 0; } + update_dataflash_global(); break; case MSP_codes.MSP_DATAFLASH_READ: // No-op, let callback handle it diff --git a/js/serial_backend.js b/js/serial_backend.js index 57a02655..44d960eb 100755 --- a/js/serial_backend.js +++ b/js/serial_backend.js @@ -250,13 +250,21 @@ function onConnect() { $('div#connectbutton a.connect_state').text(chrome.i18n.getMessage('disconnect')).addClass('active'); $('div#connectbutton a.connect').addClass('active'); $('#tabs ul.mode-disconnected').hide(); - $('#tabs ul.mode-connected').show(); - + $('#tabs ul.mode-connected').show(); + + MSP.send_message(MSP_codes.MSP_STATUS, false, false); + + MSP.send_message(MSP_codes.MSP_DATAFLASH_SUMMARY, false, false); + var sensor_state = $('#sensor-status'); sensor_state.show(); - + var port_picker = $('#portsinput'); port_picker.hide(); + + var dataflash = $('#dataflash_wrapper_global'); + dataflash.show(); + } function onClosed(result) { @@ -269,12 +277,15 @@ function onClosed(result) { $('#tabs ul.mode-connected').hide(); $('#tabs ul.mode-disconnected').show(); + var sensor_state = $('#sensor-status'); + sensor_state.hide(); + var port_picker = $('#portsinput'); port_picker.show(); + + var dataflash = $('#dataflash_wrapper_global'); + dataflash.hide(); - var sensor_state = $('#sensor-status'); - sensor_state.hide(); - } function read_serial(info) { @@ -374,7 +385,34 @@ function highByte(num) { function lowByte(num) { return 0x00FF & num; -} +}function update_dataflash_global() { + var supportsDataflash = DATAFLASH.totalSize > 0; + if (supportsDataflash){ + + $(".noflash_global").css({ + display: 'none' + }); + + $(".dataflash-contents_global").css({ + display: 'block' + }); + + $(".dataflash-free_global").css({ + width: (100-(DATAFLASH.totalSize - DATAFLASH.usedSize) / DATAFLASH.totalSize * 100) + "%", + display: 'block' + }); + $(".dataflash-free_global div").text('Dataflash: free ' + formatFilesize(DATAFLASH.totalSize - DATAFLASH.usedSize)); + } else { + $(".noflash_global").css({ + display: 'block' + }); + + $(".dataflash-contents_global").css({ + display: 'none' + }); + } + + } function specificByte(num, pos) { return 0x000000FF & (num >> (8 * pos)); @@ -392,3 +430,45 @@ function bit_clear(num, bit) { return num & ~(1 << bit); } +function update_dataflash_global() { + function formatFilesize(bytes) { + if (bytes < 1024) { + return bytes + "B"; + } + var kilobytes = bytes / 1024; + + if (kilobytes < 1024) { + return Math.round(kilobytes) + "kB"; + } + + var megabytes = kilobytes / 1024; + + return megabytes.toFixed(1) + "MB"; + } + + var supportsDataflash = DATAFLASH.totalSize > 0; + + if (supportsDataflash){ + $(".noflash_global").css({ + display: 'none' + }); + + $(".dataflash-contents_global").css({ + display: 'block' + }); + + $(".dataflash-free_global").css({ + width: (100-(DATAFLASH.totalSize - DATAFLASH.usedSize) / DATAFLASH.totalSize * 100) + "%", + display: 'block' + }); + $(".dataflash-free_global div").text('Dataflash: free ' + formatFilesize(DATAFLASH.totalSize - DATAFLASH.usedSize)); + } else { + $(".noflash_global").css({ + display: 'block' + }); + + $(".dataflash-contents_global").css({ + display: 'none' + }); + } +} diff --git a/main.css b/main.css index b16ce9a8..0f5384e5 100644 --- a/main.css +++ b/main.css @@ -489,12 +489,16 @@ input[type="number"]::-webkit-inner-spin-button { width: 200px; border-right: 4px solid #59aa29; background-color: #2e2e2e; + transition: all 0.2s; + } .tab_container.logopen { height: calc(100% - 235px); overflow-x: hidden; overflow-y: auto; + transition: all 0.5s; + } @@ -1123,6 +1127,7 @@ dialog { line-height: 13px; display: block; transition: all ease 0.2s; + text-decoration:none; } .default_btn a:hover { @@ -1130,6 +1135,8 @@ dialog { color: #fff; text-shadow: 0px 1px rgba(0, 0, 0, 0.25); transition: all ease 0.2s; + text-decoration:none; + } .default_btn a:active { @@ -1330,7 +1337,8 @@ dialog { border-radius: 3px; color: #fff; font-size: 10px; - } +} + .fixfalse { background-color: #e60000; @@ -1341,19 +1349,111 @@ dialog { color: #fff; font-size: 10px; } +/* Dataflash element styling*/ + +#dataflash_wrapper_global { + color:white; + font-size:10px; + margin-top: 20px; + width:125px; + float: right; + margin-right: 20px; + line-height: 12px; + height: 33px; + border-radius: 5px; + border: 1px solid #272727; + box-shadow: 0px 1px 0px rgba(92, 92, 92, 0.5); + background-color: #434343; + background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.55)); + padding-top:5px; + display:none; + text-shadow: 0px 1px rgba(0, 0, 0, 1.0); + +} + +#profile_change { + color:white; + margin-top: 16px; + width:125px; + float: right; + margin-right: 0px; + line-height: 12px; +} + +.dataflash-contents_global { + margin-top: 18px; + border: 1px solid #4A4A4A; + background-color: #4A4A4A; + display: flex; + flex-direction: row; + flex-wrap: nowrap; + justify-content: flex-start; + border-radius: 3px; + margin-left: 5px; + margin-right: 5px; +} + + +.dataflash-free_global { + background-color: #59AA29; + border-radius: 4px; +} + + +.dataflash-contents_global .notsupported_global { + display: none; +} + +.dataflash-contents_global li { + height: 5px; + position: relative; + box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.20); + border-radius: 2px; + +} + +.dataflash-contents_global li div { + position: absolute; + top: -18px; + margin-top: 0px; + text-align: center; + left: 0; + right: 0; + width:120px; + text-align:left; + color:silver; +} + +.dataflash-contents_global progress::-webkit-progress-bar { + height: 8px; + background-color: #eee; +} + +.dataflash-contents progress::-webkit-progress-value { + background-color: #bcf; +} + +.noflash_global { + display:none; + color: #868686; + text-align: center; + text-shadow: 0px 1px rgba(0, 0, 0, 1.0); + margin-top:2px; +} + + @media only screen and (max-width: 1055px) , only screen and (max-device-width: 1055px) { .content_wrapper { padding: 15px; - /*width:calc(100% - 30px);*/ - } +} .tab_title { font-size: 16px; line-height: 18px; font-family: 'open_sanslight', Arial; margin-bottom: 10px; height: 22px; - } +} .cf_doc_version_bt a { padding: 1px 5px 1px 5px; margin-top: -35px; diff --git a/main.html b/main.html index 88320b86..9f042554 100755 --- a/main.html +++ b/main.html @@ -126,6 +126,25 @@