Kanał do pomiaru ciśnienia - jak uzyskać 3 kreski w apce
-
Zybi
- Posts: 1511
- Joined: Sun Jun 26, 2016 4:24 pm
Jakie wartości należy przesłać do serwera, aby w apce na smartfonie wyświetlały się 3 kreski dla kanału do pomiaru ciśnienia. Tak jak na przykład dla kanału do pomiaru temperatury wartość -275 lub dla wilgotności -1 ?
-
Robert Błaszczak
- Posts: 5222
- Joined: Sat Dec 22, 2018 8:55 pm
- Location: Zielona Góra
- Has thanked: 37 times
- Been thanked: 27 times
Jeśli to ma być kanał pomiaru ciśnienia, to nie ma wartości, dla której miałyby się pojawić kreski. Inna sprawa w przypadku ciśnienia atmosferycznego.
Pozdrawiam
Robert Błaszczak
Moja prywatna strona: www.blaszczak.pl
Robert Błaszczak
Moja prywatna strona: www.blaszczak.pl
-
Zybi
- Posts: 1511
- Joined: Sun Jun 26, 2016 4:24 pm
A niby dlaczego nie. Na przykład wartości spoza zakresów pomiarowych czujników, lub dla absurdalnych wartości.Robert Błaszczak wrote: Fri Jan 17, 2020 9:40 am Jeśli to ma być kanał pomiaru ciśnienia, to nie ma wartości, dla której miałyby się pojawić kreski. Inna sprawa w przypadku ciśnienia atmosferycznego.
IMO -1 byłoby dobrą wartością dla takiego rozwiązania.
-
klew
- Posts: 13908
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 134 times
- Been thanked: 137 times
Ja widzę następujące opcje:
1. Dodanie na sztywno dla każdego typu kanału jakiejś "magicznej"" wartości, która oznacza błąd. Wartość kanału jest przesyłana jako 8 bajtów (czasami jest to interpretowane jako dwie wartości po 4 bajty). Przykładowo można na ten cel poświęcić ciąg wypełnony 0xFF. Niewielka strata, bo to i tak jest ekstremalnie mało prawdopodobna wartość. Do tego można zabezpieczyć się po stronie urządzenia, że gdyby odczyt miał dać taką wartość, to do serwera wysyłamy "wartość - 1", czyli gdzieś pojawi się 0xFE zamiast 0xFF.
Ciekawostka: DS18B20 używa wartości "85.0" do sygnalizowania niektórych problematycznych sytuacji. Aktualna biblioteka SuplaDevice na Arduino taką wartość wyłapuje i zamienia na "---", co w sumie wyklucza pojawienie się prawdziwego pomiaru o tej wartości temperatury.
2. Zmiana po stronie serwera i cloud - dodanie możliwości ustawienia "magicznej" wartości, która dla tego kanału będzie oznaczała "---". Tylko wtedy użytkownik musi wiedzieć jaką wartość zgłasza urządzenie w przypadku braku/błędu pomiaru. Minus tego rozwiązania jest taki, że pewnie każdy się w tym pogubi
,
3. Zmiana w strukturze TDS_SuplaDeviceChannelValue i dodanie tam dodatkowego pola na jakieś "flagi", sygnalizację błędów, itp.
4. Rozszerzenie TDSC_ChannelState o informację o dostępności mierzonej wartości (flagi sygnalizujące błędy).
1. Dodanie na sztywno dla każdego typu kanału jakiejś "magicznej"" wartości, która oznacza błąd. Wartość kanału jest przesyłana jako 8 bajtów (czasami jest to interpretowane jako dwie wartości po 4 bajty). Przykładowo można na ten cel poświęcić ciąg wypełnony 0xFF. Niewielka strata, bo to i tak jest ekstremalnie mało prawdopodobna wartość. Do tego można zabezpieczyć się po stronie urządzenia, że gdyby odczyt miał dać taką wartość, to do serwera wysyłamy "wartość - 1", czyli gdzieś pojawi się 0xFE zamiast 0xFF.
Ciekawostka: DS18B20 używa wartości "85.0" do sygnalizowania niektórych problematycznych sytuacji. Aktualna biblioteka SuplaDevice na Arduino taką wartość wyłapuje i zamienia na "---", co w sumie wyklucza pojawienie się prawdziwego pomiaru o tej wartości temperatury.
2. Zmiana po stronie serwera i cloud - dodanie możliwości ustawienia "magicznej" wartości, która dla tego kanału będzie oznaczała "---". Tylko wtedy użytkownik musi wiedzieć jaką wartość zgłasza urządzenie w przypadku braku/błędu pomiaru. Minus tego rozwiązania jest taki, że pewnie każdy się w tym pogubi
3. Zmiana w strukturze TDS_SuplaDeviceChannelValue i dodanie tam dodatkowego pola na jakieś "flagi", sygnalizację błędów, itp.
4. Rozszerzenie TDSC_ChannelState o informację o dostępności mierzonej wartości (flagi sygnalizujące błędy).
Najlepsze suple dla Twojego domu 
-
Yepestis
- Posts: 890
- Joined: Mon Sep 24, 2018 6:08 pm
- Location: Wrocław
- Has thanked: 19 times
- Been thanked: 3 times
Czy przewidziano takie zagadnienie w kanale pomiarowym ogólnego przeznaczenia (viewtopic.php?f=17&t=5225)?
Może tam ten problem został już rozwiązany i wystarczy zaczerpnąć z tego rozwiązania.
Może tam ten problem został już rozwiązany i wystarczy zaczerpnąć z tego rozwiązania.
