Inquiridor
De Java para C#

Discussão Geral
-
Bom dia !
Caro Desenvolvedores, Preciso desenvolver em c# uma rotina de impressao de cheque para impressora com comandos hexadecimal. Tenho um exemplo desta rotina em Java disponibilizado pelo próprio suporte da impressora.
Portanto precisava passar este exemplo em java para C# fácil? Bom não para quem esta iniciando o aprendizado em c# como eu, estou vindo de outra linguagem. Portanto conto com a caridade de alguém em me ajudar a migrar este código para c# , tbm ira servir e muito para meu aprendizado.***************************** codigo *********************************
import jssc.SerialPort;
import jssc.SerialPortException;
import jssc.SerialPortList;
import jssc.SerialPortEvent;
import jssc.SerialPortEventListener;
public class Deskcheck
{
public static void main(String[] args) throws Exception
{
System.out.println("Entrou no Main.");
try
{
SerialPort serialPort;
PortNames = new Vector<String>();
String[] portNames = SerialPortList.getPortNames();
PortNames.clear();
for(int i = 0; i < portNames.length; i++){
PortNames.add( portNames[i] );
}
serialPort = new SerialPort( PortNames.toArray()[0].toString() );
serialPort.openPort(); //Open serial port
serialPort.setParams( //Set params. Also serialPort.setParams(9600, 8, 1, 0);
SerialPort.BAUDRATE_9600
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
byte btCmds[] = new byte[200];
int szCmds, wdCnt;
String stValue;
//Envia pacote de dados
btCmds[0] = 0x1B;
btCmds[1] = '?'; //Pede Status
szCmds = 2; //Comando de 2 Bytes
for(int Count = 0;Count < szCmds; Count ++)
serialPort.writeByte( btCmds[Count]); //Preferi usar esse modo.
//serialPort.writeBytes( btCmds); //Outro modo
//Aguarda algum retorno
int Idx=0, wdTmo, pmTimeOut = 2000; //Timeout em miliseg
byte[] ptData = new byte[10];
byte[] Ret = new byte[2];
wdTmo = pmTimeOut;
while( wdTmo > 0 )
{
while( serialPort.getInputBufferBytesCount() > 0 )
{
wdTmo = pmTimeOut;
Ret = serialPort.readBytes(1);
ptData[Idx] = Ret[0];
Idx = Idx + 1;
}
TimeUnit.MILLISECONDS.sleep(100);
wdTmo = wdTmo - 100;
}
System.out.println("Dados Recebidos: "+ptData);
//Monta comando de um cheque completo
stValue = "001"; //Banco
btCmds[1] = (byte)0xA2;
btCmds[0] = 0x1B;
for(wdCnt=0;wdCnt < stValue.length() ;wdCnt++ )
{ btCmds[wdCnt+2] = stValue.getBytes()[wdCnt]; }
btCmds[wdCnt+2] = 0x0D;
szCmds = wdCnt+3;
for(int Count = 0;Count < szCmds; Count ++) //Envia Dados
serialPort.writeByte(btCmds[Count]);
stValue = "123456,00"; //Valor
obReg.Valor = stValue;
btCmds[1] = (byte)0xA3;
btCmds[0] = 0x1B;
for(wdCnt=0;wdCnt < stValue.length() ;wdCnt++ )
{ btCmds[wdCnt+2] = stValue.getBytes()[wdCnt]; }
btCmds[wdCnt+2] = 0x0D;
szCmds = wdCnt+3;
for(int Count = 0;Count < szCmds; Count ++) //Envia Dados
serialPort.writeByte(btCmds[Count]);
stValue = "01/01/2018"; //Data
btCmds[1] = (byte)0xA4;
btCmds[0] = 0x1B;
for(wdCnt=0;wdCnt < stValue.length() ;wdCnt++ )
{ btCmds[wdCnt+2] = stValue.getBytes()[wdCnt]; }
btCmds[wdCnt+2] = 0x0D;
szCmds = wdCnt+3;
for(int Count = 0;Count < szCmds; Count ++) //Envia Dados
serialPort.writeByte(btCmds[Count]);
stValue = "ERECHIM"; //Local
if( stValue.length() > 1 ) {
btCmds[1] = (byte)0xA1;
btCmds[0] = 0x1B;
for(wdCnt=0;wdCnt < stValue.length() ;wdCnt++ )
{ btCmds[wdCnt+2] = stValue.getBytes()[wdCnt]; }
btCmds[wdCnt+2] = 0x0D;
szCmds = wdCnt+3;
for(int Count = 0;Count < szCmds; Count ++) //Envia Dados
serialPort.writeByte(btCmds[Count]);
}
stValue = "FAVORECIDO"; //Favorecido
if( stValue.length() > 1 ) {
btCmds[1] = (byte)0xA0;
btCmds[0] = 0x1B;
for(wdCnt=0;wdCnt < stValue.length() ;wdCnt++ )
{ btCmds[wdCnt+2] = stValue.getBytes()[wdCnt]; }
btCmds[wdCnt+2] = 0x0D;
szCmds = wdCnt+3;
for(int Count = 0;Count < szCmds; Count ++) //Envia Dados
serialPort.writeByte(btCmds[Count]);
}
btCmds[1] = (byte)0xB0; //Imprime
btCmds[0] = 0x1B;
btCmds[2] = 0x0D;
szCmds = 3;
for(int Count = 0;Count < szCmds; Count ++) //Envia Dados
serialPort.writeByte(btCmds[Count]);
serialPort.closePort();
}
catch (SerialPortException ex) { System.out.println(ex); }
System.out.println("Encerrou o Main.");
System.exit(0);
}
}
**********************************************************************- Tipo Alterado IgorFKModerator terça-feira, 10 de setembro de 2019 17:57