как сохранить данные, поступающие с серийного Arduino, написанного на VB.NET TextBox - PullRequest
0 голосов
/ 19 ноября 2018

Я отправляю данные из arduino в приложение VB.NET, например, номер rfid, который будет отображаться в TextBox3.Text, данные передаются без проблем, но после показа в TextBox3.text затем удаляются из текстового поля, и я хочу, чтобы он был в текстовом поле нетудаляйте его, пока я не удалю его.Как мне этого добиться?

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);   // Initiate a serial communication
SPI.begin();      // Initiate  SPI bus
mfrc522.PCD_Init();   // Initiate MFRC522

}
void loop() 
{
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent()) 
{
 return;
}
 // Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial()) 
 {
   return;
 }
 //Show UID on serial monitor
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++) 
 {
    Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
    Serial.print(mfrc522.uid.uidByte[i], HEX);

  }
   delay(5000);

 }

и код в VB.NET:

  Private Sub TextBox3_TextChanged(sender As Object, e As EventArgs) Handles TextBox3.TextChanged
    TextBox2.Text = TextBox3.Text

    Dim str As String = "Server=localhost;Port=3306;Database=testdb;Uid=root;Pwd=password"


    Using con As New MySqlConnection(str)


        Dim query As String = "select * from testdatawhere rfid_tag='" & TextBox3.Text & "' 
                               and Date_Operation<= '" & Date.Now.ToString("yyyy-MM-dd ") & "'
                               and Start_Time<= '" & Date.Now.ToString("HH:mm:ss ") & "' 
                               and End_Time>= '" & Date.Now.ToString("HH:mm:ss ") & "' 
                               or spring_size='' " 'Note:TextBox3 is the RFID number come from RFID arduino
        Dim cm As New MySqlCommand(query, con)


        con.Open()


        Dim rd As MySqlDataReader = cm.ExecuteReader()

        ' Check if any rows exist
        If rd.Read() Then
            If rd.GetString(3) = "small" Then
                SerialPort1.Write("1")

                MessageBox.Show("small")


            ElseIf rd.GetString(3) = "Big" Then
                SerialPort1.Write("2")

                MessageBox.Show("big")

            ElseIf rd.GetString(3) = "Midium" Then
                SerialPort1.Write("3")

                MessageBox.Show("Mid")


            End If

        End If
    End Using
End Sub

и код для последовательного подключения в VB.NET:

 Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles   Timer1.Tick
    receivedData = ReceiveSerialData()
    TextBox3.Text = receivedData

End Sub

1 Ответ

0 голосов
/ 19 ноября 2018

проблема была в этом коде

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles   Timer1.Tick
   receivedData = ReceiveSerialData()
   TextBox3.Text = receivedData

End Sub

правильный, как это:

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles   Timer1.Tick
  receivedData &= ReceiveSerialData()
  TextBox3.Text &= receivedData

End Sub

Я пропустил &, чтобы поставить его до =

...