KB-104 - <tc>Z-Wave</tc> Parâmetros do dispositivo - hex, dec, binário, bits, bytes ..... o quê?!?!

Ao ler os manuais do dispositivo ou nossos próprios guias, você pode se deparar com alguns termos com os quais talvez não esteja familiarizado, como binário, hexadecimal, bit, byte, etc.

Este é um guia rápido dos termos comuns usados ​​para que todos falemos sobre as mesmas coisas.

Introdução aos números binários, decimais e hexadecimais

Embora isso possa parecer confuso no início, binário, decimal e hexadecimal são essencialmente apenas maneiras diferentes de escrever um número.

Vamos dar uma olhada rápida nas diferenças entre eles.

Decimal

Não há muito a dizer sobre o sistema decimal, já que é o sistema mais usado atualmente.

É chamado de “Base 10” sistema porque existem 10 símbolos que podem ser usados: 0 – 9.

Quando você chega a 9, fica sem símbolos, então adiciona 1 dígito à esquerda e começa novamente do 0.

Binário

Um número binário é composto apenas de 0areia 1s. Por essa razão é chamado de “Base 2" sistema.

Isso significa que um único dígito binário pode mostrar apenas 2 valores diferentes em vez dos 10 dígitos habituais.

A regra geral para contar usando o sistema binário é a mesma do sistema decimal: conte até pouco antes da "base", depois comece do 0 novamente, mas primeiro adicione 1 ao número à sua esquerda.


Binário: 0 1 10 11 100 101 110 111 1000 1001 1010
Decimal: 0 1 2 3 4 5 6 7 8 9 10

Hexadecimal

Os números hexadecimais são bastante interessantes, visto que são um “Base 16" sistema.

Eles parecem iguais aos números decimais até 9, mas há as letras ("A", "B", "C", "D", "E", "F") no lugar dos números decimais de 10 a 15.

Um único dígito hexadecimal pode mostrar 16 valores diferentes em vez dos 10 dígitos normais aos quais estamos acostumados.

Novamente, quando ficarmos sem símbolos (quando chegarmos F) começamos de volta em 0 e adicionamos 1 à próxima posição à esquerda.


Hexadecimal: 0 1 2 3 4 5 6 7 8 9 UM B C D E F
Decimal: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Veja em ação

Escolha um dos sistemas abaixo e veja como ele conta:

Conversão entre sistemas

Se você realmente gosta de matemática, você pode aprender sozinho como converter números entre diferentes sistemas de base.

A maneira mais fácil, no entanto, é usar um online Conversor de números.

Bits vs Bytes

Bits e Bytes são frequentemente confundidos, mas na verdade há uma grande diferença entre eles.

UM pedaço é a menor unidade de informação que pode ser armazenada ou manipulada em um computador. Quando representados como um número, os bits podem ter o valor de "1" (um) ou "0" (zero).

Por outro lado, um byte é muito maior, contém oito bits. Matematicamente n bits rendimentos 2 ^ n padrões então um byte pode conter um número entre 0 e 255.


pedaço 0 1 2 3 4 5 6 7
2 ^ 0 2 ^ 1 2 ^ 2 2 ^ 3 2 ^ 4 2 ^ 5 2 ^ 6 2 ^ 7
valor 0 2 4 8 16 32 64 128

É importante saber que bytes são abreviados com B maiúsculo, enquanto bits usam b minúsculo.Portanto, Mbps são megabits por segundo, e MBps são megabytes por segundo.

Amarrando tudo junto

Você deve estar se perguntando por que estamos falando sobre bits, bytes e todos esses diferentes sistemas numéricos.

Ao adicionar um parâmetro de dispositivo, você deve escolher seu Tamanho dos dados. Entre 1, 2 ou 4 bytes e Hex ou Dec, há 6 opções para escolher.

Você pode se sentir tentado a escolher apenas a primeira opção e prosseguir, mas um parâmetro de tamanho de dados errado não funcionará e, em algumas ocasiões, pode impedir que o dispositivo funcione corretamente.

Tamanho dos dados

A primeira coisa a saber é que, a menos que indicado de outra forma, todos os parâmetros são 1 byte decimal.

No entanto, existem alguns dispositivos que exigem outros tamanhos de dados. Por isso, é extremamente importante ler atentamente o manual do seu dispositivo antes de fazer qualquer alteração.

Fazemos o nosso melhor para manter todas as páginas de produtos com manuais atualizados.

Nas raras ocasiões em que falta um manual ou as informações apresentadas não são suficientemente claras, nossa sugestão é procurar seu dispositivo em pimenta1 Z-wave banco de dados ou o Z-Wave Aliança site.

Valores negativos

É senso comum usar um sinal de menos para designar um número inteiro negativo. No entanto, os computadores só podem armazenar informações em bits, que, como vimos, só podem ter os valores zero ou um. Portanto, o armazenamento de números inteiros negativos em um Parâmetro exigirá uma abordagem diferente.

Sem entrar em detalhes, uma maneira de armazenar valores negativos é usar o Complemento de dois convenção em que valores negativos são representados pelo complemento de dois de seu próprio valor. Isso significa basicamente que números que têm um "1" no bit mais à esquerda são negativos.

Para definir valores negativos em um parâmetro, você pega o valor máximo (dependendo do tamanho do parâmetro, i.e. 1, 2 ou 4 bytes) e subtraia o valor desejado.

Exemplos

Tudo fica mais fácil de entender com um exemplo, então vamos dar uma olhada em alguns dispositivos do dia a dia que exigem um pouco de matemática antes de definir seus parâmetros.

Philio Multissensor GEN5

Uma rápida olhada no Philio Manual multissensor e imediatamente percebemos que a maioria dos valores de seus parâmetros não são os decimais usuais de 1 byte.

Vamos pegar Parâmetro 7 como exemplo. Observação: para este exemplo usaremos os parâmetros PST02-1A.

Precisamos habilitar a classe de comando de relatório de sensor binário e tornar o relatório do dispositivo “limpo” após um evento de movimento para que os sensores de movimento e ímã funcionem na maioria Z-Wave controladores.

Para fazer isso, precisamos habilitar bit 1 e bit 4 e adicione isso ao já habilitado por padrão bit 2.

Isso se traduz em: (2 ^ 1) + (2 ^ 2) + (2 ^ 4) = 22

Então nosso 1 byte decimal O parâmetro deve ser definido como 22.

Alicate Amperímetro Aeon

O decimal de 4 bytes Os parâmetros usados ​​pelo Aeon Clamp Meter podem ser complicados quando comparados a um parâmetro decimal de 1 byte.

Por exemplo, digamos que queremos configurar uma versão de grampo único deste dispositivo. Aprendemos aqui que Parâmetro 103 deve ser definido como 2304 mas por que isso?

Se olharmos para o manual podemos ver na página 7 uma tabela mostrando todas as opções possíveis para Valor 1 a 4.

Também nos diz que o Valor 1 é o MSB (Bit Mais Significativo) e Valor 4 o LSB (Bit Menos Significativo).

Sabendo disso, podemos aplicar a mesma lógica que usamos antes, começando pelo Bit LSB (Valor 4).Isso se traduz em:


Para ter relatórios de Watt e kWh, precisamos habilitarbit 0 e bit 3 sobre Valor 3 .

Isso nos dá: 2048 + 256 = 2304

Então nosso decimal de 4 bytes O parâmetro deve ser definido como 2304 .

Aeon Siren GEN5

O decimal de 2 bytes Aeon Siren GEN5 Parâmetro 37 pode armazenar dois bytes ou 16 bits como sabemos.

Isso nos permite definir sons diferentes e ajustar o volume, tudo em um único parâmetro.

Olhando para o manual podemos ver Valor 1 tem 6 configurações possíveis enquanto Valor 2 tem 4. Isso se traduz em:

Valor 1 (MSB)
Som 5 Som 4 Som 3 Som 2 Som 1
Pedaço 4 3 2 1 0
Valor 4096 2048 1024 512 256
Valor 2 (LSB)
Volume 3 Volume 2 Volume 1
Pedaço 2 1 0
Valor 4 2 1

No entanto, a Aeon utilizou uma lógica diferente neste parâmetro, o que pode dificultar um pouco a compreensão. Se consultarmos o manual, temos:

  • Valor 1
    • 0 - não altere o som atual da sirene
    • 1 - O som da sirene 1 está selecionado
    • 2 - O som da sirene 2 está selecionado
    • 3 - O som da sirene 3 está selecionado
    • 4 - O som da sirene 4 está selecionado
    • 5 - O som da sirene 5 está selecionado
  • Valor 2
    • 0 - não altere o volume atual
    • 1 - ajuste o volume para 88 dB
    • 2 - ajuste o volume para 100 dB
    • 3 - ajuste o volume para 105 dB

Esses são os valores decimais, mas eles sãoaplicado com relação à distribuição em um valor de 2 bytes.

Porque os valores de som e volume são aplicados como umparâmetro único de 2 bytes Precisamos converter os padrões de bits adequadamente.

Provavelmente é mais fácil entender com um exemplo:

  • Olhe para a sirene Sound 4, o manual diz que é o valor é 4
  • Agora olhe para o acima Padrão de valor de 8 bits - qual "bit" deveríamos verificar para dar valor de 4 ? A resposta é bit 2
  • E qual é o valor bit 2 no 2º byte de um valor de 2 bytes? A resposta é 1024

Se isso parece complicado, pode ser :-)

Vejamos um segundo exemplo:

  • Veja o som da sirene 3 com valor 3
  • Qual "bit" deveríamos verificar para dar valor de 3 ? Precisaríamos habilitar bit 0 e 1 (1 + 2)
  • Qual é a soma dos valores dos bits 0 e 1 em um padrão de 8 bits? A resposta é: 768 (512 + 256)

Observação : para uma lista completa dos valores decimais a serem usados ​​com a Aeon Siren, dê uma olhada aqui guia

Fibaro Deslize

Parâmetro 31-36 permite que um usuário crie sequências de dois ou três gestos para expandir o número de ações possíveis.

Estes são decimal de 2 bytes Parâmetros onde cada gesto ocupa 4 bits.

Cada gesto pode ser identificado da seguinte forma:

Valor 4 bits Gesto
0 0000 vazio
1 0001 ^
2 0010 você
3 0011 & lt;
4 0100 >

O padrão de bits de sequência pode ser traduzido como:

Valor 1 (MSB) - reservado
Pedaço 3 2 & 1 0
Valor 32768 16384 8192 4096
Valor 2 - primeiro gesto
Pedaço 3 2 1 0
Valor 2048 1024 512 256
Valor 3 - segundo gesto
Pedaço 3 2 1 0
Valor 128 64 32 16
Valor 4 (LSB) - terceiro gesto
Pedaço 3 21 0
Valor 8 4 2 1

Para criar um ^ (para cima)& gt; (direita)& lt; (esquerda) sequência:

  • O valor 1 é reservado, então seu valor é 0
  • O valor 2 está "para cima", então habilitaríamos bit 0 (0001) = 256
  • O valor 3 é "correto", então habilitaríamos bit 2 (0100) = 64
  • O valor 4 é "esquerdo", então habilitaríamos bit 0 e 1 (0011) = 2 + 1

Se somarmos todos os valores obtemos 323.

Fibaro Sensor de movimento GEN5

O decimal de 2 bytes Fibaro Sensor de movimento GEN5 Parâmetro 66 pode armazenar dois bytes ou 16 bits, o que nos permite definir um deslocamento de temperatura de -100 a 100 ºC em incrementos de 0,1 ºC.

Para definir um deslocamento de temperatura de -2,0 ºC, você subtrairia o valor absoluto desejado (20) do valor máximo que o parâmetro pode assumir (2^16).

Isso se traduz em (2^16) – 20 = 65516.

Portanto, nosso parâmetro decimal de 2 bytes deve ser definido como 65516.

Informações relacionadas


Direitos autorais Vesternet 2017

Atualizado: 07/11/2017