KB-104 - PARAMETERS VAN Z-WAVE APPARAAT - HEX, DEC, BINARY, BITS, BYTES ..... WAT?!?!

Tijdens het lezen van apparaathandleidingen of onze eigen gidsen kunt u enkele voorwaarden tegenkomen waarop u mogelijk niet bekend bent met zoals binair, hexadecimaal, bit, byte, etc.

Dit is een korte gids voor de gebruikte gemeenschappelijke termen, zodat we allemaal praten over dezelfde dingen.

Introductie tot binaire, decimale en hexadecimale nummers

Hoewel dit in het begin verwarrend kan klinken, zijn binair, decimaal en hexadecimaal in wezen verschillende manieren om een ​​nummer te schrijven.

Laten we snel de verschillen tussen hen bekijken.

Decimale

Er is niet veel te zeggen over het decimale systeem dat tegenwoordig het meest voorkomende gebruikte systeem is.

Het wordt een "genoemdBasis 10"Systeem omdat er 10 symbolen zijn die kunnen worden gebruikt: 0 - 9.

Zodra je 9 hebt bereikt je geen symbolen, dus voeg je 1 cijfer aan de linkerkant toe en start opnieuw om 0.

Binair

Een binair getal bestaat alleen uit 0s en 1s. Om die reden heet het een "Basis 2" systeem.

Dit betekent dat een enkel binair cijfer alleen kan worden weergegeven 2 verschillende waarden in plaats van de gebruikelijke 10 cijfers.

De algemene regel voor het tellen met behulp van het binaire systeem is hetzelfde als het decimale systeem: tellen tot net vóór de "basis" en begin opnieuw om 0 uur, maar eerst voegt u 1 toe aan het nummer aan uw linkerhand.


Binair: 0 1 10 11 100 101 110 111 1000 1001 1010
Decimale: 0 1 2 3 4 5 6 7 8 9 10

Hexadecimaal

Hexadecimaal nummer is vrij interessant, aangezien het een "isBasis 16" systeem.

Ze zien er hetzelfde uit als de decimale getallen tot 9, maar dan zijn er de letters ("A '," B "," C "," D "," E "," F ") in plaats van de decimale nummers 10 tot 15.

Een enkel hexadecimaal cijfer kan 16 verschillende waarden weergeven in plaats van de normale 10 cijfers die we gewend zijn.

Nogmaals zodra we geen symbolen hebben (wanneer we bereiken F) We beginnen met 0 en we voegen 1 toe aan de volgende positie aan de linkerkant.


Hexadecimaal: 0 1 2 3 4 5 6 7 8 9 EEN B C D E F
Decimale: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Zie het in actie

Kies een van de Systems-balg en kijk het tellen:

Conversie tussen systemen

Als je echt in wiskunde bent, kun je jezelf leren Hoe om te zetten nummers tussen verschillende basissystemen.

De eenvoudigste manier is echter om een ​​online te gebruiken Nummeromvormer.

Bits vs bytes

Bits en bytes zijn vaak in de war maar in feite is er een groot verschil tussen hen.

EEN beetje is de kleinste eenheid van informatie die op een computer kan worden opgeslagen of gemanipuleerd. Wanneer weergegeven als een getal, kunnen bits een waarde hebben van "1" (één) of "0" (nul).

Aan de andere kant een byte is veel groter, het bevat acht bits. Wiskundig n opleveren 2 ^ n patronen dus een byte kan een cijfer tussenhouden tussen 0 en 255.


beetje 0 1 2 3 4 5 6 7
  2 ^ 0 2 ^ 1 2 ^ 2 2 ^ 3 2 ^ 4 2 ^ 5 2 ^ 6 2 ^ 7
waarde 0 2 4 8 16 32 64 128

Het is belangrijk om te weten dat bytes worden afgekort met een hoofdstad B, waar als bits een kleine letters bt. Daarom is Mbps megabits per seconde, en Mbps is megabytes per seconde.

Alles samenbinden

Je kunt je afvragen waarom we hebben gesproken over bits, bytes en al die verschillende nummersystemen.

Bij het toevoegen van een apparaatparameter moet je het kiezen Gegevensgrootte. Tussen 1, 2 of 4 bytes en hex of decen zijn er 6 opties om uit te kiezen.

U kunt zich in de verleiding voelen om gewoon de eerste optie te kiezen en ermee verder te gaan, maar een verkeerde gegevensgrootteparameter zal helemaal niet werken en in sommige gevallen kan het apparaat zelf goed werken.

Gegevensgrootte

Het eerste ding om te weten is tenzij anders vermeld, zijn alle parameters 1 byte decimaal.

Er zijn echter enkele apparaten die andere gegevensformaten vereisen. Om die reden is het uiterst belangrijk om de handleiding van uw apparaten voorzichtig te lezen voordat u wijzigingen aanbrengt.

We doen ons best om alle productpagina's bij te houden up-to-date handleidingen.

Op de zeldzame gelegenheid die we een handleiding missen of de gepresenteerde informatie niet duidelijk genoeg is onze suggestie om naar uw apparaat te zoeken Pepper1 Z-Wave-database of de Z-Wave Alliance website.

Negatieve waarden

Het is gezond verstand om een ​​minteken te gebruiken om een ​​negatief integer aan te duiden. Computers kunnen echter alleen informatie in bits opslaan, die als we hebben gezien alleen de waarden nul of één hebben. Daarom zal de opslag van negatieve gehele getallen in een parameter een andere aanpak vereisen.

Zonder in details te gaan, is een manier om negatieve waarden op te slaan om de Twee's complement Verdrag waarbij negatieve waarden worden vertegenwoordigd door de aanvulling van hun eigen waarde. Dit betekent in feite dat getallen die een "1" in de linkerste bit negatief zijn.

Om negatieve waarden in te stellen op een parameter, neemt u de maximale waarde (afhankelijk van de parametergrootte, d.w.z. 1, 2 of 4 bytes) en trek de gewenste waarde af.

Voorbeelden

Alles is gemakkelijker te begrijpen met een voorbeeld, dus laten we eens kijken naar een aantal apparaten die een beetje wiskunde vereisen voordat ze de parameters instellen.

Philio Multisensor Gen5

Een snelle blik op de Philio Multisensor Handleiding en één merkt onmiddellijk de meeste van zijn parameterwaarden, zijn niet de gebruikelijke 1 byte decimaal.

Laten we nemen Parameter 7 als voorbeeld. Opmerking: Voor dit voorbeeld gebruiken we de PST02-1A-parameters.

We moeten binaire sensor Report Command-klasse inschakelen en het apparaat "CLEAR" rapporteren na een bewegingsevenement om zowel beweging als magneetsensoren in de meeste Z-Wave-controllers te krijgen.

Om dit te doen, moeten we inschakelen bit 1 en bit 4 en voeg dat toe aan de reeds ingeschakelde standaard bit 2.

Dit vertaalt zich naar: (2 ^ 1) + (2 ^ 2) + (2 ^ 4) = 22

Zo onze 1 byte decimaal Parameter moet worden ingesteld op 22.

Aeon klem meter

De 4 byte decimaal Parameters die door de Aeon-klemmeter worden gebruikt, kunnen lastig zijn in vergelijking met een 1 byte decimale parameter.

Laten we als voorbeeld zeggen dat we een enkele klemversie van dit apparaat willen configureren. We hebben geleerd hier Dat Parameter 103 moet worden ingesteld op 2304 Maar waarom is dat?

Als we kijken naar de handmatig We kunnen zien in pagina 7 een tabel met alle mogelijke opties voor Waarde 1 tot 4.

Het vertelt ons ook die waarde 1 is MSB (Meest significante bit) en waarde 4 de LSB (Minst significante bit).

Als we dit weten, kunnen we dezelfde logica toepassen die we hebben gebruikt voordat we vanaf het LSB-bit zijn (waarde 4). Dit vertaalt zich naar:


Waarde 1 (MSB)
Beetje 7 6 5 4 3 2 1 0
Waarde 2147483648 1073741824 536870912 268435456 134217728 67108864 33554432 16777216
Waarde 2
Beetje 7 6 5 4 3 2 1 0
Waarde 8388608 4194304 2097152 1048576 524288 262144 131072 65536
Waarde 3
Beetje 7 6 5 4 3 2 1 0
Waarde 32768 16384 8192 4096 2048 1024 512 256
Waarde 4 (LSB)
Beetje 7 6 5 4 3 2 1 0
Waarde 128 64 32 16 8 4 2 1

Watt en kWh-rapporten hebben, moeten we inschakelen bit 0 en bit 3 Aan Waarde 3.

Dit geeft ons: 2048 + 256 = 2304

Zo onze 4 byte decimaal Parameter moet worden ingesteld op 2304.

Aeon Sirene Gen5

De 2 byte decimaal Aeon Sirene Gen5 Parameter 37 kan twee bytes of 16 bits opslaan zoals we weten.

Hierdoor kunnen we verschillende geluiden instellen en het volume aanpassen in één enkele parameter.

Kijken naar de handmatig we kunnen zien Waarde 1 hebben 6 mogelijke instellingen terwijl Waarde 2 heb 4. Dit vertaalt zich naar:

Waarde 1 (MSB)
Geluid 5 Geluid 4 Geluid 3 Geluid 2 Geluid 1
Beetje 4 3 2 1 0
Waarde 4096 2048 1024 512 256
Waarde 2 (LSB)
Volume 3 Volume 2 Volume 1
Beetje 2 1 0
Waarde 4 2 1

Een andere logica is echter gebruikt door AEON op deze parameter die dingen een beetje moeilijker te begrijpen kan maken. Als we kijken naar de handleiding die we hebben:

  • Waarde 1
    • 0 - Verander het huidige sirene-geluid niet
    • 1 - Sirene Sound 1 is geselecteerd
    • 2 - Siren Sound 2 is geselecteerd
    • 3 - Sirene Sound 3 is geselecteerd
    • 4 - Sirene Sound 4 is geselecteerd
    • 5 - Sirene Sound 5 is geselecteerd
  • Waarde 2
    • 0 - Wijzig het huidige volume niet
    • 1 - Stel het volume in op 88 dB
    • 2 - Stel het volume in op 100 dB
    • 3 - Stel het volume in op 105 dB

Deze zijn de decimale waarden, maar ze zijn toegepast met betrekking tot verspreiding over een waarde van 2 byte.

Omdat de waarden voor geluid en volume worden toegepast als een single 2 byte parameter We moeten de bitpatronen op de juiste manier converteren.

Het is waarschijnlijk gemakkelijker te begrijpen met een voorbeeld:

  • Kijk naar Siren Sound 4, Manual zegt dat het is waarde is 4
  • Kijk nu naar het bovenstaande 8-bits waardepatroon - welk "bit" zouden we controleren om te geven waarde van 4? Het antwoord is bit 2
  • En welke waarde is bit 2 In de 2e byte van een 2 byte-waarde? Antwoord is 1024

Als dit gecompliceerd klinkt, kan het :-)

Laten we een tweede voorbeeld bekijken:

  • Kijk naar Sirene Sound 3 met waarde 3
  • Welke "bit" zouden we controleren om te geven waarde van 3? We zouden moeten inschakelen bit 0 en 1 (1 + 2)
  • Wat is de som van bit 0 en 1-waarde op een standaard 8-bitwaardepatroon? Antwoord is 768 (512 + 256)

Opmerking: Voor een volledige lijst van de decimale waarden die moeten worden gebruikt met de Aeon Sirene, kijk dan eens naar gids

Fibaro veeg

Parameter 31-36 Hiermee kan een gebruiker sequenties van twee of drie gebaren maken om het aantal mogelijke acties uit te breiden.

Dit zijn 2 byte decimaal Parameters waar elk gebaar 4 bits duurt.

Elk gebaar kan als volgt worden geïdentificeerd:

Waarde 4 bits Gebaar
0 0000 leeg
1 0001 ^
2 0010 v
3 0011 <
4 0100 >

Het sequentiebitpatroon kan worden vertaald als:

Waarde 1 (MSB) - Gereserveerd
Beetje 3 2 1 0
Waarde 32768 16384 8192 4096
Waarde 2 - Eerste gebaar
Beetje 3 2 1 0
Waarde 2048 1024 512 256
Waarde 3 - Tweede gebaar
Beetje 3 2 1 0
Waarde 128 64 32 16
Waarde 4 (LSB) - Derde gebaar
Beetje 3 2 1 0
Waarde 8 4 2 1

Om een ​​te maken ^ (omhoog)> (rechts) <(links) reeks:

  • Waarde 1 is gereserveerd, zodat de waarde is 0
  • Waarde 2 is "up", dus we zouden in bit 0 (0001) = 256
  • Waarde 3 is "rechts", dus we zouden het inschakelen bit 2 (0100) = 64
  • Waarde 4 is "links", dus we zouden in bit 0 en 1 (0011) = 2 + 1

Als we alle waarden optellen die we krijgen 323.

Fibaro bewegingssensor gen5

De 2 byte decimaal Fibaro bewegingssensor gen5 Parameter 66 Kan twee bytes of 16 bits opslaan die ons in staat stellen een temperatuurverschuiving van -100 tot 100 ºC in te stellen in stappen van 0,1ºC.

Om een ​​temperatuurverschuiving van -2.0 ºC in te stellen, zou u de gewenste absolute waarde (20) aftrekken op de maximale waarde die de parameter kan duren (2 ^ 16).

Dit vertaalt (2 ^ 16) - 20 = 65516.

Dus onze 2 byte decimale parameter moet worden ingesteld op 65516.

Gerelateerde informatie


auteursrechten Vesternet 2017

Bijgewerkt: 07/11/2017