Olá amigos,
Estou com o seguinte desafio a ser feito. Um amigo fez um programa em C++ que lê em um determinado intervalo de tempo, 8 bytes que estão sendo recebidos pela porta serial e faz uma verificação se esse dados chegou corretamente. Abaixo envio o código:
/* >> Definicoes: << */
#define COM1 0x3f8 // COM 1
#define COM2 0x2f8 // COM 2
#define LCR (COM+3) // Line Control Register
#define LSR (COM+5) // Line Status Register
#define OK 0 // Recepcao OK!
#define SR 1 // Sem recepcao
/* >> Loop infinito: << */
while (1)
{
/* >> Recepcao dos Octetos: << */
#define cont Var1
StatusSerial = SR; // Inicializa Status Serial
for (cont=0;cont<200;cont++)// Recepcao dos Octetos
{ delay (2); // Aguarda 2mSeg
if (inportb (LSR) & 1) // Testa recepcao
{ Octeto[0] = inportb (COM);// Carrega Octeto 1
for (cont=0;cont<100;cont++)//
{ delay (1); // Aguarda 1mSeg
if (inportb (LSR) & 1) // Testa recepcao
{ Octeto[1] = inportb (COM); // Carrega Octeto 2
for (cont=0;cont<100;cont++)//
{ delay (1); // Aguarda 1mSeg
if (inportb (LSR) & 1) // Testa recepcao
{ Octeto[2] = inportb (COM); // Carrega Octeto 3
for (cont=0;cont<100;cont++)//
{ delay (1);
if (inportb (LSR) & 1) // Testa recepcao
{ Octeto[3] = inportb (COM); // Carrega Octeto 4
for (cont=0;cont<100;cont++)//
{ delay (1);
if (inportb (LSR) & 1) // Testa recepcao
{ Octeto[4] = inportb (COM); // Carrega Octeto 5
for (cont=0;cont<100;cont++)//
{ delay (1);
if (inportb (LSR) & 1) // Testa recepcao
{ Octeto[5] = inportb (COM); // Carrega Octeto 6
for (cont=0;cont<100;cont++)//
{ delay (1);
if (inportb (LSR) & 1) // Testa recepcao
{ Octeto[6] = inportb (COM); // Carrega Octeto 7
for (cont=0;cont<100;cont++)//
{ delay (1);
if (inportb (LSR) & 1) // Testa recepcao
{ Octeto[7] = inportb (COM);// Carrega Octeto 8
cont = 200; // Sai do for
StatusSerial = OK; // Recepcao OK
};
};
};
};
};
};
};
};
};
};
};
};
};
};
}
else StatusSerial = SR; // Sem recepcao (400mSeg)
};// Final do for Octeto 1
O que ocorre é que ele me solicitou que eu fizesse esse mesmo programa em Java. O programa já está todo estruturado, ou seja, testando a comunicação com a Serial, abrindo a porta Serial, etc… O que falta é fazer esse mesmo procedimento em Java.
Fiquei sabendo que utlizar JNI seria uma boa, mas não sei nem por onde começar pra utilizar JNI.
Gostaria de uma ajuda de vocês pra saber como posso fazer isso em JAVA, e se alguém puder implementar isso em JNI eu ficaria agradecido, ou pelo menos me indicar o caminho das pedras.
Para o caso de alguém querer enviar algum arquivo, meu email é [email removido].
Um abraço!
George.
