diff --git a/app/diario-bordo.html b/app/diario-bordo.html index 896d975..a59c086 100644 --- a/app/diario-bordo.html +++ b/app/diario-bordo.html @@ -5998,6 +5998,16 @@ async function bmsProbeAndAttach(deviceId,deviceName){ if(backend!=='capacitor'){setBleDiag('Probe requer Capacitor (APK)','warn');return false} const ble=window.Capacitor.Plugins.BluetoothLe; try{ + setBleDiag(`📦 Shivao v${APP_VERSION} · Probe iniciado`,'info'); + // Tenta aumentar MTU pra 247 (alguns BMS exigem) + try{ + const r=await ble.requestConnectionPriority({deviceId,connectionPriority:'high'}); + setBleDiag('Connection priority HIGH ok','info'); + }catch(e){setBleDiag('connection priority skip','info')} + try{ + await ble.requestMtu({deviceId,mtu:247}); + setBleDiag('MTU bumped pra 247','info'); + }catch(e){setBleDiag('MTU bump skip','info')} setBleDiag('🔍 Enumerando characteristics...','info'); // Tenta serviços vendor: ff00, fff0 (Daly), ffe0 (JK), 0203 const VENDOR_SVCS=[ @@ -6244,14 +6254,16 @@ async function removeBluetoothDevice(id){ renderBluetoothCard(); } +const APP_VERSION='1.10.3'; function renderBluetoothCard(){ const el=document.getElementById('bt-list'); const supportEl=document.getElementById('bt-support'); if(!el)return; if(supportEl){ - supportEl.textContent=bleSupported() - ? 'Bluetooth disponível neste navegador.' - : 'Web Bluetooth indisponível (use Chrome no PC ou Android — iOS Safari não suporta).'; + const backendStr=bleBackend()==='capacitor'?'plugin nativo':'navegador web'; + supportEl.innerHTML=bleSupported() + ? `Shivao v${APP_VERSION} · Bluetooth via ${backendStr}.` + : `Shivao v${APP_VERSION} · Bluetooth indisponível.`; supportEl.style.color=bleSupported()?'var(--m-ok,#10b981)':'var(--m-warn,#f59e0b)'; } const devices=state.btDevices||[]; diff --git a/mobile/android/app/build.gradle b/mobile/android/app/build.gradle index 4227dcb..d70726e 100644 --- a/mobile/android/app/build.gradle +++ b/mobile/android/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "br.com.pontualtech.shivao" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 18 - versionName "1.10.2" + versionCode 19 + versionName "1.10.3" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. diff --git a/mobile/package.json b/mobile/package.json index b00efc7..714331a 100644 --- a/mobile/package.json +++ b/mobile/package.json @@ -1,6 +1,6 @@ { "name": "shivao-mobile", - "version": "1.10.2", + "version": "1.10.3", "description": "Shivao app nativo (Capacitor wrapper Android/iOS)", "main": "index.js", "type": "module", diff --git a/server/public/index.html b/server/public/index.html index 896d975..a59c086 100644 --- a/server/public/index.html +++ b/server/public/index.html @@ -5998,6 +5998,16 @@ async function bmsProbeAndAttach(deviceId,deviceName){ if(backend!=='capacitor'){setBleDiag('Probe requer Capacitor (APK)','warn');return false} const ble=window.Capacitor.Plugins.BluetoothLe; try{ + setBleDiag(`📦 Shivao v${APP_VERSION} · Probe iniciado`,'info'); + // Tenta aumentar MTU pra 247 (alguns BMS exigem) + try{ + const r=await ble.requestConnectionPriority({deviceId,connectionPriority:'high'}); + setBleDiag('Connection priority HIGH ok','info'); + }catch(e){setBleDiag('connection priority skip','info')} + try{ + await ble.requestMtu({deviceId,mtu:247}); + setBleDiag('MTU bumped pra 247','info'); + }catch(e){setBleDiag('MTU bump skip','info')} setBleDiag('🔍 Enumerando characteristics...','info'); // Tenta serviços vendor: ff00, fff0 (Daly), ffe0 (JK), 0203 const VENDOR_SVCS=[ @@ -6244,14 +6254,16 @@ async function removeBluetoothDevice(id){ renderBluetoothCard(); } +const APP_VERSION='1.10.3'; function renderBluetoothCard(){ const el=document.getElementById('bt-list'); const supportEl=document.getElementById('bt-support'); if(!el)return; if(supportEl){ - supportEl.textContent=bleSupported() - ? 'Bluetooth disponível neste navegador.' - : 'Web Bluetooth indisponível (use Chrome no PC ou Android — iOS Safari não suporta).'; + const backendStr=bleBackend()==='capacitor'?'plugin nativo':'navegador web'; + supportEl.innerHTML=bleSupported() + ? `Shivao v${APP_VERSION} · Bluetooth via ${backendStr}.` + : `Shivao v${APP_VERSION} · Bluetooth indisponível.`; supportEl.style.color=bleSupported()?'var(--m-ok,#10b981)':'var(--m-warn,#f59e0b)'; } const devices=state.btDevices||[]; diff --git a/server/src/index.js b/server/src/index.js index 786aaab..3f444b2 100644 --- a/server/src/index.js +++ b/server/src/index.js @@ -347,7 +347,7 @@ app.get('/.well-known/assetlinks.json', (req, res) => { }); // Atalho: /apk redireciona pra última APK release no Forgejo -const LATEST_APK_URL = 'https://git.pontualtech.work/karlao/shivao-projeto/releases/download/v1.10.2/Shivao-v1.10.2.apk'; +const LATEST_APK_URL = 'https://git.pontualtech.work/karlao/shivao-projeto/releases/download/v1.10.3/Shivao-v1.10.3.apk'; app.get('/apk', (req, res) => res.redirect(302, LATEST_APK_URL)); // Página A4 imprimível com QR Code + instruções (cola no barco/marina)