Podczas lektury instrukcji obsługi urządzeń lub naszych przewodników mogą Państwo napotkać mniej znane pojęcia, takie jak system dwójkowy (binarny), szesnastkowy (heksadecymalny), bit, bajt itp.
Oto krótki przewodnik po najczęściej stosowanych terminach, który ułatwi precyzyjną komunikację.
Wprowadzenie do liczb binarnych, dziesiętnych i szesnastkowych
Choć na początku może to brzmieć skomplikowanie, systemy dwójkowy, dziesiętny i szesnastkowy to w istocie po prostu różne sposoby zapisu wartości liczbowych.
Poniżej przedstawiono krótkie podsumowanie różnic między nimi.
System dziesiętny (decymalny)
System dziesiętny jest obecnie standardem powszechnie stosowanym na co dzień.
Określa się go mianem systemu o „podstawie 10”, ponieważ wykorzystuje 10 symboli: od 0 do 9.
Po osiągnięciu cyfry 9 pula symboli zostaje wyczerpana, dlatego dodaje się 1 cyfrę po lewej stronie i ponownie rozpoczyna liczenie od 0.
System dwójkowy (binarny)
Liczba binarna składa się wyłącznie z cyfr 0 i 1. Z tego względu jest to system o „podstawie 2”.
Oznacza to, że pojedyncza cyfra binarna może reprezentować zaledwie 2 różne wartości zamiast standardowych 10 cyfr.
Ogólna zasada liczenia w systemie binarnym jest taka sama jak w systemie dziesiętnym: zlicza się wartości do wartości tuż przed osiągnięciem „podstawy”, po czym następuje powrót do 0, z uprzednim dodaniem 1 do pozycji po lewej stronie.
| Binarny: | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 | 1001 | 1010 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Dziesiętny: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
System szesnastkowy (heksadecymalny)
Liczby szesnastkowe stanowią interesujące rozwiązanie, ponieważ opierają się na systemie o „podstawie 16”.
Do wartości 9 zapis jest identyczny jak w systemie dziesiętnym, natomiast liczby dziesiętne od 10 do 15 zastąpiono literami („A”, „B”, „C”, „D”, „E”, „F”).
Pojedyncza cyfra szesnastkowa może reprezentować 16 różnych wartości, zamiast tradycyjnych 10 cyfr.
Podobnie jak wcześniej, po wyczerpaniu dostępnych symboli (po osiągnięciu litery F) liczenie zaczyna się ponownie od 0, z dopisaniem 1 na kolejnej pozycji po lewej stronie.
| Szesnastkowy: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Dziesiętny: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Zobacz to w praktyce
Wybierz jeden z poniższych systemów i zobacz, jak liczy:
Konwersja między systemami
Jeśli pasjonuje Cię matematyka, możesz dowiedzieć się, jak konwertować liczby między różnymi systemami liczbowymi.
Najprostszym sposobem jest jednak skorzystanie z internetowego narzędzia Number Converter.
Bity a bajty
Bity i bajty są często mylone, lecz w rzeczywistości istnieje między nimi znacząca różnica.
Bit to najmniejsza jednostka informacji, którą można zapisać lub przetwarzać w komputerze. Zapisany w postaci liczbowej bit może przyjmować wartość „1” (jeden) lub „0” (zero).
Z kolei bajt jest znacznie większy – zawiera osiem bitów. Z matematycznego punktu widzenia n bitów daje 2 ^ n kombinacji, więc bajt może pomieścić liczbę z zakresu od 0 do 255.
| bit | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|---|
| 2 ^ 0 | 2 ^ 1 | 2 ^ 2 | 2 ^ 3 | 2 ^ 4 | 2 ^ 5 | 2 ^ 6 | 2 ^ 7 | |
| wartość | 0 | 2 | 4 | 8 | 16 | 32 | 64 | 128 |
Warto pamiętać, że skrót dla bajtów zapisuje się wielką literą B, natomiast dla bitów – małą literą b. Z tego względu Mbps oznacza megabity na sekundę, a MBps – megabajty na sekundę.
Podsumowanie
Możesz się zastanawiać, dlaczego omawialiśmy bity, bajty i te wszystkie różne systemy liczbowe.
Podczas dodawania parametru urządzenia należy wybrać jego rozmiar danych (Data Size). Uwzględniając 1, 2 lub 4 bajty oraz format Hex lub Dec, do wyboru jest 6 opcji.
Kuszące może być wybranie pierwszej dostępnej opcji i przejście dalej, jednak nieprawidłowy parametr Data Size nie zadziała w ogóle, a w niektórych przypadkach może uniemożliwić prawidłowe funkcjonowanie samego urządzenia.
Rozmiar danych
Pierwszą rzeczą, o której należy wiedzieć, jest to, że o ile nie określono inaczej, wszystkie parametry mają format 1 byte decimal (1-bajtowy dziesiętny).
Istnieją jednak urządzenia wymagające innych rozmiarów danych. Z tego względu niezwykle ważne jest dokładne zapoznanie się z instrukcją obsługi urządzenia przed wprowadzeniem jakichkolwiek zmian.
Dokładamy wszelkich starań, aby na wszystkich stronach produktów znajdowały się aktualne instrukcje.
W rzadkich przypadkach, gdy brakuje instrukcji lub zawarte w niej informacje nie są wystarczająco jasne, sugerujemy wyszukanie urządzenia w bazie danych pepper1 Z-wave lub na stronie Z-Wave Alliance.
Wartości ujemne
Powszechną praktyką jest używanie znaku minus do oznaczania ujemnych liczb całkowitych. Komputery mogą jednak przechowywać informacje wyłącznie w postaci bitów, które – jak wiemy – mogą przyjmować jedynie wartości zero lub jeden. Dlatego zapis ujemnych liczb całkowitych w parametrze wymaga innego podejścia.
Nie wchodząc w szczegóły, jednym ze sposobów przechowywania wartości ujemnych jest zastosowanie konwencji kodu uzupełnień do dwóch (U2), w której wartości ujemne są reprezentowane przez uzupełnienie do dwóch ich własnej wartości. Oznacza to zasadniczo, że liczby posiadające „1” na najbardziej znaczącym bicie (po lewej stronie) są ujemne.
Aby ustawić wartości ujemne w parametrze, należy wziąć wartość maksymalną (w zależności od rozmiaru parametru, tj. 1, 2 lub 4 bajty) i odjąć pożądaną wartość.
Przykłady
Wszystko łatwiej zrozumieć na przykładzie, przyjrzyjmy się więc kilku popularnym urządzeniom, które wymagają wykonania prostych operacji bitowych przed ustawieniem parametrów.
Philio Multisensor GEN5
Wystarczy rzut oka na instrukcję Philio Multisensor, aby natychmiast zauważyć, że większość wartości parametrów nie jest standardowym formatem 1 byte decimal.
Weźmy jako przykład Parametr 7. Uwaga: w tym przykładzie użyjemy parametrów PST02-1A.
Musimy włączyć Binary Sensor Report Command Class i sprawić, aby urządzenie zgłaszało stan „clear” po wykryciu ruchu, co pozwoli na poprawną pracę czujników ruchu i kontaktronowych w większości kontrolerów Z-Wave.
Aby to zrobić, należy aktywować bit 1 oraz bit 4 i dodać je do aktywowanego już domyślnie bitu 2.
Przekłada się to na działanie: (2 ^ 1) + (2 ^ 2) + (2 ^ 4) = 22
Nasz parametr 1 byte decimal powinien zatem zostać ustawiony na wartość 22.
Aeon Clamp Meter
Parametry w formacie 4 byte decimal stosowane w urządzeniu Aeon Clamp Meter mogą być bardziej złożone w porównaniu z parametrami 1-bajtowymi.
Jako przykład załóżmy, że chcemy skonfigurować to urządzenie w wersji jednoklamrowej (Single Clamp). Jak opisano tutaj, Parametr 103 powinien mieć wartość 2304 – dlaczego akurat tyle?
Zaglądając do instrukcji, na stronie 7 znajdziemy tabelę przedstawiającą wszystkie możliwe opcje dla wartości od Value 1 do 4.
Wynika z niej również, że Value 1 to MSB (najbardziej znaczący bit / bajt), a Value 4 to LSB (najmniej znaczący bit / bajt).
Mając tę wiedzę, możemy zastosować tę samą logikę, co poprzednio, zaczynając od bitu LSB (Value 4). Wygląda to następująco:
| Value 1 (MSB) | ||||||||
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Wartość | 2147483648 | 1073741824 | 536870912 | 268435456 | 134217728 | 67108864 | 33554432 | 16777216 |
| Wartość 2 | ||||||||
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Wartość | 8388608 | 4194304 | 2097152 | 1048576 | 524288 | 262144 | 131072 | 65536 |
| Wartość 3 | ||||||||
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Wartość | 32768 | 16384 | 8192 | 4096 | 2048 | 1024 | 512 | 256 |
| Wartość 4 (LSB) | ||||||||
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Wartość | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Aby otrzymywać raporty dotyczące Watt oraz kWh, musimy włączyć bit 0 i bit 3 w Value 3.
Daje nam to: 2048 + 256 = 2304
Zatem nasz 4-bajtowy parametr dziesiętny powinien być ustawiony na 2304.
Aeon Siren GEN5
2-bajtowy dziesiętny Parameter 37 w urządzeniu Aeon Siren GEN5 może, jak wiemy, przechowywać dwa bajty lub 16 bitów.
Pozwala to na ustawienie różnych dźwięków oraz regulację głośności w ramach jednego parametru.
Patrząc do instrukcji, widzimy, że Value 1 ma 6 możliwych ustawień, natomiast Value 2 ma 4. Przekłada się to na:
| Value 1 (MSB) | |||||
| Sound 5 | Sound 4 | Sound 3 | Sound 2 | Sound 1 | |
| Bit | 4 | 3 | 2 | 1 | 0 |
| Value | 4096 | 2048 | 1024 | 512 | 256 |
| Value 2 (LSB) | |||||
| Volume 3 | Volume 2 | Volume 1 | |||
| Bit | 2 | 1 | 0 | ||
| Value | 4 | 2 | 1 | ||
Firma Aeon zastosowała jednak w tym parametrze inną logikę, co może nieco utrudnić zrozumienie zagadnienia. Zgodnie z instrukcją mamy:
- Value 1
- 0 – brak zmiany bieżącego dźwięku syreny
- 1 – wybrany dźwięk syreny 1
- 2 – wybrany dźwięk syreny 2
- 3 – wybrany dźwięk syreny 3
- 4 – wybrany dźwięk syreny 4
- 5 – wybrany dźwięk syreny 5
- Value 2
- 0 – brak zmiany bieżącej głośności
- 1 – ustawienie głośności na 88 dB
- 2 – ustawienie głośności na 100 dB
- 3 – ustawienie głośności na 105 dB
Są to wartości dziesiętne, lecz są one stosowane z uwzględnieniem ich rozmieszczenia w ramach wartości 2-bajtowej.
Ponieważ wartości dźwięku i głośności są wprowadzane jako pojedynczy parametr 2-bajtowy, musimy odpowiednio przekonwertować układy bitów.
Najłatwiej to zrozumieć na przykładzie:
- Spójrzmy na dźwięk syreny Sound 4; według instrukcji jego wartość wynosi 4
- Teraz spójrz na powyższy wzorzec wartości 8-bitowej – który „bit” należy zaznaczyć, aby uzyskać wartość 4? Odpowiedź to bit 2
- A jaką wartość ma bit 2 w drugim bajcie wartości 2-bajtowej? Odpowiedź to 1024
Jeśli brzmi to skomplikowanie – rzeczywiście może takie być :-)
Przyjrzyjmy się drugiemu przykładowi:
- Spójrz na Sound 3 syreny o wartości 3
- Który „bit” należy zaznaczyć, aby uzyskać wartość 3? Należy aktywować bit 0 i 1 (1 + 2)
- Jaka jest suma wartości bitu 0 i 1 w standardowym wzorcu wartości 8-bitowej? Odpowiedź to 768 (512 + 256)
Uwaga: pełną listę wartości dziesiętnych do zastosowania z Aeon Siren zawiera ten przewodnik Parametry 31-36 umożliwiają użytkownikowi tworzenie sekwencji dwóch lub trzech gestów w celu rozszerzenia liczby dostępnych akcji.
Są to 2-bajtowe parametry dziesiętne, w których każdy gest zajmuje 4 bity.
Każdy gest można zidentyfikować następująco:
Fibaro Swipe
| Wartość | 4 bity | Gest |
| 0 | 0000 | pusty |
| 1 | 0001 | ^ |
| 2 | 0010 | v |
| 3 | 0011 | < |
| 4 | 0100 | > |
Wzorzec bitowy sekwencji można zinterpretować następująco:
| Wartość 1 (MSB) – zarezerwowane | ||||
| Bit | 3 | 2 | 1 | 0 |
| Wartość | 32768 | 16384 | 8192 | 4096 |
| Wartość 2 – pierwszy gest | ||||
| Bit | 3 | 2 | 1 | 0 |
| Wartość | 2048 | 1024 | 512 | 256 |
| Wartość 3 – drugi gest | ||||
| Bit | 3 | 2 | 1 | 0 |
| Wartość | 128 | 64 | 32 | 16 |
| Wartość 4 (LSB) – trzeci gest | ||||
| Bit | 3 | 2 | 1 | 0 |
| Wartość | 8 | 4 | 2 | 1 |
Aby utworzyć sekwencję ^ (w górę) > (w prawo) < (w lewo):
- Wartość 1 jest zarezerwowana, więc jej wartość wynosi 0
- Wartość 2 to „w górę”, dlatego należy aktywować bit 0 (0001) = 256
- Wartość 3 to „w prawo”, dlatego należy aktywować bit 2 (0100) = 64
- Wartość 4 to „w lewo”, dlatego należy aktywować bity 0 i 1 (0011) = 2 + 1
Po zsumowaniu wszystkich wartości otrzymujemy 323.
Fibaro Motion Sensor GEN5
2-bajtowy dziesiętny Parametr 66 urządzenia Fibaro Motion Sensor GEN5 może przechowywać dwa bajty lub 16 bitów, co umożliwia ustawienie przesunięcia temperatury od -100 do 100 ºC z krokiem co 0.1ºC.
Aby ustawić przesunięcie temperatury równe -2.0 ºC, należy odjąć pożądaną wartość bezwzględną (20) od maksymalnej wartości, jaką może przyjąć Parametr (2^16).
Przekłada się to na (2^16) – 20 = 65516.
Zatem nasz 2-bajtowy dziesiętny Parametr powinien zostać ustawiony na 65516.
Powiązane informacje
Copyright Vesternet 2017
Zaktualizowano: 07/11/2017