loop data in textbox from serial data vb.net












0















I'm newbie to VB.net. my case is, i need to display data from serial port to text box. In continuous loop. How do i do that?



I have wrote simple program to display the data. i can display the data once in the textbox, but not continuously.



serialport1 is where i get data from port 1. serialport2 is data from port 2.



SerialPort2.Write("!12,F" & vbCr)


data "!11,F" and "!12,F" is a command to my 2 device.



TextBox2.Text and TextBox5.Text is where i want to continuously display my data.



here is the code;



Imports System
Imports System.Threading
Imports System.IO.Ports
Imports System.ComponentModel

Public Class Form2

Dim myPort As Array
Dim myport1 As Array
Delegate Sub SetTextCallback(ByVal [text] As String) 'Added to prevent threading errors during receiveing of data
'------------------------------------------------
Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

myPort = IO.Ports.SerialPort.GetPortNames()
myport1 = IO.Ports.SerialPort.GetPortNames()
ComboBox1.Items.AddRange(myPort)
ComboBox2.Items.AddRange(myport1)

btnwrite.Enabled = False

End Sub
'------------------------------------------------
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles btninit.Click


SerialPort1.Encoding = System.Text.Encoding.GetEncoding(28591) ' convert to ascii
SerialPort1.PortName = ComboBox1.Text
SerialPort1.BaudRate = TextBox3.Text
SerialPort1.Open()

SerialPort2.Encoding = System.Text.Encoding.GetEncoding(28591) ' convert to ascii
SerialPort2.PortName = ComboBox2.Text
SerialPort2.BaudRate = TextBox3.Text
SerialPort2.Open()


btninit.Enabled = False
btnwrite.Enabled = True
btnwrite2.Enabled = True
btnclose.Enabled = True

End Sub

'------------------------------------------------
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles btnwrite.Click

SerialPort1.Write("!11,F" & vbCr) 'concatenate with n

End Sub


Private Sub btnwrite2_Click(sender As Object, e As EventArgs) Handles btnwrite2.Click

SerialPort2.Write("!12,F" & vbCr) 'concatenate with n

End Sub

Private Sub SerialPort1_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived

ReceivedText(SerialPort1.ReadExisting())

End Sub

Private Sub SerialPort2_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort2.DataReceived

ReceivedText1(SerialPort2.ReadExisting())


End Sub

Private Sub ReceivedText(ByVal [text] As String) 'input from ReadExisting


If Me.TextBox2.InvokeRequired Then
Dim x As New SetTextCallback(AddressOf ReceivedText)
Me.Invoke(x, New Object() {(text)})
Else
Me.TextBox2.Text &= [text] 'append text

End If

End Sub

Private Sub ReceivedText1(ByVal [text] As String) 'input from ReadExisting


If Me.TextBox5.InvokeRequired Then
Dim x As New SetTextCallback(AddressOf ReceivedText1)
Me.Invoke(x, New Object() {(text)})
Else
Me.TextBox5.Text &= [text] 'append text
End If

End Sub

Private Sub btnclose_click(sender As System.Object, e As System.EventArgs) Handles btnclose.Click

SerialPort1.Close()
SerialPort2.Close()

btninit.Enabled = True
btnwrite.Enabled = False
btnwrite2.Enabled = False
btnclose.Enabled = False

End Sub

End Class









share|improve this question


















  • 1





    I think you should use a background worker with a timer.

    – preciousbetine
    Nov 24 '18 at 15:24











  • Make sure you are receiving text data not binary data.

    – Imad Abu Hayyah
    Nov 24 '18 at 17:05











  • in addition to a background worker also a simple winform timer could be useful for you. You can set a timer interval based on your needs and read your serial port in timer.tick private sub

    – Deid
    Nov 26 '18 at 13:44
















0















I'm newbie to VB.net. my case is, i need to display data from serial port to text box. In continuous loop. How do i do that?



I have wrote simple program to display the data. i can display the data once in the textbox, but not continuously.



serialport1 is where i get data from port 1. serialport2 is data from port 2.



SerialPort2.Write("!12,F" & vbCr)


data "!11,F" and "!12,F" is a command to my 2 device.



TextBox2.Text and TextBox5.Text is where i want to continuously display my data.



here is the code;



Imports System
Imports System.Threading
Imports System.IO.Ports
Imports System.ComponentModel

Public Class Form2

Dim myPort As Array
Dim myport1 As Array
Delegate Sub SetTextCallback(ByVal [text] As String) 'Added to prevent threading errors during receiveing of data
'------------------------------------------------
Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

myPort = IO.Ports.SerialPort.GetPortNames()
myport1 = IO.Ports.SerialPort.GetPortNames()
ComboBox1.Items.AddRange(myPort)
ComboBox2.Items.AddRange(myport1)

btnwrite.Enabled = False

End Sub
'------------------------------------------------
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles btninit.Click


SerialPort1.Encoding = System.Text.Encoding.GetEncoding(28591) ' convert to ascii
SerialPort1.PortName = ComboBox1.Text
SerialPort1.BaudRate = TextBox3.Text
SerialPort1.Open()

SerialPort2.Encoding = System.Text.Encoding.GetEncoding(28591) ' convert to ascii
SerialPort2.PortName = ComboBox2.Text
SerialPort2.BaudRate = TextBox3.Text
SerialPort2.Open()


btninit.Enabled = False
btnwrite.Enabled = True
btnwrite2.Enabled = True
btnclose.Enabled = True

End Sub

'------------------------------------------------
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles btnwrite.Click

SerialPort1.Write("!11,F" & vbCr) 'concatenate with n

End Sub


Private Sub btnwrite2_Click(sender As Object, e As EventArgs) Handles btnwrite2.Click

SerialPort2.Write("!12,F" & vbCr) 'concatenate with n

End Sub

Private Sub SerialPort1_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived

ReceivedText(SerialPort1.ReadExisting())

End Sub

Private Sub SerialPort2_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort2.DataReceived

ReceivedText1(SerialPort2.ReadExisting())


End Sub

Private Sub ReceivedText(ByVal [text] As String) 'input from ReadExisting


If Me.TextBox2.InvokeRequired Then
Dim x As New SetTextCallback(AddressOf ReceivedText)
Me.Invoke(x, New Object() {(text)})
Else
Me.TextBox2.Text &= [text] 'append text

End If

End Sub

Private Sub ReceivedText1(ByVal [text] As String) 'input from ReadExisting


If Me.TextBox5.InvokeRequired Then
Dim x As New SetTextCallback(AddressOf ReceivedText1)
Me.Invoke(x, New Object() {(text)})
Else
Me.TextBox5.Text &= [text] 'append text
End If

End Sub

Private Sub btnclose_click(sender As System.Object, e As System.EventArgs) Handles btnclose.Click

SerialPort1.Close()
SerialPort2.Close()

btninit.Enabled = True
btnwrite.Enabled = False
btnwrite2.Enabled = False
btnclose.Enabled = False

End Sub

End Class









share|improve this question


















  • 1





    I think you should use a background worker with a timer.

    – preciousbetine
    Nov 24 '18 at 15:24











  • Make sure you are receiving text data not binary data.

    – Imad Abu Hayyah
    Nov 24 '18 at 17:05











  • in addition to a background worker also a simple winform timer could be useful for you. You can set a timer interval based on your needs and read your serial port in timer.tick private sub

    – Deid
    Nov 26 '18 at 13:44














0












0








0








I'm newbie to VB.net. my case is, i need to display data from serial port to text box. In continuous loop. How do i do that?



I have wrote simple program to display the data. i can display the data once in the textbox, but not continuously.



serialport1 is where i get data from port 1. serialport2 is data from port 2.



SerialPort2.Write("!12,F" & vbCr)


data "!11,F" and "!12,F" is a command to my 2 device.



TextBox2.Text and TextBox5.Text is where i want to continuously display my data.



here is the code;



Imports System
Imports System.Threading
Imports System.IO.Ports
Imports System.ComponentModel

Public Class Form2

Dim myPort As Array
Dim myport1 As Array
Delegate Sub SetTextCallback(ByVal [text] As String) 'Added to prevent threading errors during receiveing of data
'------------------------------------------------
Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

myPort = IO.Ports.SerialPort.GetPortNames()
myport1 = IO.Ports.SerialPort.GetPortNames()
ComboBox1.Items.AddRange(myPort)
ComboBox2.Items.AddRange(myport1)

btnwrite.Enabled = False

End Sub
'------------------------------------------------
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles btninit.Click


SerialPort1.Encoding = System.Text.Encoding.GetEncoding(28591) ' convert to ascii
SerialPort1.PortName = ComboBox1.Text
SerialPort1.BaudRate = TextBox3.Text
SerialPort1.Open()

SerialPort2.Encoding = System.Text.Encoding.GetEncoding(28591) ' convert to ascii
SerialPort2.PortName = ComboBox2.Text
SerialPort2.BaudRate = TextBox3.Text
SerialPort2.Open()


btninit.Enabled = False
btnwrite.Enabled = True
btnwrite2.Enabled = True
btnclose.Enabled = True

End Sub

'------------------------------------------------
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles btnwrite.Click

SerialPort1.Write("!11,F" & vbCr) 'concatenate with n

End Sub


Private Sub btnwrite2_Click(sender As Object, e As EventArgs) Handles btnwrite2.Click

SerialPort2.Write("!12,F" & vbCr) 'concatenate with n

End Sub

Private Sub SerialPort1_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived

ReceivedText(SerialPort1.ReadExisting())

End Sub

Private Sub SerialPort2_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort2.DataReceived

ReceivedText1(SerialPort2.ReadExisting())


End Sub

Private Sub ReceivedText(ByVal [text] As String) 'input from ReadExisting


If Me.TextBox2.InvokeRequired Then
Dim x As New SetTextCallback(AddressOf ReceivedText)
Me.Invoke(x, New Object() {(text)})
Else
Me.TextBox2.Text &= [text] 'append text

End If

End Sub

Private Sub ReceivedText1(ByVal [text] As String) 'input from ReadExisting


If Me.TextBox5.InvokeRequired Then
Dim x As New SetTextCallback(AddressOf ReceivedText1)
Me.Invoke(x, New Object() {(text)})
Else
Me.TextBox5.Text &= [text] 'append text
End If

End Sub

Private Sub btnclose_click(sender As System.Object, e As System.EventArgs) Handles btnclose.Click

SerialPort1.Close()
SerialPort2.Close()

btninit.Enabled = True
btnwrite.Enabled = False
btnwrite2.Enabled = False
btnclose.Enabled = False

End Sub

End Class









share|improve this question














I'm newbie to VB.net. my case is, i need to display data from serial port to text box. In continuous loop. How do i do that?



I have wrote simple program to display the data. i can display the data once in the textbox, but not continuously.



serialport1 is where i get data from port 1. serialport2 is data from port 2.



SerialPort2.Write("!12,F" & vbCr)


data "!11,F" and "!12,F" is a command to my 2 device.



TextBox2.Text and TextBox5.Text is where i want to continuously display my data.



here is the code;



Imports System
Imports System.Threading
Imports System.IO.Ports
Imports System.ComponentModel

Public Class Form2

Dim myPort As Array
Dim myport1 As Array
Delegate Sub SetTextCallback(ByVal [text] As String) 'Added to prevent threading errors during receiveing of data
'------------------------------------------------
Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

myPort = IO.Ports.SerialPort.GetPortNames()
myport1 = IO.Ports.SerialPort.GetPortNames()
ComboBox1.Items.AddRange(myPort)
ComboBox2.Items.AddRange(myport1)

btnwrite.Enabled = False

End Sub
'------------------------------------------------
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles btninit.Click


SerialPort1.Encoding = System.Text.Encoding.GetEncoding(28591) ' convert to ascii
SerialPort1.PortName = ComboBox1.Text
SerialPort1.BaudRate = TextBox3.Text
SerialPort1.Open()

SerialPort2.Encoding = System.Text.Encoding.GetEncoding(28591) ' convert to ascii
SerialPort2.PortName = ComboBox2.Text
SerialPort2.BaudRate = TextBox3.Text
SerialPort2.Open()


btninit.Enabled = False
btnwrite.Enabled = True
btnwrite2.Enabled = True
btnclose.Enabled = True

End Sub

'------------------------------------------------
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles btnwrite.Click

SerialPort1.Write("!11,F" & vbCr) 'concatenate with n

End Sub


Private Sub btnwrite2_Click(sender As Object, e As EventArgs) Handles btnwrite2.Click

SerialPort2.Write("!12,F" & vbCr) 'concatenate with n

End Sub

Private Sub SerialPort1_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived

ReceivedText(SerialPort1.ReadExisting())

End Sub

Private Sub SerialPort2_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort2.DataReceived

ReceivedText1(SerialPort2.ReadExisting())


End Sub

Private Sub ReceivedText(ByVal [text] As String) 'input from ReadExisting


If Me.TextBox2.InvokeRequired Then
Dim x As New SetTextCallback(AddressOf ReceivedText)
Me.Invoke(x, New Object() {(text)})
Else
Me.TextBox2.Text &= [text] 'append text

End If

End Sub

Private Sub ReceivedText1(ByVal [text] As String) 'input from ReadExisting


If Me.TextBox5.InvokeRequired Then
Dim x As New SetTextCallback(AddressOf ReceivedText1)
Me.Invoke(x, New Object() {(text)})
Else
Me.TextBox5.Text &= [text] 'append text
End If

End Sub

Private Sub btnclose_click(sender As System.Object, e As System.EventArgs) Handles btnclose.Click

SerialPort1.Close()
SerialPort2.Close()

btninit.Enabled = True
btnwrite.Enabled = False
btnwrite2.Enabled = False
btnclose.Enabled = False

End Sub

End Class






vb.net






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 24 '18 at 12:37









Hariz TrancendsHariz Trancends

112




112








  • 1





    I think you should use a background worker with a timer.

    – preciousbetine
    Nov 24 '18 at 15:24











  • Make sure you are receiving text data not binary data.

    – Imad Abu Hayyah
    Nov 24 '18 at 17:05











  • in addition to a background worker also a simple winform timer could be useful for you. You can set a timer interval based on your needs and read your serial port in timer.tick private sub

    – Deid
    Nov 26 '18 at 13:44














  • 1





    I think you should use a background worker with a timer.

    – preciousbetine
    Nov 24 '18 at 15:24











  • Make sure you are receiving text data not binary data.

    – Imad Abu Hayyah
    Nov 24 '18 at 17:05











  • in addition to a background worker also a simple winform timer could be useful for you. You can set a timer interval based on your needs and read your serial port in timer.tick private sub

    – Deid
    Nov 26 '18 at 13:44








1




1





I think you should use a background worker with a timer.

– preciousbetine
Nov 24 '18 at 15:24





I think you should use a background worker with a timer.

– preciousbetine
Nov 24 '18 at 15:24













Make sure you are receiving text data not binary data.

– Imad Abu Hayyah
Nov 24 '18 at 17:05





Make sure you are receiving text data not binary data.

– Imad Abu Hayyah
Nov 24 '18 at 17:05













in addition to a background worker also a simple winform timer could be useful for you. You can set a timer interval based on your needs and read your serial port in timer.tick private sub

– Deid
Nov 26 '18 at 13:44





in addition to a background worker also a simple winform timer could be useful for you. You can set a timer interval based on your needs and read your serial port in timer.tick private sub

– Deid
Nov 26 '18 at 13:44












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53458219%2floop-data-in-textbox-from-serial-data-vb-net%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53458219%2floop-data-in-textbox-from-serial-data-vb-net%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks

Calculate evaluation metrics using cross_val_predict sklearn

Insert data from modal to MySQL (multiple modal on website)