När du läser igenom enhetsmanualer eller våra egna guider kan du stöta på termer som du kanske inte är bekant med, såsom binär, hexadecimal, bit, byte osv.
Detta är en snabbguide till de vanligaste termerna så att vi talar samma språk.
Introduktion till binära, decimala och hexadecimala tal
Även om det kan verka förvirrande till en början, är binära, decimala och hexadecimala tal i grunden bara olika sätt att representera ett tal på.
Låt oss ta en snabb titt på skillnaderna mellan dem.
Decimalt
Det finns inte mycket att tillägga om det decimala talsystemet, eftersom det är det system som används mest i dag.
Det kallas ett ”bas 10”-system eftersom det finns 10 symboler som kan användas: 0–9.
När du når 9 tar symbolerna slut, så du lägger till 1 siffra till vänster och börjar om från 0.
Binärt
Ett binärt tal består endast av 0:or och 1:or. Av den anledningen kallas det ett ”bas 2”-system.
Detta innebär att en enskild binär siffra endast kan representera 2 olika värden istället för de vanliga 10 siffrorna.
Den generella regeln för att räkna i det binära systemet är densamma som i det decimala systemet: räkna upp till precis innan ”basen”, börja sedan om på 0, men lägg först till 1 till siffran till vänster.
| Binärt: | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 | 1001 | 1010 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Decimalt: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
Hexadecimalt
Hexadecimala tal är särskilt intressanta med tanke på att det är ett ”bas 16”-system.
De ser ut som de decimala talen upp till 9, men därefter följer bokstäverna ("A", "B", "C", "D", "E", "F") istället för de decimala talen 10 till 15.
En enskild hexadecimal siffra kan representera 16 olika värden istället för de vanliga 10 siffror vi är vana vid.
Återigen, när symbolerna tar slut (när vi når F) börjar vi om på 0 och lägger till 1 på nästa position till vänster.
| Hexadecimalt: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Decimalt: | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Se det i praktiken
Välj ett av systemen nedan och se hur det räknar:
Konvertering mellan system
Om du är intresserad av matematik kan du lära dig hur man konverterar tal mellan olika baser.
Det enklaste sättet är dock att använda en talkonverterare online.
Bitar kontra byte
Bitar och byte förväxlas ofta, men i själva verket är det stor skillnad mellan dem.
En bit är den minsta informationsenheten som kan lagras eller hanteras på en dator. När bitar representeras som ett tal kan de ha ett värde på antingen ”1” (ett) eller ”0” (noll).
En byte å andra sidan är mycket större och innehåller åtta bitar. Matematiskt ger n bitar upphov till 2 ^ n kombinationer, vilket innebär att en byte kan innehålla ett tal mellan 0 och 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 | |
| värde | 0 | 2 | 4 | 8 | 16 | 32 | 64 | 128 |
Det är viktigt att veta att byte förkortas med ett stort B, medan bitar förkortas med ett litet b. Därför är Mbps megabit per sekund, och MBps är megabyte per sekund.
Sammanfattning
Du kanske undrar varför vi har pratat om bitar, byte och alla dessa olika talsystem.
När du lägger till en enhetsparameter måste du välja dess datastorlek. Mellan 1, 2 eller 4 byte och Hex eller Dec finns det 6 alternativ att välja mellan.
Du kan känna dig frestad att bara välja det första alternativet och gå vidare, men en felaktig datastorleksparameter kommer inte att fungera alls och kan i vissa fall förhindra att själva enheten fungerar korrekt.
Datastorlek
Det första man bör veta är att om inget annat anges är alla parametrar 1 byte decimalt.
Det finns dock vissa enheter som kräver andra datastorlekar. Av den anledningen är det ytterst viktigt att noggrant läsa igenom enhetens manual innan några ändringar utförs.
Vi gör vårt bästa för att hålla alla produktsidor uppdaterade med aktuella manualer.
I de sällsynta fall då vi saknar en manual eller informationen i den inte är tillräckligt tydlig rekommenderar vi att söka efter din enhet i databasen pepper1 Z-wave database eller på webbplatsen för Z-Wave Alliance.
Negativa värden
Det faller sig naturligt att använda ett minustecken för att ange ett negativt heltal. Datorer kan dock endast lagra information i bitar, vilka som bekant endast kan anta värdena noll eller ett. Därför kräver lagring av negativa heltal i en parameter en annan metod.
Utan att gå in på tekniska detaljer är ett sätt att lagra negativa värden att använda konventionen för tvåkomplement, där negativa värden representeras av tvåkomplementet av sitt eget värde. Detta innebär i praktiken att tal som har en ”1” i den mest signifikanta biten längst till vänster är negativa.
För att ställa in negativa värden på en parameter tar man det maximala värdet (beroende på parameterns storlek, dvs. 1, 2 eller 4 byte) och subtraherar det önskade värdet.
Exempel
Allt blir lättare att förstå med ett exempel, så låt oss titta på några vanliga enheter som kräver lite bitberäkning innan deras parametrar ställs in.
Philio Multisensor GEN5
En snabb titt i manualen för Philio Multisensor visar omedelbart att de flesta av dess parametervärden inte är den vanliga datatypen 1 byte decimalt.
Låt oss ta Parameter 7 som ett exempel. Observera: i detta exempel använder vi parametrarna för PST02-1A.
Vi behöver aktivera Binary Sensor Report Command Class och få enheten att rapportera ”clear” efter en rörelsehändelse för att få både rörelse- och magnetsensorerna att fungera i de flesta Z-Wave-styrenheter.
För att göra detta behöver vi aktivera bit 1 och bit 4 och addera det till bit 2, som redan är aktiverad som standard.
Detta översätts till: (2 ^ 1) + (2 ^ 2) + (2 ^ 4) = 22
Vår parameter på 1 byte decimalt ska alltså ställas in på 22.
Aeon Clamp Meter
De parametrar på 4 byte decimalt som används av Aeon Clamp Meter kan vara knepiga jämfört med en parameter på 1 byte decimalt.
Låt oss som ett exempel säga att vi vill konfigurera Single Clamp-versionen av denna enhet. Vi har lärt oss här att Parameter 103 bör sättas till 2304, men varför är det så?
Om vi tittar i manualen kan vi på sidan 7 se en tabell som visar alla tillgängliga alternativ för Value 1 till 4.
Den visar också att Value 1 är MSB (Most Significant Bit) och Value 4 är LSB (Least Significant Bit).
Med vetskap om detta kan vi tillämpa samma logik som vi använde tidigare, med början från LSB-biten (Value 4). Detta översätts till:
| Value 1 (MSB) | ||||||||
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Värde | 2147483648 | 1073741824 | 536870912 | 268435456 | 134217728 | 67108864 | 33554432 | 16777216 |
| Värde 2 | ||||||||
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Värde | 8388608 | 4194304 | 2097152 | 1048576 | 524288 | 262144 | 131072 | 65536 |
| Värde 3 | ||||||||
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Värde | 32768 | 16384 | 8192 | 4096 | 2048 | 1024 | 512 | 256 |
| Värde 4 (LSB) | ||||||||
| Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| Värde | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
För att få rapporter för Watt och kWh behöver vi aktivera bit 0 och bit 3 på Value 3.
Detta ger oss: 2048 + 256 = 2304
Så vår 4 byte decimal-parameter bör ställas in på 2304.
Aeon Siren GEN5
Den 2 byte decimal Aeon Siren GEN5 Parameter 37 kan lagra två byte eller 16 bitar som bekant.
Detta gör att vi kan ställa in olika ljud och justera volymen i en och samma parameter.
Om vi tittar i manualen ser vi att Value 1 har 6 möjliga inställningar medan Value 2 har 4. Detta motsvarar:
| 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 | ||
Aeon har dock tillämpat en annan logik för denna parameter, vilket kan göra det något mer komplicerat att förstå. Om vi tittar i manualen har vi:
- Value 1
- 0 – ändra inte aktuellt sirenljud
- 1 – sirenljud 1 är valt
- 2 – sirenljud 2 är valt
- 3 – sirenljud 3 är valt
- 4 – sirenljud 4 är valt
- 5 – sirenljud 5 är valt
- Value 2
- 0 – ändra inte aktuell volym
- 1 – ställ in volymen på 88 dB
- 2 – ställ in volymen på 100 dB
- 3 – ställ in volymen på 105 dB
Dessa är decimalvärdena, men de tillämpas med hänsyn till att de är fördelade över ett 2-bytevärde.
Eftersom värdena för ljud och volym tillämpas som en enda 2-byteparameter måste vi konvertera bitmönstren på lämpligt sätt.
Det är förmodligen lättare att förstå med ett exempel:
- Titta på sirenljud Sound 4; manualen anger att dess värde är 4
- Titta nu på 8-bitars värdemönstret ovan – vilken "bit" skulle vi markera för att få ett värde på 4? Svaret är bit 2
- Och vilket värde har bit 2 i den andra byten av ett 2-bytesvärde? Svaret är 1024
Om detta låter komplicerat så kan det vara det :-)
Låt oss titta på ett andra exempel:
- Titta på sirenens Sound 3 med värde 3
- Vilken "bit" skulle vi markera för att få ett värde på 3? Vi behöver aktivera bit 0 och 1 (1 + 2)
- Vad är summan av värdet för bit 0 och 1 i ett standard 8-bitars värdemönster? Svaret är 768 (512 + 256)
Obs! För en fullständig lista över decimalvärdena som ska användas med Aeon Siren, se denna guide Parameter 31-36 gör det möjligt för användaren att skapa sekvenser av två eller tre gester för att utöka antalet möjliga åtgärder.
Dessa är decimalparametrar på 2 byte där varje gest tar 4 bitar.
Varje gest kan identifieras enligt följande:
Fibaro Swipe
| Värde | 4 bitar | Gest |
| 0 | 0000 | tom |
| 1 | 0001 | ^ |
| 2 | 0010 | v |
| 3 | 0011 | < |
| 4 | 0100 | > |
Sekvensens bitmönster kan översättas enligt följande:
| Value 1 (MSB) – reserverad | ||||
| Bit | 3 | 2 | 1 | 0 |
| Värde | 32768 | 16384 | 8192 | 4096 |
| Value 2 – första gesten | ||||
| Bit | 3 | 2 | 1 | 0 |
| Värde | 2048 | 1024 | 512 | 256 |
| Värde 3 – andra gesten | ||||
| Bit | 3 | 2 | 1 | 0 |
| Värde | 128 | 64 | 32 | 16 |
| Värde 4 (LSB) – tredje gesten | ||||
| Bit | 3 | 2 | 1 | 0 |
| Värde | 8 | 4 | 2 | 1 |
För att skapa sekvensen ^ (uppåt) > (höger) < (vänster):
- Värde 1 är reserverat, så dess värde är 0
- Värde 2 är "uppåt", så vi aktiverar bit 0 (0001) = 256
- Värde 3 är "höger", så vi aktiverar bit 2 (0100) = 64
- Värde 4 är "vänster", så vi aktiverar bit 0 och 1 (0011) = 2 + 1
Om vi summerar alla värden får vi 323.
Fibaro Motion Sensor GEN5
Det 2-byte decimala parametervärdet för Fibaro Motion Sensor GEN5 Parameter 66 kan lagra två byte eller 16 bitar, vilket gör det möjligt att ställa in en temperaturkalibrering (offset) från -100 till 100 ºC i steg om 0,1 ºC.
För att ställa in en temperaturkalibrering på -2,0 ºC subtraherar du det önskade absolutvärdet (20) från det maximala värdet som parametern kan anta (2^16).
Detta motsvarar (2^16) – 20 = 65516.
Så vår 2-byte decimala parameter ska ställas in på 65516.
Relaterad information
Copyright Vesternet 2017
Uppdaterad: 07/11/2017