Hola de nuevo, invie el entero inicial y final en vez del caracter, ahora la impresora me responde algo, pero no imprime nada.
Este es el código de retorno:
Los Bytes transformados a enteros
. 48
. 54
. 48
. 54
. 48
. 48
. 48
. 13
Como se logra apreciar el ultimo byte es el 13 en entero, según el manual este byte es porque la impresora esta retornando un error o warning, pero los tres primeros bytes si los junto no aparecen en el manual en la sección de errores.
Esta es la ultima modificación al código, en realidad modifique el metodo que envia el comando.
Código Javascript
:
Ver originalimport java.util.List;
import giovynet.nativelink.SerialPort;
import giovynet.serial.Baud;
import giovynet.serial.Com;
import giovynet.serial.Parameters;
public class Impresora
{
Com com;
Boolean sw=false;
public static void main(String[] args)
{
new Impresora();
}
public Impresora()
{
if(openCom("COM1"))
{
//Linea Inicio Comentario
sw=setCommand("60", "");
//Linea Comentario
sw=setCommand("111", "Hola Mundo");
//Linea Fin Comentario
sw=setCommand("61", "");
//Linea Fin, con corte papel
sw=setCommand("99", "");
if(!sw)
System.out.println("Error en el envio de comandos.");
else
{
System.out.println("Esperando respuesta!!");
System.out.println("Respuesta: "+getResponse());
}
if(!closeCom())
System.out.println("Error al cerrar el puerto.");
}
else
System.out.println("Error al abrir el puerto.");
}
public boolean openCom(String puerto)
{
SerialPort serialPort = new SerialPort();
List<String> portsFree = null;
try {
portsFree=serialPort.getFreeSerialPort();
}
catch (Exception e){
return false;
}
if(portsFree!=null&&portsFree.size()>0)
{
Parameters parameters = null;
try{
parameters = new Parameters();
}
catch (Exception e){
return false;
}
parameters.setPort(puerto);
parameters.setBaudRate(Baud._19200);
parameters.setByteSize("8");
parameters.setParity("n");
try{
com=new Com(parameters);
return true;
}
catch(Exception e) {
System.out.println(e.getMessage());
return false;
}
}
else
return false;
}
public boolean closeCom()
{
try {
com.close();
return true;
}
catch (Exception e) {
return false;
}
}
public boolean setCommand(String line, String comand)
{
try{
com.sendSingleData(135);
}
catch (Exception e) {
return false;
}
String finalComand=line+comand;
for(int i=0; i<finalComand.toCharArray().length; i++)
{
try{
com.sendSingleData(finalComand.toCharArray()[i]);
}catch(Exception e){
return false;
}
}
try{
com.sendSingleData(136);
return true;
}
catch (Exception e) {
return false;
}
}
public String getResponse()
{
byte bytes=0;
String response=new String();
while(bytes!=13 && bytes!=12)
{
try{
bytes=(byte)com.receiveSingleChar();
}catch(Exception e){
return "Read Port COM Error";
}
if(bytes==10)
break;
else
response+=bytes;
}
return response;
}
}