Comunicação direta via protocolo FiscNet

Olá pessoal!

Estou tendo um grave problema com a impressora dataregis que utiliza o protocolo fiscnet, não consigo encontrar suporte adequado por parte dela, até tentaram mas não exatamente se o problema está com a impressora, talvez seja o meio como tento comunicar.

Essa é a minha classe de teste:

package impressoras;
import gnu.io.*;
import java.io.*;
import javax.swing.JOptionPane;

public class ListPortClass
{

	public static void main(String[] s)
	{
		try
		{
			int idChamada = 244;

			CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("COM1");
			SerialPort serialPort = (SerialPort) portIdentifier.open("ListPortClass", 2000);
			serialPort.setSerialPortParams(115200, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_EVEN);
			OutputStream mOutputToPort = serialPort.getOutputStream();

			for (int i = 0;i<1;i++)
			{
				System.out.println("Abrindo o cupom fiscal...");
				idChamada++;
				String mValue = "{"+idChamada+";AbreCupomFiscal;;}";				
				mOutputToPort.write(mValue.getBytes());
				mOutputToPort.flush();
				System.out.println(mValue);
				Thread.sleep(2500);

				System.out.println("Vendendo o item...");
				idChamada++;
				mValue = "{"+idChamada+";VendeItem;CodAliquota=-3 CodProduto=\"1\" NomeProduto=\"TESTE\" PrecoUnitario=1,00 Quantidade=1,000 Unidade=\"UN\";}";				
				mOutputToPort.write(mValue.getBytes());
				mOutputToPort.flush();
				System.out.println(mValue);
				Thread.sleep(2500);

				System.out.println("Pagando em dinheiro...");
				idChamada++;
				mValue = "{"+idChamada+";PagaCupom;CodMeioPagamento=-2 Valor=1,00;}";;				
				mOutputToPort.write(mValue.getBytes());
				mOutputToPort.flush();
				System.out.println(mValue);
				Thread.sleep(4500);

				System.out.println("Encerrando o cupom...");
				idChamada++;
				mValue = "{"+idChamada+";EncerraDocumento;TextoPromocional=\"Obrigado pela preferencia, volte sempre!\";}";				
				mOutputToPort.write(mValue.getBytes());
				mOutputToPort.flush();
				System.out.println(mValue);
				Thread.sleep(10000);
			}
			mOutputToPort.close(); 
			serialPort.close();
			JOptionPane.showMessageDialog(null, "Fim");			
		}
		catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Usei a biblioteca do RXTXComm.

Como vocês viram, tem um laço de duas voltas, para cada volta imprimo um cupom completo mas ao executar só é impresso o primeiro, o segundo fica “engasgado” na memória dela, depois eu uso um programa de teste da dataregis e consigo fazer com que esse cupom seja “desengasgado”. Esse segundo cupom é gerado normalmente mas não sai na hora, fica preso na memoria da impressora.