gpt4 book ai didi

java - RFID - 输出不完整?

转载 作者:行者123 更新时间:2023-12-02 04:05:34 26 4
gpt4 key购买 nike

我一直在测试和研究我的 RFID 扫描器代码,但发现了一些奇怪的东西。当我点击卡片时,在某些情况下结果会被截断。

示例:

点击 1:[2]1,000,007,000242985

点击 2:7[3][2]1,000,007,0002429

点击 3:857[3][2]1,000,007,00024

点击n:等等

预期输出:[2]R,AAA,TTT,NNNNNNNNNN[3]

R = if the ID is registered or not: flags 1 and 0
A = The address where the ID is located inside the scanner's memory
T = the type of card
N = the ID number

如果我理解正确的话,传输以 ASCII 字符 2 和 3 开始和结束。所以看起来我得到的是不完整的结果。我该如何解决这个问题?

这是我的完整代码:

import jssc.SerialPort; 
import jssc.SerialPortEvent;
import jssc.SerialPortEventListener;
import jssc.SerialPortException;

public class ComControl{
static SerialPort serialPort;
String[] collector;

public static void main(String[] args) {
serialPort = new SerialPort("COM6");
try {
serialPort.openPort();//Open serial port
serialPort.setParams(SerialPort.BAUDRATE_9600,SerialPort.DATABITS_8,SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);//Set params. Also you can set params by this string: serialPort.setParams(9600, 8, 1, 0);
serialPort.writeBytes("\002v0\003".getBytes());//Write data to port
serialPort.closePort();//Close serial port
}
catch (SerialPortException ex) {
System.out.println(ex);
}
try {
serialPort.openPort();//Open port
serialPort.setParams(9600, 8, 1, 0);//Set params
int mask = SerialPort.MASK_RXCHAR + SerialPort.MASK_CTS + SerialPort.MASK_DSR;//Prepare mask
serialPort.setEventsMask(mask);//Set mask
serialPort.addEventListener(new SerialPortReader());//Add SerialPortEventListener
}
catch (SerialPortException ex) {
System.out.println(ex);
}
}
static class SerialPortReader implements SerialPortEventListener {
@Override
public void serialEvent(SerialPortEvent event) {
try{

}catch(Exception e){
System.out.println(e);
}

if(event.isRXCHAR()){//If data is available
if(event.getEventValue() == 10){//Check bytes count in the input buffer
//Read data, if 10 bytes available
String sizer="";
try{
sizer="";
sizer += serialPort.readString();

}catch (SerialPortException ex) {
System.out.println(ex);
}
System.out.println(sizer);
sizer = "";
}
}
// else if(event.isCTS()){//If CTS line has changed state
// if(event.getEventValue() == 1){//If line is ON
// System.out.println("CTS - ON");
// }
// else {
// System.out.println("CTS - OFF");
// }
// }
// else if(event.isDSR()){///If DSR line has changed state
// if(event.getEventValue() == 1){//If line is ON
// System.out.println("DSR - ON");
// }
// else {
// System.out.println("DSR - OFF");
// }
// }
}
}
}

以下是有关我正在使用的设备的信息: Low Cost RFID Reader - e-Gizmo

最佳答案

没关系,我已经找到答案了。我很愚蠢,当它实际上是 22 字节时,却输入了 10 字节。

关于java - RFID - 输出不完整?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35153514/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com