diff --git a/app/diario-bordo.html b/app/diario-bordo.html index 9002e62..abe1dd6 100644 --- a/app/diario-bordo.html +++ b/app/diario-bordo.html @@ -6073,11 +6073,11 @@ async function bmsProbeWebBluetooth(deviceId,deviceName){ let notifyChar=null,writeChar=null; for(const c of chars){ const p=c.properties; - const propsStr=[p.notify&&'notify',p.indicate&&'indicate',p.write&&'write',p.writeWithoutResponses&&'wnr',p.read&&'read'].filter(Boolean).join(','); + const propsStr=[p.notify&&'notify',p.indicate&&'indicate',p.write&&'write',p.writeWithoutResponse&&'wnr',p.read&&'read'].filter(Boolean).join(','); const cu=c.uuid.toLowerCase(); setBleDiag(` ${cu.slice(4,8)} [${propsStr}]`,'info'); if(!notifyChar&&(p.notify||p.indicate))notifyChar=c; - if(!writeChar&&(p.write||p.writeWithoutResponses))writeChar=c; + if(!writeChar&&(p.write||p.writeWithoutResponse))writeChar=c; } if(!notifyChar||!writeChar){setBleDiag('Sem chars notify+write','err');return false} setBleDiag(`Notify=${notifyChar.uuid.slice(4,8)} Write=${writeChar.uuid.slice(4,8)}`,'ok'); @@ -6094,7 +6094,7 @@ async function bmsProbeWebBluetooth(deviceId,deviceName){ setBleDiag('Notify ativo · iniciando wake...','ok'); await new Promise(r=>setTimeout(r,500)); try{ - const fn=writeChar.properties.writeWithoutResponses?'writeValueWithoutResponse':'writeValue'; + const fn=writeChar.properties.writeWithoutResponse?'writeValueWithoutResponse':'writeValue'; await writeChar[fn](new Uint8Array([0x5A,0x5A,0x5A,0x5A])); setBleDiag('Wake 5A x4 enviado','info'); }catch(e){setBleDiag('Wake skip: '+e.message,'info')} @@ -6107,7 +6107,7 @@ async function bmsProbeWebBluetooth(deviceId,deviceName){ for(const p of PROTOCOLS){ try{ setBleDiag(`→ TX ${p.name}`,'info'); - const fn=writeChar.properties.writeWithoutResponses?'writeValueWithoutResponse':'writeValue'; + const fn=writeChar.properties.writeWithoutResponse?'writeValueWithoutResponse':'writeValue'; await writeChar[fn](new Uint8Array(p.bytes)); setBleDiag(`✔ write ${p.name} OK`,'info'); await new Promise(r=>setTimeout(r,2500)); @@ -6440,7 +6440,7 @@ async function removeBluetoothDevice(id){ renderBluetoothCard(); } -const APP_VERSION='1.10.12'; +const APP_VERSION='1.10.13'; function renderBluetoothCard(){ const el=document.getElementById('bt-list'); const supportEl=document.getElementById('bt-support'); diff --git a/server/public/index.html b/server/public/index.html index 9002e62..abe1dd6 100644 --- a/server/public/index.html +++ b/server/public/index.html @@ -6073,11 +6073,11 @@ async function bmsProbeWebBluetooth(deviceId,deviceName){ let notifyChar=null,writeChar=null; for(const c of chars){ const p=c.properties; - const propsStr=[p.notify&&'notify',p.indicate&&'indicate',p.write&&'write',p.writeWithoutResponses&&'wnr',p.read&&'read'].filter(Boolean).join(','); + const propsStr=[p.notify&&'notify',p.indicate&&'indicate',p.write&&'write',p.writeWithoutResponse&&'wnr',p.read&&'read'].filter(Boolean).join(','); const cu=c.uuid.toLowerCase(); setBleDiag(` ${cu.slice(4,8)} [${propsStr}]`,'info'); if(!notifyChar&&(p.notify||p.indicate))notifyChar=c; - if(!writeChar&&(p.write||p.writeWithoutResponses))writeChar=c; + if(!writeChar&&(p.write||p.writeWithoutResponse))writeChar=c; } if(!notifyChar||!writeChar){setBleDiag('Sem chars notify+write','err');return false} setBleDiag(`Notify=${notifyChar.uuid.slice(4,8)} Write=${writeChar.uuid.slice(4,8)}`,'ok'); @@ -6094,7 +6094,7 @@ async function bmsProbeWebBluetooth(deviceId,deviceName){ setBleDiag('Notify ativo · iniciando wake...','ok'); await new Promise(r=>setTimeout(r,500)); try{ - const fn=writeChar.properties.writeWithoutResponses?'writeValueWithoutResponse':'writeValue'; + const fn=writeChar.properties.writeWithoutResponse?'writeValueWithoutResponse':'writeValue'; await writeChar[fn](new Uint8Array([0x5A,0x5A,0x5A,0x5A])); setBleDiag('Wake 5A x4 enviado','info'); }catch(e){setBleDiag('Wake skip: '+e.message,'info')} @@ -6107,7 +6107,7 @@ async function bmsProbeWebBluetooth(deviceId,deviceName){ for(const p of PROTOCOLS){ try{ setBleDiag(`→ TX ${p.name}`,'info'); - const fn=writeChar.properties.writeWithoutResponses?'writeValueWithoutResponse':'writeValue'; + const fn=writeChar.properties.writeWithoutResponse?'writeValueWithoutResponse':'writeValue'; await writeChar[fn](new Uint8Array(p.bytes)); setBleDiag(`✔ write ${p.name} OK`,'info'); await new Promise(r=>setTimeout(r,2500)); @@ -6440,7 +6440,7 @@ async function removeBluetoothDevice(id){ renderBluetoothCard(); } -const APP_VERSION='1.10.12'; +const APP_VERSION='1.10.13'; function renderBluetoothCard(){ const el=document.getElementById('bt-list'); const supportEl=document.getElementById('bt-support'); diff --git a/server/public/sw.js b/server/public/sw.js index cb41661..da916c4 100644 --- a/server/public/sw.js +++ b/server/public/sw.js @@ -1,7 +1,7 @@ // Shivao Service Worker — offline real // Estratégia: shell precachado, tiles cache-first, windy network-first, /api passa direto. // Versão usada nos cache names — bumpa essa string pra invalidar caches antigos em deploys. -const VERSION = 'shivao-v1.10.12'; +const VERSION = 'shivao-v1.10.13'; const SHELL_CACHE = `shivao-shell-${VERSION}`; const TILES_CACHE = 'shivao-tiles-v1'; // separado pra não invalidar tiles em update do shell const WINDY_CACHE = `shivao-windy-${VERSION}`;