Kanał do pomiaru ciśnienia - jak uzyskać 3 kreski w apce
W tym przypadku --- pojawiają się tylko w momencie gdy kanał jest offline
czy sugestia będzie zrealizowana?
https://gui-generic-builder.supla.io/
- Robert Błaszczak
- Posty: 4008
- Rejestracja: sob gru 22, 2018 8:55 pm
- Lokalizacja: Zielona Góra
- Kontakt:
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
A niby dlaczego nie. Na przykład wartości spoza zakresów pomiarowych czujników, lub dla absurdalnych wartości.Robert Błaszczak pisze: ↑pt sty 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.
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).
Widzimy się na Supla Offline Party vol. 2
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.
Można dodać do aplikacji <= -1 dla błędnego ciśnienia wtedy będą ---.
Kwestia umowna
Kwestia umowna