» Poradna » Ostatní

Esp32 ble

 |   |  Microsoft Windows 10 Chrome 100.0.4896.75

Ahoj, programuji 2 ks ESP32 v Arduino IDE a komunikaci mezi nimi. Prakticky vše funguje dle návodu v tomto odkazu:https://randomnerdtutorials.com/esp32-ble-server-client/Problém mám v případě kde na serveru upravím kód a chci mít hodnoty pouze na jedno desetinné místo tedy třeba u vlhkosti:static char humidityTemp[6]; dtostrf(hum, 6, 1, humidityTemp);-problém zde je že mi na displeji posune zobrazení o jedno místo doprava. Ok tedy zadám aby příkaz dtostrf řadil z leva tedy:static char humidityTemp[6]; dtostrf(hum, -6, 1, humidityTemp);-bohužel v tu chvíli je zobrazení na svém místě ale za hodnotou se na displeji který je připojen na klienta objeví znak "?". To samé když hodnoty pole měním na menší atd., zkoušel jsem snad všechny kombinace příkazu dtostrf ale vždy otazník na konci jen když dám ty první hodnoty je to v pořádku ale posunuté doprava o znak. Kontroloval jsem v mobilu pomocí sceneru co mi z toho leze za hodnoty a úplně v pořádku Value: (0x) 36-34-2-34, "64,4" tedy přesně to co potřebuji. Ale na straně klienta je po překladu na konci otazník. Jediná změna oproti programu odkazu je výměna knihovny pro displej za u8g2.lib. Nenapadá někdo kde se tam ten otazník bere?

Odpovědi na otázku

 |   |  Microsoft Windows 10 Chrome 100.0.4896.75

Vypadá to jako by na straně klienta očekával prostě 2 desetinná místa a když nedostane hodnotu hodí tam otazník ale v kodu klienta nic takového nevidím. Zde podrobnosti o příkazu dtostrf:https://www.programmingelectronics.com/dtostrf/

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Chrome 102.0.5005.63

A terminál na sériové lince u klienta ti ukazuje co?Pro přesnou analýzu by asi bylo potřeba poslat nejen znaky, ale i jejich kody hlavně tě zajímá 5kod správně by měl být 00, pokud je tam cokoliv jiného nejspíš 01-31 nebo 128+ může to dávat ten otazník jako neznámý znak.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 102.0.5005.63

tak si tu hodnotu uprav sám na jedno desetinný místo a je to .. požaduj 2 desetinný místa a uprav si sám výsledek před tim než to pošleš dál

Souhlasím  |  Nesouhlasím  |  Odpovědět

Související témata: Doprava, Mira, Otazník, Char, Jediná změna, Desetinné místo