Netbeansプロジェクトがあります。ボタンが押されたとき、それは、これを実行することを:ユーザがそれを複数回スキャンするとき最初のRFIDのUIDテキストファイルのスキャン済み表示(jSSC Arduinoとjava(Netbeans JFrame))
ボタンが押されたif(!jTextField1.getText().isEmpty()){
if(serialPort != null){
try {
serialPort.removeEventListener();
if(serialPort.isOpened()){
serialPort.closePort();
}
} catch (SerialPortException ex) {
Logger.getLogger(test.class.getName())
.log(Level.SEVERE, null, ex);
}
}
}
jTextField1.setText(null);
portInitialize(serialPort);
PortSerialReader(serialPort);
jButton1.setEnabled(false);
は、ユーザーが現在RFIDをスキャンすることができ、問題がある、すべてのUIDも表示されますテキストフィールドに表示されます。 は、例えば、スキャンユーザー:F9D6A12Aは、それが表示されるが、ユーザが別のRFIDをスキャンするとき、テキストフィールドの表示は、このように見えます。F9D6A12AのF9D6A12A。私は最初にスキャンされたRFIDのUIDを表示したいだけです。コードで何を変更する必要がありますか?ここで
public void PortSerialReader(SerialPort sPort){
try{
sPort.setEventsMask(MASK_RXCHAR);
sPort.addEventListener((SerialPortEvent serialPortEvent) -> {
if(serialPortEvent.isRXCHAR()){
try{
String st = sPort.readString(serialPortEvent.getEventValue());
System.out.println(st);
jTextField1.setText(jTextField1.getText() + st);
jButton1.setEnabled(true);
}catch(SerialPortException e){
Logger.getLogger(test.class.getName())
.log(Level.SEVERE, null, e);
}
}
});
}catch(SerialPortException ex){
Logger.getLogger(test.class.getName())
.log(Level.SEVERE, null, ex);
}
}
はArduinoのコードです:
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
void setup() {
Serial.begin(9600); // Initialize serial communications with the PC
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522 card
}
void loop() {
String code = "";
// Look for new cards
if (! mfrc522.PICC_IsNewCardPresent()) {
return;
}
// Select one of the cards
if (! mfrc522.PICC_ReadCardSerial()) {
return;
}
for (byte i = 0; i < mfrc522.uid.size; i++) {
code += String(mfrc522.uid.uidByte[i] < 0x10 ? "0" :"");
code += String(mfrc522.uid.uidByte[i], HEX);
}
Serial.println(code);
mfrc522.PICC_HaltA();
}
をあなたを助けるでしょう(これは)' ... – MadProgrammer
は、私はすでにそれを試してみました、はい、それは表示さ最初のRFIDのみがスキャンされたが不完全であり、代わりに表示されない文字が次の利用可能なスキャンで表示された。 – Xue
rfidの読み込みが完了したら、どのように知っていますか? – MadProgrammer