Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > .NET Framework > Forum > สอบถามโปรแกรมอ่าน serial port หน่อยครับ พอใช้ไปนานๆ แล้วกดปิดมันค้างครับ



 

สอบถามโปรแกรมอ่าน serial port หน่อยครับ พอใช้ไปนานๆ แล้วกดปิดมันค้างครับ

 



Topic : 131321



โพสกระทู้ ( 288 )
บทความ ( 0 )



สถานะออฟไลน์




คือผมทำดปรแกรมอ่าน นน. จากเครื่องชั่งผ่านสาย RS232

โค้ดตามด้านล่างครับ

มันอ่านไม่หยุดเลยคับ

อยากจะให้มัน รับค่า + เขียนไฟล์ ทุกๆ 2 วินาทีนี้ต้องทำยังไงครับ
มันอ่านรวดดดดด แล้วพอเปิดใช้งานๆ มากดปิด มันค้างครับ



Code (VB.NET)
Imports System
Imports System.Threading
Imports System.IO.Ports
Imports System.ComponentModel
Imports System.IO


Public Class Form1


    '------------------------------------------------
    Dim myPort As Array
    Dim filePath As String

    Delegate Sub SetTextCallback(ByVal [text] As String) 'Added to prevent threading errors during receiveing of data
    '------------------------------------------------

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        SerialPort1.PortName = "COM1"
        SerialPort1.BaudRate = "9600"
        SerialPort1.Open()
        'myPort = IO.Ports.SerialPort.GetPortNames()
        'ComboBox1.Items.AddRange(myPort)
        
        Timer1.Enabled = True
        Timer1.Interval = 1000

        Dim Weight As String = RichTextBox2.Text.Length()
        
        TextBox1.Text = Weight
    End Sub


    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        SerialPort1.Write(RichTextBox2.Text & vbCr) 'concatenate with \n
        'SaveTextToFile(RichTextBox2.Text, "D:\weight.txt")
        filePath = System.IO.Path.Combine(
               My.Computer.FileSystem.SpecialDirectories.MyDocuments, "weight.txt")
        My.Computer.FileSystem.WriteAllText(filePath, RichTextBox2.Text, False)

        Dim Weight As String = RichTextBox2.Text.Length()
        If Weight > 400 Then
            RichTextBox2.Text = ""
        End If



    End Sub
    


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



    Private Sub ReceivedText(ByVal [text] As String) 'input from ReadExisting
        If Me.RichTextBox2.InvokeRequired Then
            Dim x As New SetTextCallback(AddressOf ReceivedText)
            Me.Invoke(x, New Object() {(text)})
        Else
            Me.RichTextBox2.Text &= [text] 'append text
        End If
    End Sub



    Public Function SaveTextToFile(ByVal strData As String, _
     ByVal FullPath As String, _
       Optional ByVal ErrInfo As String = "") As Boolean

        'Dim Contents As String
        Dim bAns As Boolean = False
        Dim objReader As StreamWriter
        Try
            objReader = New StreamWriter(FullPath)
            objReader.Write(strData)
            objReader.Close()
            bAns = True
        Catch Ex As Exception
            ErrInfo = Ex.Message

        End Try
        Return bAns
    End Function
     
   
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Timer1.Stop()
        Timer1.Enabled = False


        If SerialPort1.IsOpen Then
            SerialPort1.Close()
        End If

        Application.Exit()

    End Sub
End Class



รบกวนหน่อยครับ ใครพอมีแนวทางบ้าง



Tag : .NET, VB.NET







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2018-06-20 16:36:40 By : ilikeit View : 2407 Reply : 5
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

เข้าใจว่าใช้ Timer แล้วมันน่าจะทำงานเป็น Loop ครับ แล้วน่าจะมีปัญหาเรื่องการเชื่อมต่อ Open -> Close ลองเช็คดูดีๆ ว่ามีการเปิด/ปิด ครบหรือเปล่าครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-06-21 13:01:40 By : mr.win
 


 

No. 2



โพสกระทู้ ( 288 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณครับ ถ้าเปิดโปรแกรมไม่นาน แล้วกดปิด มันจะทำงานได้ครับ ถ้าเปิดไว้นานๆ แล้วกดปุ่มปิด มันจะค้างเลยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2018-06-22 14:45:02 By : ilikeit
 

 

No. 3



โพสกระทู้ ( 13 )
บทความ ( 0 )



สถานะออฟไลน์


แนะนำด้วยค่ะ อยากรู้เหมือนกัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-08-09 10:45:26 By : daino_tuckky
 


 

No. 4



โพสกระทู้ ( 55 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ผมคิดว่า น่าจะเกิดการวนลูปมากเกินไปใน timer แล้วไม่ได้เครียค่า ครับ ลอง .Dispose ดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-08-13 09:03:46 By : 2127832830566218
 


 

No. 5



โพสกระทู้ ( 13 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

แปลงเอานะครับ หามาให้
Code (VB.NET)
System::Void Form1_FormClosing(System::Object^ sender, System::Windows::Forms::FormClosingEventArgs^ e) {
if (serialPort1->IsOpen) {
e->Cancel = true;
Thread^ CloseDown = gcnew Thread(gcnew ThreadStart(this, &Form1::CloseSerialOnExit));
CloseDown->Start();
}
}
void CloseSerialOnExit() {
try {
serialPort1->Close();
this->Invoke(gcnew MethodInvoker(this, &Form1::NowClose));
}
catch (Exception^ ex) {
MessageBox::Show(ex->Message);
}
}
void NowClose() {
this->Close();
}



Quote:
ถ้าจะถามพี่ goo ถามแบบตรงๆไปเลยครับ
serial port hangs whilst closing vb c#
เดียวพี่ท่านจะหาคำตอบมาให้เราเอง

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-08-13 09:52:15 By : บัญดิษฐ
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามโปรแกรมอ่าน serial port หน่อยครับ พอใช้ไปนานๆ แล้วกดปิดมันค้างครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่