J’ai rajouté un bout de code (dégeux) pour faire quelques essais :
GPS et SDCard désactivés.
#ifdef HAVE_BLUETOOTH
if(millis() - lastSendBluetooth > 100){
//$LK8EX1,pressure(Pa),altitude(m),vario(cm/s),temperature(°C),battery(volt or %+1000),*checksum
//sprintf(paquetBluetooth,"LK8EX1,%lu,%i,%i,%i,999",(unsigned long)(ms5611_getPressure()*100),(int)kalmanvert.getPosition(),(int)(kalmanvert.getVelocity()*100),(int)ms5611_getTemperature());
//$LXWP0,loger_stored (Y/N), IAS (kph), baroaltitude (m), vario (m/s),,,,,,heading of plane,windcourse (deg),windspeed (kph)*CS
//sprintf(paquetBluetooth,"LXWP0,Y,0,%i,%i,,,,,,0,0,0",(int)kalmanvert.getPosition(),kalmanvert.getVelocity());
//Serial.print(F("$"));
//Serial.print(paquetBluetooth);
//Serial.print(F("*"));
for(int i=0;i<strlen(paquetBluetooth);i++){
CheckSum ^= paquetBluetooth[i];
}
//if (CheckSum<0x10) {Serial.print("0");}
//Serial.println(CheckSum, HEX);
//PRS XXXXX\n
Serial.print(F("PRS "));
Serial.println((unsigned long)(ms5611_getPressure()*100), HEX);
lastSendBluetooth = millis();
}
#endif //HAVE_BLUETOOTH
Envoie de 10 paquets par secondes. (testé à 1/s et 5/s)
Test sur XCSoar, XCTrack et FlyMe sur tablette.
Test avec les protocoles : LK8EX1, LXWP0 et PRS (BlueFly).
XCSoar :
LXWP0 et PRS fonctionnent.
XCTrack :
PRS fonctionne bien.
LK8EX1 fonctionne mais très mal, ça tourne à 1 point toute les 5-10s. Je pige pas !
Faut que je vérifie que je me plante pas dans le checksum ou autre.
FlyMe :
PRS fonctionne.
Donc on pourrai penser que le protocole BlueFly est le mieux psk il marche pour tous, sauf que. ça envoie que la pression en brut. Donc on perds le gros avantage de l’accelero et du filtre de kalman. D’ailleurs on le vois tout de suite, même si les valeurs sont bonnes, le vario ‘ram’ à l’affichage par rapport au son et l’indication sur l’écran.
J’ai du mal à comprendre que BlueFly n’envoie que la pression en brut dans son protocole. vmath54 t’as vu des choses dans le code de XCSoar ?