Cara, vai depender da programação do display do microterminal. Você tem que enviar algum caracter de quebra de linha para o microterminal, mais ai você tem que ver no manual do equipamento para saber qual é o caracter.
matheuslmota
Se servir, o caracter de quebra de linha, de acordo com a tabela Ascii, é o 0x0A.
Você teria de enviar algo mais ou menos assim:
os.writeUTF("\u000A");
Yago_Ernandes
Quando eu coloco isso:
os.writeUTF("\u000A");
da o seguinte erro:
unclosed string literal
me parece que o código do enter é o 13 que mudando colocando em ascii ficaria \u000D. Mas ai da o mesmo erro
Yago_Ernandes
E o microterminal é utilizado como comanda eletrônica, eu que estou mudando sua finalidade, portanto não tem nada referente a isso no manual.
ViniGodoy
\u000A é o caracter do \n.
Esse código aqui são dos terminais ansi (note que não é necessário separar os \u em outras Strings):
Portanto, provavelmente o código seria:
<ESC>[{COUNT}B
Ou seja:
"\u001B[1B"
Yago_Ernandes
Não funcionou, ao invés de quebrar linha ele imprimiu na tela [{1B
E é isso ai, o terminal é VT100 ansi mesmo…
Yago_Ernandes
No caso dessa página ai que você me passou se eu quiser usar o código “[7h” que é para quebrar a linha quando for passar da área de visualização, como eu devo mandar o código? Seria \u001B[7h mesmo?
ViniGodoy
Faltou fechar as chaves.
"\u001B[{1}B"
Cuidado que nem todo terminal suporta todos os comandos.
ViniGodoy
Ah, sorry, agora que vi que as chaves não são necessárias:
"\u001B[1B"
Yago_Ernandes
Continuou só imprimindo na tela o [1B
ViniGodoy
Então seu terminal não suporta navegação de cursor.
Já tentou enviar a quebra de linha? Tente dessas duas formas:
os.writeUTF("\n");
os.writeUTF("\r\n");
Todos os terminais que trabalhei suportavam pelo menos uma delas.
ViniGodoy
Você viu que para apagar a tela você poderia usar somente:
"\u001B[2J"
Yago_Ernandes
O \n não funcionou, ele foi minha primeira tentativa ^^
Agora o \r\n funcionou parcialmente, no seguinte código:
ele retornou um quadradinho de caractere inválido depois a palavra Pula e depois mais nada, e só mostrou a metade de baixo, o resto ficou pra cima da area de visualização da tela…
pra limpar a tela só funciona o código lá de cima, esse “\u001B[2J” não funcionou.
ViniGodoy
O que mostra que seu terminar VT100 é extremamente capado.
Se ele está ignorando os \n, e não suportou a navegação do cursor, não há muito o que fazer.
Ou então, vc está fazendo algo errado. O ideal seria usar algum programa (como o wireshark) para inspecionar o canal e certificar-se de que vc está enviando o que pensa estar enviando.
Yago_Ernandes
O microterminal suporta navegação de cursor porque num programa da própria empresa que eu tenho, é possível mudar a linha em que o cursor está, nó não muda a coluna…
Pode ser a segunda opção, eu tenho o wireshark aqui mas não sei usá-lo pra ver o que ta passando em uma porta específica…
Yago_Ernandes
eu consegui, entrei em contato com o suporte da empresa do terminal e eles me passaram um código em delphi, esse ai: