Você está na página 1de 9

DRIVER ASCII

Nome do Arquivo Fabricante Equipamentos Protocolo Verso ltima Atualizao Plataforma Dependncias Introduo

ASCII.DLL Qualquer equipamento com interface ASCII de comunicao Qualquer protocolo ASCII 1.11 06/04/2011 Win32 IOKit v1.15 ou mais recente

O driver ASCII se comunica com qualquer equipamento que utilize o formato ASCII.

Configurao dos Comandos ASCII

Topo Anterior Prximo

Max Answer Bytes: Nmero mximo de bytes aguardados na resposta; Max Answer Elements: Nmero mximo de variveis (elementos) em um comando ou resposta; ID: ndice do Comando; TX: Formato do Comando de Envio; RX: Formato do Comando de Recepo. Para cada formato de Envio e de Recepo associado um ndice (ID). No comando podem existir quaisquer nmeros ou letras em formato ASCII, fixos ou com campos variveis. Para criar campos variveis, a regra geral utilizar o formato %Nt, onde: % Smbolo identificador de campo varivel. Caso a mensagem precise enviar um caractere %, basta coloc-lo duas vezes (%%).

N (opcional)

Nmero de caracteres ou formatador. Se o campo for um nmero real, N pode ser um nmero real (por exemplo, 5.2, indicando cinco ou mais algarismos, mais dois algarismos aps a vrgula).

T (tipo)

Tipo de dado.

d = (decimal com sinal); u = (decimal sem sinal); x = (hexadecimal); f = (nmero real); b = (binrio - valor binrio do caractere); s = (string - caracteres de qualquer tipo); t = (texto - somente caracteres que podem ser impressos, cujo cdigo ASCII maior ou igual a 32 ou 20h). n = (interpreta o valor decimal no formato BCD);

NOTA: Caso o formato de string na recepo esteja no meio da mensagem, deve-se utilizar o smbolo # para identificar um caracter especial como delimitador de fim de string ou o smbolo @ para identificar o caractere de incio de string. Tambm possvel, usando o caractere h, inserir mais dois caracteres que representam um cdigo ASCII para o delimitador de incio ou de fim.

Exemplo:
%10#;s

- Neste caso se espera um texto de at 10 caracteres, sendo que, ao receber um caractere [;], entende-se que o final do texto (no incluindo o smbolo [;] no texto).

%@h03#h02t

- Texto que comea com 03h e termina com 02h. Podem ser inseridos ou verificados tambm os caracteres especiais de carriage return (/r), line feed (/n) e qualquer outro caractere especial com /hXX, inserindo os caracteres / ou \ seguidos de um r, n ou h diretamente na mensagem TX ou RX. A insero ou comparao ser feita diretamente com os caracteres especiais 13 (/r), 10 (/n) ou XX (/hXX), onde XX representa um caractere especial em formato hexadecimal de dois dgitos.

Envia e Recebe Comando

Topo Anterior Prximo

LEITURA/ESCRITA N1 N2 N3 N4 0 ndice de comando ndice de varivel Offset da mensagem RX

Envia comando e l resposta. Se utilizado num comando de leitura, sero retornados os campos variveis da mensagem de recepo, um em cada elemento do bloco (se aplicvel), a partir do ndice de varivel informado no parmetro N3. Exemplo: Se o comando 20 prev uma resposta do tipo ABC=%d; XYZ=%f ao ler um tag bloco com 2 elementos na configurao 0.20.0.0, o primeiro elemento trar o primeiro campo varivel (decimal) e o segundo elemento o segundo campo varivel (nmero real). Use o parmetro N4 caso queria que o comando analise o frame de resposta com um offset em relao ao primeiro caractere da mensagem. Exemplo: Caso queria descartar os 100 primeiros bytes de uma mensagem, coloque N4 = 100.

Valores TX LEITURA/ESCRITA N1 N2 N3 N4 1 ndice de comando ndice de varivel 0

Topo Anterior Prximo

L ou escreve os valores dos campos variveis de TX antes de enviar um comando. O tipo de cada tag deve coincidir com os tipos informados na definio do comando. Se utilizado em um comando de leitura, sero retornados os campos variveis da mensagem de recepo, um em cada elemento do bloco (se for um bloco), a partir do ndice de varivel informado no parmetro N3.

Valores RX LEITURA N1 N2 N3 2 ndice de comando ndice de varivel

Topo Anterior Prximo

N4

L os valores dos campos variveis de RX atualizados na ltima recepo do comando informado em N2. O tipo de cada tag coincide com os tipos informados na definio do comando. Sero retornados os campos variveis da mensagem de recepo, um em cada elemento do bloco (se for um bloco), a partir do ndice de varivel informado no parmetro N3.

Recebe Comando LEITURA N1 N2 N3 N4 3 ndice de comando ndice de varivel Offset da mensagem RX

Topo Anterior Prximo

Somente l uma resposta. Sero retornados os campos variveis da mensagem de recepo, um em cada elemento do bloco (se for um bloco), a partir do ndice de varivel informado no parmetro N3.

Envia Comando ESCRITA N1 N2 N3 N4 4 ndice de comando 0 0

Topo Anterior Prximo

Somente envia uma pergunta. Indique em N4 com um valor diferente de zero se o driver deve esperar uma resposta a este comando.

Envia Valor do Tag ESCRITA N1 N2 N3 N4 5 0 0 0

Topo Anterior Prximo

Somente envia uma mensagem. A mensagem a ser enviada o contedo do tag (em formato texto). Indique em N4 com um valor diferente de zero se o driver deve esperar uma resposta a este comando.

Envia Comando com Recepo em Lista LEITURA N1 N2 N3 N4 6 ndice do comando ndice da varivel Offset da mensagem RX

Topo Anterior Prximo

Este tag similar ao comando com N1 = 0, porm gerada uma lista de valores para cada conjunto repetido de variveis que forem encontradas, de acordo com a descrio do comando RX. Deve ser utilizado este tag quando no se sabe quantas linhas o comando vai retornar, partindo do princpio que todas as linhas seguem uma mesma estrutura. Exemplo: =>HIS <ENTER> FEEDER 1 Date: 08/10/99 Time: 08:40:16.740 STATION A # DATE TIME EVENT LOCAT CURR FREQ GRP SHOT TARGETS 1 02/01/99 08:33:00.365 TRIG $$$$$$$ 1 60.00 3 2 2 01/31/99 20:32:58.361 ER $$$$$$$ 231 60.00 2 2 3 01/29/99 07:30:11.055 AG T 9.65 2279 60.00 3 2 INST 50

Recebe Comando de Lista LEITURA N1 N2 N3 N4 7 ndice do comando ndice da varivel Offset da mensagem RX

Topo Anterior Prximo

Similar ao tag RECEBE COMANDO, exceto que ele retorna listas, na mesma forma do comando ENVIA COMANDO COM RECEPO EM LISTA.

Exemplos de Utilizao

Topo Anterior Prximo

Seja um protocolo de um equipamento qualquer que prev os seguintes comandos: >AARS232 command :<cr> <AAANSWER:<cr> onde: > ou < = caracteres de incio; AA = endereo; RS232 command = PRESS ou TEMP (presso ou temperatura); <cr> = carriage return; ANSWER = nmero de ponto flutuante. O comando deve ser feito da seguinte forma: Mensagem ID = 0 TX = >%2d%s:/r RX = <%2d%f:/r

Para definir os valores antes de enviar o comando PRESS para o equipamento endereo 5, mensagem ID 0, no formato N1.N2.N3.N4: Primeira varivel de TX, Endereo AA: Tag 1.0.0.X = 5 Segunda varivel de TX, Comando: Tag 1.0.1.X = PRESS

Tag para envio do comando e leitura dos valores de resposta: Bloco com 2 elementos: 0.0.0.X

Primeiro Elemento = endereo (deve ser igual ao endereo enviado, 5); Segundo Elemento = valor solicitado.

Tabela: Lista de Caracteres ASCII


Char
(nul) (soh) (stx) (etx) (eot) (enq) (ack) (bel) (bs) (ht) (nl) (vt) (np) (cr) (so) (si) (dle) (dc1) (dc2) (dc3) (dc4) (nak) (syn) (etb) (can) (em) (sub) (esc) (fs) (gs) (rs) (us)

Topo Anterior Prximo

Dec Oct Hex


0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 0x00 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f

Char Dec Oct Hex


(sp) ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77 0x20 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 0x29 0x2a 0x2b 0x2c 0x2d 0x2e 0x2f 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3a 0x3b 0x3c 0x3d 0x3e 0x3f

Char Dec Oct Hex


@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 100 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117 120 121 122 123 124 125 126 127 130 131 132 133 134 135 136 137 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4a 0x4b 0x4c 0x4d 0x4e 0x4f 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5a 0x5b 0x5c 0x5d 0x5e 0x5f

Char
` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ (del)

Dec Oct Hex


96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 140 141 142 143 144 145 146 147 150 151 152 153 154 155 156 157 160 161 162 163 164 165 166 167 170 171 172 173 174 175 176 177 0x60 0x61 0x62 0x63 0x64 0x65 0x66 0x67 0x68 0x69 0x6a 0x6b 0x6c 0x6d 0x6e 0x6f 0x70 0x71 0x72 0x73 0x74 0x75 0x76 0x77 0x78 0x79 0x7a 0x7b 0x7c 0x7d 0x7e 0x7f

Histrico de Revises do Driver Verso 1.11 Data 06/04/2011 Autor C. Mello

Topo Anterior

Comentrios - Adicionado suporte para interpretao

dos valores decimais no formato BCD (tipo de dado %n) (Case 12162). - Adicionado suporte para a plataforma WinCE (Case 10917). - Corrigido problema na recepo dos dados quando a mensagem RX inicia com /hxx (Case 11377). - Driver atualizado para IOKit v1.15; - Corrigido bug ao escrever tags Bloco (Case 10725). - Ajustes no comando N1 = 7 para recepo dos dados em forma de lista (Case 10472). - Ajustes para ignorar o caractere delimitador, como parte integrante dos dados (Case 9566). - Ajustes no comando N1 = 5 para dispensar consistncias do parmetro N2. - Ajustes para prevenir a duplicao das propriedades de configurao do driver aps reinicializ-lo em tempo de execuo (Case 8031). - Adicionada a formatao /hxx para informar caracteres especiais nos campos tx e rx dos parmetros extras do driver (case 7526). - ajustes no parmetro n4/b4 para habilitar uma recepo de dados atravs dos comandos n1/b1 = 4 e n1/b1 = 5. - Definio do tipo %b. - Ajustes na caixa de dilogo de parmetros Extras do driver. - Reviso geral de todo o cdigo fonte. M. Salvador - Listas de mensagens fora de ordem agora so suportadas. M. Salvador - Configurao do numero mximo de bytes e elementos. - Definio do tipo %t. - Definio do caractere @ em incio de strings, bem como definio de

1.10

11/05/2010

C. Mello

1.09

16/09/2009

M. Ludwig

1.08

13/05/2009

C. Mello

1.07

05/06/2008

C. Mello

1.06

01/06/2007

C. Mello

1.05

23/01/2007

C. Mello

1.04

22/12/2005

C. Mello

1.03

20/07/2005

caracteres em hexa (hXX), tanto para o incio como para o fim da string. - Definio de novos comandos N1/B1 = 6 e N1/B1 = 7. - Offset no frame de RX com o parmetro N4. - Tipo %f no interpretava sinais. - Inserida lista de caracteres ASCII na documentao. - Definio do tipo %d como sendo decimal com sinal.

1.02

12/07/2005

C. Mello

- Definio do tipo %u como sendo decimal sem sinal. M. Salvador - Implementado comando apenas para recepo de dados (N1/B1 = 3). - Implementado comando apenas para envio de dados (N1/B1 = 4). - Implementado comando apenas para envio de dados do contedo do tag no formato texto (N1/B1 = 5). M. Salvador - Inserido suporte a hexadecimais, /r e /n. M. Salvador - Verso original do driver.

1.01 1.00

14/09/2004 08/09/2004

Você também pode gostar