AC Circuit Simulator

Train Track

Descrição

Controla um Comboio. Este módulo tem 4 interfaces:

  • 2D - Interface 2 Dimensões (Java);
  • 3D - Interface 3 Dimensões (OpenGL, ligação por Sockets);
  • Mockup Complete - Maqueta com controlo completo (interface físico);
  • Mockup Partial - Maqueta com controlo parcial (interface Java).

 

Referência

Este módulo tem uma tabela de endereços, os quais definem qual a operação a ser realizada sobre o mesmo.

Porto Tipo Byte lido/escrito
Endereço Descrição
00H
Linha Superior do LCD
W
Caracter em ASCII. Escritas sucessivas vão deslocando os caracteres para a esquerda (capacidade = 40 caracteres). O byte 00H limpa o LCD.
01H
Linha Inferior do LCD
W
Caracter em ASCII. Escritas sucessivas vão deslocando os caracteres para a esquerda (capacidade = 40 caracteres). O byte 00H limpa o LCD.
02H
Barras de Velocidade
R

Os 4 bits de maior peso representam a barra de cima. Os 4 bits de menor peso representam a barra de baixo.

Em cada conjunto de 4 bits, o bit de maior peso indica o sentido (0 para frente, 1 para trás) e os restantes 3 bits indicam o valor absoluto da velocidade (0 parado, até 3, velocidade máxima).

03H
Teclado
R
Botões do Teclado 0 a 7.
04H
Teclado
R
Botões do Teclado 8 a F.
05H
Teclas de Menu
R
Os bits 0 a 4 correspondem às teclas Up, Down, Left, Right e Ok, respectivamente.
06H
Botões de Pressão (Push Buttons)
R
Estado dos botões de pressão (1 = premido, 0 = repouso).
07H
Interruptores (Toggle Buttons)
R
Estado dos Interruptores (1 = premido, 0 = repouso).
08H
LEDs
W
Leds do Painel (1 = vermelho, 0 = cinzento).
09H
Semáforos (Bi-Colores)
W
Os bits 7 a 2 indicam o número do semáforo. Os bits 1 e 0 indicam a cor (00 = cinzento, 01 = vermelho, 10 = verde, 11 = amarelo).
0AH
Sinais de Passagem de Nível (Mono-Colores)
W
Os bits 7 a 1 indicam o número do Sinal. O bit 0 indica o estado (1 = vermelho, 0 = cinzento).
0BH
Agulhas
W
Os bits 7 a 2 indicam o número da Agulha. Os bits 1 e 0 indicam o novo estado da Agulha (01 = liga para a esquerda, 10 = liga para a direita, 00 e 11 são indefinidos). O sentido da ligação da Agulha é visto de quem entra pelo ponto comum (i.e. assumindo que a agulha é um Y, entrando por baixo).
0CH
Selecção do Comboio e Comando
W

Os bits 7 a 4 indicam o número do Comboio. Os bits 3 a 0 indicam o comando (cujo argumento deve ser escrito a seguir no porto 0DH). Os comandos podem ser:

  • 0H - Muda Velocidade (incluindo sentido);
  • 1H - Muda Luzes;
  • 2H até FH - Indefinido.
0DH
Operação sobre Comboio
W

O signigicado depende do último comando dado no porto 0CH:

  • 0H - O bit 7 é o sentido (0 = para a frente, 1 = para trás) e os bits 6 a 0 são o valor absoluto da velocidade (0 = parado, 3 = velocidade máxima);
  • 1H - Apenas interessa o bit de menor peso (0 = apaga a luz, 1 = acende a luz);
  • 2H até FH - Indefinido.

Nota: Podem ser dadas várias operações sem mudar o valor no porto 0CH.

0EH
Número de Eventos dos Sensores
R

O valor lido indica o número de eventos (para ser lidos) na fila de eventos de passagem por sensores. Cada evento corresponde a dois valores no porto 0FH. Duas leituras no porto 0FH consomem um evento (i.e. o porto 0EH passa a ter menos uma unidade).

Uma leitura do porto 0EH não altera o estado da fila destes eventos.

O valor máximo lido neste porto (i.e. tamanho da fila) é estabelecido no ficheiro que define a pista.

0FH
Informação do Evento dos Sensores
R

A leitura de valores neste porto só é válida se houver eventos para ler. Deve-se verificar o valor indicado pelo porto 0EH antes de ler do porto 0FH. Há uma fila de eventos que permite memorizá-los caso não sejam lidos de imediato.

Uma passagem completa de uma locomotiva por um sensor gera dois eventos, um por cada topo da locomotiva.

Cada passagem por um dos topos da locomotiva gera 2 valores (i.e. bytes) neste porto.

  • 1º Byte - Os bits 7 a 5 são 0. Os bits 4 a 1 indicam o número do Comboio. O bit 0 indica qual dos topos passou pelo sensor (0 = frente, 1 = trás);
  • 2º Byte - Indica o número do sensor pelo qual o Comboio passou.