Boa tarde a todos, estou tentando desenvolver uma aplicação para capturar o peso de uma balança filizola mf-30 com java, mas sem sucesso!
No código que estou fazendo, utilizei a biblioteca jSerialComm.
A balança está conetada e comunicando na porta COM3, porque testei com outro software.
import com.fazecast.jSerialComm.SerialPort;
public class testeLeituraSerial {
public static void main(String[] args) {
// Configuração da porta serial
SerialPort comPort = SerialPort.getCommPort("COM3"); // Substitua "COM1" pela porta correta
comPort.setComPortParameters(9600, 8, SerialPort.ONE_STOP_BIT, SerialPort.NO_PARITY);
comPort.setComPortTimeouts(SerialPort.TIMEOUT_READ_SEMI_BLOCKING, 0, 0);
if (comPort.openPort()) {
System.out.println("Porta serial aberta com sucesso!");
try {
// Envio do comando para capturar o peso (consulte o manual da balança para o comando correto)
String command = "P"; // Exemplo de comando para solicitar o peso (de acordo com o protocolo da balança)
comPort.getOutputStream().write(command.getBytes());
// Leitura da resposta da balança
byte[] buffer = new byte[1024];
int bytesRead = comPort.getInputStream().read(buffer);
String response = new String(buffer, 0, bytesRead);
// Tratamento da resposta para extrair o peso
System.out.println("Peso capturado: " + response.trim());
} catch (Exception e) {
e.printStackTrace();
} finally {
comPort.closePort();
}
} else {
System.out.println("Erro ao abrir a porta serial.");
}
}
}
Não retorna o peso. Alguém tem ideia do que está errado. Ou uma sugestão melhor para fazer isso…