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() {
+Основные установки
+
+
+
+
Прочитать
+
Записать
+
Default
+
+
+
+ Время устройства
+ Установить время
+
+
+
+
Комфорт
@@ -2165,59 +2219,6 @@ window.onload = function() {
-
-
- Время устройства
- Установить время
-
-
-
-
-Параметры связи
-
-Интервалы
-
-
Прочитать
-
Записать
-
Восстановить
-
Параметры сенсора
?
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