Ler dados da porta serial

1 resposta
G

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.

1 Resposta

R

tem como vc acessar a porta serial em java

http://java.sun.com/products/javacomm/

Criado 4 de janeiro de 2005
Ultima resposta 4 de jan. de 2005
Respostas 1
Participantes 2