diff --git a/bthome_phy6222/web/PHY62x2BTHome.html b/bthome_phy6222/web/PHY62x2BTHome.html index db00b45..264347b 100644 --- a/bthome_phy6222/web/PHY62x2BTHome.html +++ b/bthome_phy6222/web/PHY62x2BTHome.html @@ -1,6 +1,6 @@ -PHY62x2 BTHome v1.0 +PHY62x2 BTHome v1.1 @@ -1241,17 +1241,6 @@ function sendCommand() { } function showConfig() { -/* - if($('inpFlag') != null) - $('inpFlag').value = devCfg.flg; // пока не реализовано - $('inpTxPwr').value = devCfg.tx_power; // 0..0x3f -> -20..+5 dBm нелинейное 0x1f = +0 дБм - $('inpLat').value = (devCfg.connect_latency + 1)*30; // = (connect_latency + 1)*30 ms - - $('inpAdvInt').value = devCfg.advertising_interval*62.5; // *62.5 = интервала рекламы в ms - $('inpMeasInt').value = devCfg.measure_interval; // *devCfg.advertising_interval*62.5 = опрос датчика в ms, value минимум = 2 (интервала рекламы) - $('inpAverInt').value = devCfg.averaging_measurements; // запись истории: при 0 - отключена, 1...255 * шаг опроса датчика = интерал записи истории - $('inpBatInt').value = devCfg.batt_interval; // в секундах, минимум 2 секунды, но кратно интервалу рекламы -*/ $('chkCfgNotify').checked = (devCfg.flg & 1) != 0; $('chkCfgClock').checked = (devCfg.flg & 2) != 0; $('chkCfgSmiley').checked = (devCfg.flg & 4) != 0; @@ -1261,9 +1250,22 @@ function showConfig() { for(let n = 0; n < el.options.length; n++) if(el.options[n].value >= devCfg.tx_power) txPwr = el.options[n].value; el.value = txPwr; $('inpLat').value = (devCfg.connect_latency + 1)*30; // = (connect_latency + 1)*30 ms - $('inpAdvInt').value = devCfg.advertising_interval*62.5; // *62.5 = интервала рекламы в ms - $('inpMeasInt').value = devCfg.measure_interval; // *devCfg.advertising_interval*62.5 = опрос датчика в ms, value минимум = 2 (интервала рекламы) + let advi = devCfg.advertising_interval*62.5; + $('inpAdvInt').value = advi.toFixed(1); // интервала рекламы в ms + $('inpMeasInt').value = devCfg.measure_interval; // опрос датчика в ms, value минимум = 2 (интервала рекламы) + let msri = advi*devCfg.measure_interval; + $('lblMeasInt').innerHTML = "= " + msri.toFixed(1) + " мс"; $('inpAverInt').value = devCfg.averaging_measurements; // запись истории: при 0 - отключена, 1...255 * шаг опроса датчика = интерал записи истории + if(devCfg.averaging_measurements == 0) + $('lblAverInt').innerHTML = "отключена"; + else { + let hsti = (msri*devCfg.averaging_measurements)/1000.0; + if(hsti > 60) { + hsti /= 60.0; + $('lblAverInt').innerHTML = "= " + hsti.toFixed(1) + ' минут'; + } else + $('lblAverInt').innerHTML = "= " + hsti.toFixed(1) + ' сек.'; + } $('inpBatInt').value = devCfg.batt_interval; // в секундах, минимум 2 секунды, но кратно интервалу рекламы } @@ -1363,7 +1365,7 @@ function parseBlkCustom(value) { } } ); - if(len < 15) getDevTime(); + //if(len < 15) getDevTime(); if(delta > 86400 || delta < -86400) { addLog("Авто установка часов устройства..."); setDevTime(); @@ -1604,11 +1606,8 @@ function getDevName() { } } -function setDevCfg() { - if(cmdCharacteristic != null) { - // addLog("setDevCfg..."); - devCfg.flg = parseInt($('inpFlag').value)&0xffffffff; // пока не реализовано - devCfg.tx_power = parseInt($('inpTxPwr').value)&0x3f; // 0..0x3f -> -20..+5 dBm нелинейное 0x1f = +0 дБм +function chkDevCfg() { + if(devCfg.flg == null) return; devCfg.flg = ($('chkCfgNotify').checked) ? 1 : 0; devCfg.flg |= ($('chkCfgClock').checked) ? 2 : 0; devCfg.flg |= ($('chkCfgSmiley').checked) ? 4 : 0; @@ -1622,14 +1621,14 @@ function setDevCfg() { } else connect_latency = 255; devCfg.connect_latency = connect_latency & 0xff; - let advertising_interval = parseInt($('inpAdvInt').value); + let advertising_interval = parseFloat($("inpAdvInt").value); if(advertising_interval <= 62.5) advertising_interval = 1; else if(advertising_interval >= 15937.5) advertising_interval = 255; else advertising_interval = advertising_interval / 62.5; - devCfg.advertising_interval = advertising_interval & 0xff; + devCfg.advertising_interval = Math.round(advertising_interval) & 0xff; devCfg.measure_interval = parseInt($('inpMeasInt').value); if(devCfg.measure_interval < 2) // опрос датчика в интервалах рекламы, value минимум = 2 (интервала рекламы) devCfg.measure_interval = 2; @@ -1645,6 +1644,12 @@ function setDevCfg() { devCfg.batt_interval = 2; if(devCfg.batt_interval > 255) devCfg.batt_interval = 255; + showConfig(); +} + +function setDevCfg() { + if(cmdCharacteristic != null) { + chkDevCfg(); blk = new Uint8Array([0x55, devCfg.flg & 0xff, (devCfg.flg>>8) & 0xff, (devCfg.flg>>16) & 0xff, (devCfg.flg>>24) & 0xff, devCfg.tx_power, @@ -2132,13 +2137,62 @@ window.onload = function() {
+Основные установки - +
+ + + + +
+ + + + + + + + + + +
Tx Power: + +
Conn. Latency: мс
Период рекламы:мс
+ + + + + + + + + + +
Шаг измерений:
Опрос батареи: сек.
Запись истории:
+ + + +
+ + + + + + +
+
@@ -2165,59 +2219,6 @@ window.onload = function() {
Комфорт

- - - - - - -
-
-Параметры связи - - - - - - - - - - - -
Send NotificationTx PowerConn. Latency
- -
-Интервалы - - - - - - - - - - - - - -
РекламаИзмеренияУсреднениеУровень батареи
- - - -
- - - -
Параметры сенсора  diff --git a/wr_bth01.cmd b/wr_bth01.cmd index e80e24b..9160dac 100644 --- a/wr_bth01.cmd +++ b/wr_bth01.cmd @@ -1 +1 @@ -python3 rdwr_phy62x2.py -p COM11 -e -r wh BOOT_BTH01_v11.hex \ No newline at end of file +python3 rdwr_phy62x2.py -p COM11 -e -r wh ./bin/BOOT_BTH01_v12.hex \ No newline at end of file diff --git a/wr_th05.cmd b/wr_th05.cmd index 2eabaa9..6598bd1 100644 --- a/wr_th05.cmd +++ b/wr_th05.cmd @@ -1 +1 @@ -python3 rdwr_phy62x2.py -p COM11 -e -r wh BOOT_TH05_v11.hex \ No newline at end of file +python3 rdwr_phy62x2.py -p COM11 -e -r wh ./bin/BOOT_TH05_v12.hex \ No newline at end of file diff --git a/wr_thb2.cmd b/wr_thb2.cmd index 99ab45e..fd94f19 100644 --- a/wr_thb2.cmd +++ b/wr_thb2.cmd @@ -1 +1 @@ -python3 rdwr_phy62x2.py -p COM11 -e -r wh BOOT_THB2_v11.hex \ No newline at end of file +python3 rdwr_phy62x2.py -p COM11 -e -r wh ./bin/BOOT_THB2_v12.hex \ No newline at end of file