Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lat/Lon precyzja float (Airmonitor) #49

Closed
turonl opened this issue Oct 1, 2019 · 4 comments
Closed

Lat/Lon precyzja float (Airmonitor) #49

turonl opened this issue Oct 1, 2019 · 4 comments
Labels

Comments

@turonl
Copy link

turonl commented Oct 1, 2019

Jest problem ze współpracą z Airmonitor'em związany z niezgadzającymi się współrzędnymi geograficznymi, które muszą być identyczne z tymi podanymi w ankiecie do AM.
W Smogomierzu przechowywane są jako float - co powoduje, że nie zawsze to co wpiszemy w formularzu zgadza się z tym co jest zapisane/wysyłane.
Teoretycznie z float single precission wpisanie 50.007944 spowoduje zapisanie liczby 50.00794219 co przy konwersji na Stringa da nam prawdopodobnie 50.007942 i taka wartość powinna się pojawić po resecie/ czy tez jest wysyłaną do AM (nie mam teraz wersji Smogomierza z float aby to sprawdzić).

Ponieważ w kodzie Smogomierza Lat/Lon nie są używane w obliczeniach - a tylko konwertowane na String i z powrotem - proponuje zmienić wewnętrzna reprezentacje lat/lon na char[256] lub nieco mniejszy i pozbyć się konwersji do/z float.

Sprawdziłem to na moim Smogomierzu (LATITUDE, LONGTITUFE i ALTITUDE zmienione na char[256]) i współpraca z Airmonitorem działa bezbłędnie. W razie potrzeby mogę przygotować patcha/branch z potrzebnymi zmianami.

Poniżej cytat z korespondencji z twórcami Airmonitor:
"Aktualnie występują pewne nieścisłości w wykorzystywaniu firmware smogomierz, który nieprawidłowo zaokrągla wartości lat/long.
Jeśli korzystasz ze smogomierza to przejdź na wykresy prezentujące pomiary i kliknij prawym przyciskiem myszki na danym wykresie aby skopiować link.
Przykład: http://metrics.airmonitor.pl:3000/d-solo/000000002/airmonitor?orgId=1&var-latitude=52.294800&var-longitude=20.881800&refresh=1m&panelId=14
W tym linku zauważysz, że znajduje się lat oraz long, które są wysyłane do serwisu airmonitor. Te wartosci należy wpisać we formularz, a zauważysz samemu, że różnią się one od tych, które sam wpisałeś w smogomierzu."

Pozdrawiam,
Lukasz

@bfaliszek
Copy link
Member

bfaliszek commented Oct 1, 2019

Hej, zmieniłem float na char w kodzie. Jeśli miałbyś chwilę to możesz zerknąć czy masz tak samo - a4f62a3
Plus wrzuciłem .bin z tym kodem do branchu dev - https://github.com/hackerspace-silesia/Smogomierz/tree/dev/firmware
Pod koniec tygodnia chciałbym oficjalnie puścić 2.7.2 z tą poprawką.

@turonl
Copy link
Author

turonl commented Oct 1, 2019 via email

@bfaliszek
Copy link
Member

Zmieniłem altitude z char na int - zajmuje mniej miejsca w pamięci, a tutaj nie jest potrzebna aż taka dokładność. Zresztą już wcześniej przed zapisem w pamięci ESP, zmieniałem tę wartość na inta.
0faa462

bfaliszek added a commit that referenced this issue Oct 4, 2019
+ changed LATITUDE / LONGITUDE format from float to char - #49
+ fixed broadcasting unwanted open wifi network - #47
@bfaliszek
Copy link
Member

838b7cd

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants