Comandos Para o DCCpp BaseStation

Joahermen


Comandos do DCC ++ e sua estrutura
DCC ++ Lê comandos de uma fonte externa, alguns exemplos são:
Linha de comando do Serial Monitor ou software como DCC ++ Controller ou JMRI
Se você estiver testando sua instalação ou escrevendo seu próprio programa de controle, esses comandos são o que a Estação Base DCC ++ está procurando e, em alguns casos, respondendo a você.
É recomendável baixar a versão mais recente do IDE do Arduino e do software da estação base DCC ++ no GitHub. Se você é novo no DCC ++, sugiro que você consulte a página Introdução ao hardware do DCC ++.


A estação base DCC ++ está escutando comandos nos seguintes formatos:
1 - Comandos de Uma Letra:
<s> Minúsculas s: Status da BaseStation DCC ++
Retorna: rastreie o status da energia, o status do acelerador, o status da saída e um número de versão.
<0> Número Zero: DESLIGUE a alimentação para faixas (Principal e Programação).
Retorna: <p0> Liga e desliga as faixas.
<
1> Número um: Ligue a alimentação nas faixas (Principal e Programação).
Retorna: <p1> Liga as faixas.
<T> Maiúsculas T: lista todas as comparações definidas.
Retorna: <H ID ADDRESS SUBADDRESS THROW> para cada participação definida ou <X> se nenhuma participação definida.
<S> Maiúsculas S: lista todos os sensores definidos.
Retorna: <Q ID PIN PULLUP> para cada sensor definido ou <X> se nenhum sensor definido.
<Z> Maiúsculas Z: Lista todos os pinos de saída definidos
Retorna: <Y ID PIN IFLAG STATE> para cada pino de saída definido ou
<X> se nenhum pino de saída definido
<Q> Maiúscula Q: Lista o status de todos os sensores.
Retorna: <Q ID> (ativo) ou <q ID> (não ativo)
<E> E maiúsculo: comando para armazenar definições na EEPROM
Retorna: <e nTurnouts nSensors>
<e> Letras minúsculas e: comando para apagar todas as definições (comparecimentos, sensores e saídas) da EEPROM
Retorna: <0> EEPROM vazio
(N
ão há remoção de exclusão)
<D> Maiúsculas D: Consulte Diagnóstico- <D> - Página de comando
Existem alguns outros comandos DeBugging no SerialCommand.cpp que devem ser usados ​​apenas por usuários avançados potencialmente prejudicial se não for usado corretamente.


2 - Comando de operação do decodificador do motor CAB :
Direção e Velocidade do Motor

O formato do acelerador do CAB é

<t Registro Decodificador Velocidade Direção>
Exemplo da distribuição para:

<t 1 03 32 1>
"<" = Início do Comando DCC ++.

Um espaço após “<” não é necessário, mas é aceitável.
"t" = Letra t Minúscula - Define o Comando CAB
"1" = REGISTRAR: um número de registro interno, de 1 a MAX_MAIN_REGISTERS = O padrão é “12”, para armazenar o pacote DCC usado para controlar essa configuração do acelerador. O registro "0" é para programação)
"03" = CAB = Endereço Curto (1-127) ou Longo (128-10293) do decodificador do motor. Isso já deve estar programado no decodificador.

Veja Comandos de programação abaixo.
"20" = VELOCIDADE: velocidade do acelerador de 0 a 126 ou -1 para parada de emergência (redefine a VELOCIDADE para 0)
"1" = SENTIDO: 1 = avançar, 0 = reverter. Definir a direção quando velocidade = 0 ou velocidade = -1 afeta apenas a direcionalidade da iluminação da cabine para um trem parado
">" = Final do comando
Se o comando foi bem-sucedido, o monitor serial deve responder com:

<T 1 20 1>

significando:
"<" = Inicia comando DCC ++
"T" = T Maiúsculo = Comando DCC ++ Cab foi enviado do DCC ++ BaseStation
"1" = o registro 1 foi alterado
"32" = definido para a velocidade 20
"1" = direção para frente
">" = Finaliza comando do DCC ++


3 - Funções da Cabine :
O formato de funções do CAB é

<f CAB BYTE1 [BYTE2]>
Isso ativa e desativa as funções do decodificador do motor
F0-F28 - F0 às vezes é chamado de FL
NOTA: as solicitações de configuração são transmitidas diretamente ao decodificador de mecanismo móvel
O estado atual das funções do mecanismo não é armazenado pelo DCC ++ BaseStation
Todas as funções Os grupos são configurados de uma só vez, de acordo com os padrões NMRA DCC
Para ativar ou desativar as funções F0-F4 = (1) = (0):

<f CAB BYTE1 [BYTE2]>
"<"
= Inicia comando DCC ++
"f" = Letra f Minúscula - Define o Comando CAB
ou seja: luzes, buzina, campainha
"CAB" = Endereço Curto (1-127) ou Longo (128-10293) do decodificador do motor
BYTE1: 128 + F1 * 1 + F2 * 2 + F3 * 4 + F4 * 8 + F0 * 16
ADICIONE aqueles que você deseja que juntos
Adicione 1 para F1 ON
Adicione 2 para F2 ON
Adicione 4 para F3 ON
Adicione 8 para F4 ON
Adicione 16 para F0 ON
128 sozinho desativa F0-F4
BYTE2: omitido
">" = Finaliza comando DCC ++
Para fazer com que BYTE1 adicione os valores do que você deseja ativar juntos, os que você deseja OFF não são adicionados ao valor base de 128.
F0 - Luz = 16

F1 - Sino = 1

F2 - Buzina = 2

F3 = 4

F4 = 8
Tudo desligado = 128
Luz acesa 128 + 16 = 144
Luz e campainha em 128 + 16 + 1 = 145
Luz e buzina em 128 + 16 + 2 = 146
Apenas buzina 128 + 2 = 130
Se a luz estiver acesa (144), você liga a campainha com a luz (145), a campainha se apaga, mas a luz acende (144)
Detalhamento para este exemplo

<f 3265 144>
"<"
= Inicia comando DCC ++
"f" = Letra f Minúscula - Define o Comando CAB

ou seja: luzes, buzina, campainha
"3265" = CAB = Endereço Curto (1-127) ou Longo (128-10293) do decodificador do motor
"144" = acende o farol
">" = Finaliza comando do DCC ++
Para ativar ou desativar as funções F5-F8 = (1) = (0):

"CAB" = Endereço Curto (1-127) ou Longo (128-10293) do decodificador do motor
"<" = Inicia comando DCC ++
"f" = Letra f Minúscula - Define o Comando CAB
"BYTE1" = 176 + F5 * 1 + F6 * 2 + F7 * 4 + F8 * 8
ADICIONE 176 + os que você deseja ativar juntos
Adicione 1 para F5 ON
Adicione 2 para F6 ON
Adicione 4 para F7 ON
Adicione 8 para F8 ON
176 sozinho desativa F5-F8
"BYTE2" = Omitido
">" = Finaliza comando do DCC ++
Para ativar ou desativar as funções F9-F12 = (1) = (0):

<f CAB BYTE1 [BYTE2]>
"<"
= Inicia comando DCC ++
"f"
= Letra f Minúscula - Define o Comando CAB
"
BYTE1" = 160 + F9 * 1 + F10 * 2 + F11 * 4 + F12 * 8
ADICIONE 160 + os que você deseja ativar juntos
Adicione 1 para F9 ON
Adicione 2 para F10 ON
Adicione 4 para F11 ON
Adicione 8 para F12 LIGADO
160 sozinho desativa F9-F12
"BYTE2" = Omitido
">" = Finaliza comando do DCC ++
Para ativar ou desativar as funções F13-F20 = (1) = (0):

<f CAB BYTE1 [BYTE2]>
"<"
= Inicia comando DCC ++
"f"
= Letra f Minúscula - Define o Comando CAB
"
BYTE1" = 222
"BYTE2" = F13 * 1 + F14 * 2 + F15 * 4 + F16 * 8 + F17 * 16 + F18 * 32 + F19 * 64 + F20 * 128
ADICIONE aqueles que você deseja que juntos
Adicione 1 para F13 ON
Adicione 2 para F14 ON
Adicione 4 para F15 ON
Adicione 8 para F16 ON
Adicionar 16 para F17 ON
Adicione 32 para F18 ON
Adicione 64 para F19 ON
Adicione 128 para F20 ON
0 Sozinho desliga F13-F20
">" = Finaliza comando do DCC ++
Para ativar ou desativar as funções F21-F28 = (1) = (0):

<f CAB BYTE1 [BYTE2]>
"<"
= Inicia comando DCC ++
"f"
= Letra f Minúscula - Define o Comando CAB
"
BYTE1" = 223
"BYTE2" = F21 * 1 + F22 * 2 + F23 * 4 + F24 * 8 + F25 * 16 + F26 * 32 + F27 * 64 + F28 * 128
ADICIONE aqueles que você deseja que juntos
Adicione 1 para F21 ON
Adicione 2 para F22 ON
Adicione 4 para F23 ON
Adicione 8 para F24 ON
Adicione 16 para F25 ON
Adicione 32 para F26 ON
Adicione 64 para F27 ON
Adicione 128 para F28 ON
0 Sozinho desliga F21-F28
">" = Finaliza comando do DCC ++
Retorna: NENHUM
As funções do CAB não têm um retorno
As funções do CAB não são armazenadas no DCC ++ BaseStation
Cada grupo não afeta os outros grupos. Para ativar F0 e F22, você precisará enviar dois comandos separados para o DCC ++ BaseStation. Um para F0 ativado e outro para F22 ativado.


4 - Decoders Acessórios Estacionários e Turnouts
O DCC ++ BASE STATION pode acompanhar a direção de qualquer comparecimento que é controlado por um decodificador de acessórios estacionário DCC uma vez definido (Configuração).
Todos os decodificadores que não estão em um motor são decodificadores de acessórios, incluindo participações.
Além de definidos, todos os comparecimentos, assim como quaisquer outros acessórios DCC conectados dessa maneira, sempre podem ser operados usando o comando Acessório DCC BASE STATION:
Você controlando um decodificador de acessórios ** com **

<um SUBADDRESS DE ENDEREÇO ​​ATIVO>
"<" = Inicia comando DCC ++
a (minúsculas a) esse comando é para um decodificador de acessórios
ENDEREÇO: o endereço principal do decodificador que controla essa participação (0-511)
SUBADDRESS: o sub-endereço do decodificador que controla essa participação (0-3)
ATIVAR: (0) (Desativar, Desativado, Não lançado) ou (1) (Ativar, Ativado, Lançado)
">" = Finaliza comando do DCC ++
No entanto, esse comando geral simplesmente envia o pacote de instruções DCC apropriado para as faixas principais para operar os acessórios conectados. Ele não armazena nem retém nenhuma informação sobre o status atual desse acessório.


5 - Definindo Configurando uma Participação
Para que o DCC ++ BaseStation armazene e mantenha a direção dos comparecimentos conectados ao DCC, bem como invoque automaticamente o comando <a> necessário, conforme necessário, primeiro defina / edite / exclua esses comparecimentos usando as seguintes variações do comando "T":
Comando para definir uma participação:

<T ID Addres SubAddress>
Cria um novo ID de participação, com Addres e SubAddress especificados, se a ID da participação já existir, ela é atualizada (sobrescrita) com as novas ADDRESS e SUBADDRESS especificadas
Retorna: <O> se for bem-sucedido e <X> se não for bem-sucedido (por exemplo, falta de memória)
Comando para excluir uma participação

<T ID>
Exclui a definição de uma participação com esse ID
Retorna:
<O> se for bem-sucedido e <X> se não for bem-sucedido (por exemplo, o ID não existe)
Comando para listar todas as participações definidas: <T>:
Lista todas as participações definidas.
Retorna:
<H ID ADDRESS SUBADDRESS THROW> para cada participação definida ou <X> se nenhuma participação tiver sido definida ou salva.
ID: o ID numérico (0-32767) da participação para controlar.
(Você escolhe o ID e eles são compartilhados entre participações, sensores e saídas)
ENDEREÇO: o endereço principal do decodificador que controla essa participação (0-511)
SUBADDRESS: o sub-endereço do decodificador que controla essa participação (0-3)
Depois que todas as participações tiverem sido definidas corretamente, use o
comando <E> para armazenar suas definições na EEPROM.
Se, posteriormente, você fizer edições / adições / exclusões nas definições de participação, deverá chamar o comando <E> se desejar que essas novas definições sejam atualizadas na EEPROM.
Você também pode APAGAR tudo (comparecimentos, sensores e saídas) armazenados na EEPROM chamando o comando <e> (minúsculo e).
Não há
como Cancelar exclusão
Exemplo: você tem uma participação na sua linha principal indo para o setor de armazéns. A participação é controlada por um decodificador acessório com um endereço 123 e é conectada à saída 3. Você deseja que ele tenha o ID 10.
Você enviaria o seguinte comando para o DCC ++ BaseStation
<T 10 123 3>
Este comando significa:
"<" = Inicia comando DCC ++
"
T" = T Maiúsculo - Define o Comando CAB
"10" = Número de identificação que estou configurando para usar esta participação
"123" = O endereço dos decodificadores de acessórios
"3" = A participação está ligada à saída 3
">" = Finaliza comando do DCC ++
DCC ++ deve retornar <O> Significado Comando bem sucedido
Em seguida, você enviaria o seguinte comando para o DCC ++ BaseStation
<E>
Este comando significa:
"<" = Inicia comando DCC ++
"
E" = E Maiúsculo Armazena,Salva esta definição na EEPROM
">" = Finaliza comando do DCC ++
DCC ++ deve retornar <O> Significado Comando bem-sucedido
Controlando uma participação definida
Define o ID da participação na posição "lançada" (girada) ou "não lançada" (reta)
O formato do comparecimento é <T ID THROW>
ID: o ID numérico (0-32767) que você forneceu a participação para controlar quando a definiu.
JOGO: 0 (não lançado) ou 1 (lançado)
Retorna: <H ID THROW> ou <X> se o ID da participação não existir
Exemplo continuado de cima:
Para lançar a participação 10 para que um mecanismo possa ir para o lado do armazém, você deve enviar o seguinte comando.
<T 10 1>
Este comando significa:
"<" = Inicia comando DCC ++
"T" = T Maiúsculo - Define o Comando CAB
"10" = Número de identificação da participação definida que desejo controlar.
"1" = Defina a participação na posição Jogada (ativada).
">" = Finaliza comando do DCC ++
O DCC ++ deve retornar <H 10 1> Significado Comando A participação 10 foi bem-sucedida NOTA: Esse retorno pode listar todas as participações e suas direções
SENSORES
O DCC ++ BaseStation suporta entradas de sensor que podem ser conectadas a qualquer Pino Aruidno não utilizado por este programa. Os sensores podem ser de qualquer tipo (infravermelho, magnético, mecânico ...). O único requisito é que, quando "ativado", o sensor forçar o pino do Arduino especificado BAIXO (ou seja, aterrar) e, quando não for ativado, esse pino permanecerá ALTO (ou seja, 5V) ou poderá flutuar ALTO se o Arduino for usado. O resistor de pull-up interno do pino é especificado.
Para garantir níveis adequados de tensão, parte do circuito do sensor DEVE estar ligada ao mesmo terra usado pelo Arduino.
O código do sensor utiliza suavização exponencial para "desacelerar" os picos gerados por chaves e transistores mecânicos. Isso evita a necessidade de criar circuitos de suavização para cada sensor. Pode ser necessário alterar os parâmetros em Sensor.cpp por tentativa e erro para seus sensores específicos.
Para que esse esboço monitore um ou mais pinos do Arduino para acionar sensores, primeiro defina / edite / exclua as definições do sensor usando a seguinte variação do comando "S":
<S ID PIN PULLUP>

Cria um novo ID do sensor, com o PIN e o PULLUP especificados, se o ID do sensor já existir, ele é atualizado com o PIN e o PULLUP especificados (você escolhe o número).
Retorna: <O> se for bem-sucedido e <X> se não for bem-sucedido (por exemplo, falta de memória)
<S ID>: exclui a definição do sensor ID
Retorna: <O> se for bem-sucedido e <X> se não for bem-sucedido (por exemplo, o ID não existe)
<S>: lista todos os sensores definidos
Retorna: <Q ID PIN PULLUP> para cada sensor definido ou se nenhum sensor definido
ID: O ID numérico (0-32767) do sensor
(Você escolhe o ID e eles são compartilhados entre participações, sensores e saídas)
PIN: O número do pino do Arduino ao qual o sensor está conectado na placa do Arduino.
PULLUP: 1 = Use resistor de pull-up interno para PIN, 0 = não use resistor
de pull-up interno para PIN
Depois que todos os sensores estiverem definidos corretamente, use o comando <E> (E maiúsculo) para armazenar suas definições na EEPROM.
Se, posteriormente, você fizer edições / adições / exclusões nas definições do sensor, deverá chamar o comando <E> (E maiúsculo) se desejar que essas novas definições sejam atualizadas na EEPROM.
Você também pode limpar tudo (comparecimentos, sensores e saídas) armazenados na EEPROM chamando o comando <e> (minúsculo e).
(Não existe UN-Delete)
Todos os sensores definidos conforme acima são verificados repetida e sequencialmente no loop principal deste esboço. Se um pino de sensor tiver transitado de um estado para outro, uma das seguintes mensagens seriais é gerada:
<Q ID> - para transição do ID do sensor do estado ALTO para o estado BAIXO (ou seja, o sensor é acionado)
<q ID> - para transição do ID do sensor do estado LOW para o estado HIGH (ou seja, o sensor não é mais acionado)
Dependendo de o sensor físico estar atuando como um "gatilho de evento" ou "sensor de detecção", você pode decidir ignorar o retorno <q ID> e reagir apenas aos gatilhos <Q ID>


6 - Pinos de Saída do Arduino
O DCC ++ BaseStation suporta o controle opcional OUTPUT de qualquer Pin do Arduino não utilizado para fins personalizados. Os pinos podem ser ativados ou desativados. O padrão é definir os pinos ATIVOS ALTO e INATIVO BAIXO. No entanto, esse comportamento padrão pode ser invertido para qualquer pino, caso em que ACTIVE = LOW e INACTIVE = HIGH.
As definições e o estado (ATIVO / INATIVO) dos pinos são retidos na EEPROM e restaurados na energização.
O padrão é definir cada pino definido como ativo ou inativo, de acordo com seu estado restaurado. No entanto, o comportamento padrão pode ser modificado para que qualquer pino possa ser forçado a ficar ativo ou inativo na inicialização, independentemente do seu estado anterior antes da inicialização.
Para que o DCC ++ BaseStation utilize um ou mais pinos do Arduino como saídas personalizadas, primeiro defina / edite / exclua as definições de saída usando a seguinte variação do comando "Z":
<Z ID PIN IFLAG>: cria um novo ID de saída, com os valores especificados de PIN e IFLAG.
se o ID de saída já existir, ele será atualizado com PIN e IFLAG específicos.
Nota: o estado de saída será imediatamente definido como ATIVO / INATIVO e o pino será definido como ALTO / BAIXO, de acordo com o
valor IFLAG especificado (veja abaixo).
Retorna: <O> se for bem-sucedido e <X> se não for bem-sucedido (por exemplo, falta de memória).
<Z ID>: exclui a definição do ID de saída
Retorna: <O> se for bem-sucedido e <X> se não for bem-sucedido (por exemplo, o ID não existe)
<Z>: lista todos os pinos de saída definidos
Retorna: <Y ID PIN IFLAG STATE> para cada pino de saída definido ou <X> se nenhum pino de saída definido.
ID: O ID numérico (0-32767) da saída
(Você escolhe o ID e eles são compartilhados entre participações, sensores e saídas)
PIN: o número do pino do Arduino a ser usado na saída.
ESTADO: O estado da saída (0 = INATIVO / 1 = ATIVO)
IFLAG: Define o comportamento operacional da saída com base nos bits 0, 1 e 2 da seguinte maneira:
IFLAG, bit 0: 0 = operação de avanço (ATIVO = ALTO / INATIVO = BAIXO)
1 = operação invertida (ATIVO = BAIXO / INATIVO = ALTO)
IFLAG, bit 1: 0 = estado do pino restaurado na energização para ATIVO ou INATIVO
dependendo do estado antes de desligar.
1 = estado do pino definido na inicialização ou quando criado pela primeira vez,
para ATIVO de INATIVO, dependendo do IFLAG, bit 2
IFLAG, bit 2: 0 = estado do pino definido como INATIVO após a inicialização ou quando criado pela primeira vez
1 = estado do pino definido como ATIVO após a inicialização ou quando criado pela primeira vez
Depois que todas as saídas estiverem definidas corretamente, use o comando <E> Maiúsculas E para armazenar suas definições na EEPROM.
Se, posteriormente, você fizer edições / adições / exclusões nas definições de saída, deverá chamar o comando <E> se desejar que essas novas definições sejam atualizadas na EEPROM.
Você também pode APAGAR tudo (comparecimentos, sensores e saídas) armazenados na EEPROM chamando o comando <e> (minúsculo e).
(Não há Cancelar exclusão)
Para alterar o estado das saídas definidas, use:
<Z ID STATE>: Define o ID de saída para o estado ATIVO ou INATIVO
Retorna: <Y ID STATE> ou <X> se o ID de saída não existir
ID: O ID numérico (0-32767) da saída definida para controlar
ESTADO: O estado da saída (0 = INATIVO / 1 = ATIVO)
Quando controlado como tal, o Arduino atualiza e armazena a direção de
cada saída na EEPROM, para que seja mantida mesmo sem energia. Uma lista dos estados atuais de cada saída no formato <Y ID STATE> é gerada pelo DCC ++ BaseStation sempre que o comando de status <s> é chamado. Isso fornece uma maneira eficiente de inicializar o estado de qualquer saída monitorada ou controlada por uma interface ou programa GUI separado.


7 - Comandos de Programação na Trilha Principal

Escrever Byte do CV no Decoder do Motor na Trilha Principal
Grava, sem qualquer verificação, um BYTE da variável de configuração no decodificador de um mecanismo na pista de operações principal.
O formato CV BYTE de gravação é:

<w CAB CV Valor>
"<"
= Inicia comando DCC ++

"w" = w Minúsculo - Define o Comando CAB
"CAB"
= Endereço Curto (1-127) ou Longo (128-10293) do Decodificador
"CV"
= Local no Decodificador no qual Gravar (1-1024)
"
Valor" = Valor a ser Gravado (0-255)
">" = Finaliza comando do DCC ++
Retorna: NENHUM
Escrever Bit Único do CV no Decoder do Motor na Trilha Principal
Grava, sem qualquer verificação, um único bit em um Bit de variável de configuração no decodificador de um mecanismo na pista de operações principal.
O formato de gravação de BIT CV é:

<b CV CAB Bit Valor>
"<"
= Inicia comando DCC ++

"b" = b Minúsculo - Define o Comando CAB
"CAB"
= Endereço Curto (1-127) ou Longo (128-10293) do Decodificador
"CV" = Local no Decodificador no qual Gravar (1-1024)
"Bit" = Número de Bit do registrador para escrever (0-7)
"Valor" = Valor do Bit a ser Gravado (0-1)
">" = Finaliza comando do DCC ++
Retorna: NENHUM


8 - Comandos de Programação na Trilha de Programação

Escrever Byte do CV no Decoder do Motor na Trilha de Programação
Grava e depois verifica uma BYTE da variável de configuração no decodificador de um mecanismo na faixa de programação
O formato de gravação de BYTE do CV é:

<W CV Valor CallBackNum CallBackSub>
"<"
= Inicia comando DCC ++

"W" = W Maiúsculo - Define o Comando CAB
"CV"
= Local no Decodificador no qual Gravar (1-1024)
"
Valor" = Valor a ser Gravado (0-255)
"CallBackNum" = Número de 0 a 32767
"CallBackSub" = Número de 0 a 32767
">" = Finaliza comando do DCC ++
Retorna:

<r CallBackNum | CallBackSub | Valor do CV>
VALOR DO CV: É um número de 0 a 255, conforme lido no CV solicitado, ou -1, se a leitura da verificação falhar.
Escrever Bit do CV no Decoder do Motor na Trilha de Programação
Grava e depois verifica uma BIT de variável de configuração no decodificador de um mecanismo na faixa de programação
O formato de gravação BIT CV é:

<B CV BIT Valor CallBackNum CallBackSub>
"<"
= Inicia comando DCC ++

"B" = B Maiúsculo - Define o Comando CAB
"CV"
= Local no Decodificador no qual Gravar (1-1024)
"
Bit" = Número de Bit do registrador para escrever (0-7)
"Valor" = Valor do Bit a ser Gravado (0-1)
"CallBackNum" = Número de 0 a 32767
"CallBackSub" = Número de 0 a 32767
">" = Finaliza comando do DCC ++
Retorna:

<r CallBackNum | CallBackSub | CV Bit Valor>
CV VALUE é um número de 0-1 conforme lido no bit CV solicitado ou -1 se a leitura de verificação falhar.
LER BYTE VARIÁVEL DA CONFIGURAÇÃO DO DECODER DO MOTOR NA PISTA DE PROGRAMAÇÃO
Lê uma variável de configuração do decodificador de um mecanismo na faixa de programação.
O formato CV BYTE lido é:

<R CV CallBackNum CallBackSub>
"<"
= Inicia comando DCC ++

"R" = R Maiúsculo - Define o Comando CAB
"CV"
= Local no Decodificador no qual Gravar (1-1024)
"
CallBackNum" = Número de 0 a 32767
"CallBackSub" = Número de 0 a 32767
">" = Finaliza comando do DCC ++
Retorna: **

<r CallBackNum | CallBackSub | CV Valor>
CV V
alor é um número de 0 a 255, conforme lido no CV solicitado, ou -1, se a leitura não puder ser verificada.
CallBackNum e CallBackSub são Números inteiros arbitrários que são ignorados pela Estação Base e são simplesmente ecoados na saída – São uteis para programas externos que chamam essa função, por exemplo uma Interface DCC ++.