Página 4 de 4

Enviado: 01 Ago 2007 17:07
por Pablo César
Resumindo o TSR da Sweda, funciona na linha de comando. Mas não funciona quando executado através de um .BAT (os mesmos comandos), é isso ?.

Pergunto: ese arquivo que chama-se serial da Sweda, quê extensão tem é um .COM ou .EXE. Verifique se no Pc existe outros programas SERIAL (verifique .COM .EXE e .BAT). Também verifique se esse TSR chamado SERIAL´tem como descarregá-lo da memória. Ja tentou isso e executar ele de novo ?

Enviado: 01 Ago 2007 17:12
por Maligno
O programa se cama SERIAL.COM, é um TSR e não tem opção de descarga. Quanto à possibilidade de ter sido executado outro programa de mesmo nome, acho difícil. Provavelmente o colega deve teria visto isso, ao executar o batch, já que o SERIAL.COM tem uma telinha bem característica quando executado. A não ser que ele estivesse muito distraído. :)))

Enviado: 01 Ago 2007 17:26
por rubens
O Arquivo se chama serial.com

é um arquivo com o tamanho de 4kb ..
Realmente como o maligno disse quando carrega ele aparece informacoes que foi instalado na porta n com os opcionais.. Se carregar só o arquivo serial.com ele assume como default a porta com2. nao tem como estar carregando outro arquivo porque coloquei no mesmo diretorio que fica o bat... nao tem manual somente uma ajuda... dizendo como carregar as opcoes...
Entao nao da para saber se tem como descarregar... pelo que percebi somente fechando a seção DOS...

mas ele fica carregado.. na memoria.. mesmo sendo executado como bat.. quando sai do programa e roda um mem /d | more aparece ele na listagem...

Também tentei inserir ele no autoexec.nt mas nao funcionou ele carrega.. mas nao lê código de barras... somente quando e carregado pelo prompt do dos...

Rubens

Enviado: 01 Ago 2007 17:31
por Maligno
Falei do autoexec.nt porque quando se inicia uma nova sessão DOS, tudo o que estiver no autoexec.nt é carregado, como se fosse pela linha de comando. Pelo menos teoricamente deveria ser assim. Mas se não deu certo... Mas quando alterou o autoexec.nt, lembrou de dar boot na máquina? Tem alteração do autoexec.nt que não funciona antes de você reiniciar seu XP.

Enviado: 01 Ago 2007 17:42
por Pablo César
Mas executar de dentro de um .BAT não funcionar... talvez não seja bem assim...

O que deve estar ocorrendo que o TSR não permite ser carregado duas vezes. Se você chamar na linha de comando SERIAL /? ou SERIAL /HELP ou SERIAL /AJUDA (não vem nada como help ?). Se editar esse arquivo com o FILEEDIT do Norton, você não descobre alguma coisa sobre sintaxe ?. Tente descarregá-lo com: SERIAL /D

Faria outro teste, colocaria um PAUSE após executar o SERIAL com4:9600,n,8,1 CR para ver quê resultado deu (se carregou com as mensagens em tela normalmente e também para dar um tempo pra cabeça dele (do TSR me refiro, hihi... brincadeira).

Rubens, recompilando o ultimo que você relatou:

1. Eu nunca propus de pressionar nenhuma tecla para capturar. Acho que pelo teu 1º exemplo você mesmo estava fazendo isso por causa do VALID e não do WHEN.
2. O looping 13 vezes e sai fora (não é isso que deverias fazer). Eu aconselho fazer um looping condicional. Que apenas saisse se:
a. Pressionasse <ESC>
b. Pressionasse <ENTER> e estiver vazio para que pudesse entrar em outro GET para atender essa questão do peso. Antes eu tinha dito para atender a esta mesma demanda, utilizar uma tecla (por exemplo F10) e chamar o GETINPUT. Mas tudo bem, o seu procedimento não está errado.
c. Pressionasse <ENTER> e tiver algum código na variável que capturou a serial, claro que depois de ter verificado seu tamanho (tamanho do código) e se é um código válido (se o produto estiver cadastrado, senão dar mensagem e não sair do looping).

Enquanto é feito o looping, atribua a uma variável o conteúdo capturado pela serial. Mas vai fazendo uma concatenação dessa variavel. Isto é utilize-se de uma segunda variável e limpe ela âpós ser utilizada para concatenar a variavel principal (onde conterá o resultado final do que foi capturado).

Antes do final do ENDDO desse looping você deveria colocar INKEY(1) para que esse looping tenha um temporizador e realize o looping (mas não um looping infinito e se parada). Esse valor do INKEY(<Nvalor>) deve ser avaliado com testes para saber se deve ser diminuido ou aumentado (não creio que deva ser aumentado, pelo contrário).

Peço por gentileza que me relate todos os resultados das minhas indicações (nestas dois ultimas mensagens) é importante para obter um parecer do que está ocorrendo na sua exatidão.

Enviado: 01 Ago 2007 17:45
por Maligno
Acho que o maior problema nesse momento é que o colega já deve ter devolvido o leitor para o cliente. :)

Enviado: 01 Ago 2007 17:52
por Pablo César
Ehhh esse é um agravante, difícil de trabalhar sem o dispositivo. mas pelo menos ainda dá para dar continuidade de uso lá no mercado. Porque irritar ao dono/cliente, não é bom negócio.

Enviado: 01 Ago 2007 17:59
por Maligno
Por isso que é sempre bom ter um dispositivo semelhante, bem baratinho, já comprado e à disposição para testes. Ajuda nesses sufocos.