Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

.net 2 - Πρόσβαση σε συσκευές μέσω Serial Port

Îåêßíçóå áðü ôï ìÝëïò JohnL. Τελευταία δημοσίευση από το μέλος Ioannis P στις 22-06-2006, 11:34. Υπάρχουν 3 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  19-06-2006, 17:14 14126

    Tongue Tied [:S] .net 2 - Πρόσβαση σε συσκευές μέσω Serial Port

    Εγκατέστησα πρόσφατα το Visual Studio 2005 και είπα να πειραματιστώ με το Serial Port. Κοιτώντας λίγο τη βοήθεια του MSDN, ξεκίνησα να γράφω κώδικα για να ελέγξω π.χ. το netMod.

        Function ReceiveSerialData() As String
            ' Receive strings from a serial port.
            Dim returnStr As String = ""
            Using com As IO.Ports.SerialPort = My.Computer.Ports.OpenSerialPort("COM3")
                com.WriteLine("ati0")
                Do
                    Dim Incoming As String
                    Incoming = com.ReadLine()
                    If Incoming Is Nothing Then
                        Exit Do
                    Else
                        returnStr &= Incoming & vbCrLf
                    End If
                Loop
            End Using
            Return returnStr
        End Function
      

    Αυτό που προσπάθησα να κάνει αυτό το κομμάτι κώδικα, είναι απλά σαν ένα HyperTerminal να στέλνει μια εντολή ati0, και να περιμένει την απάντηση από αυτό.

    Το πρόβλημα κατά την εκτέλεση του εμφανίζεται στην εντολή ανάγνωσης Incoming = com.ReadLine(). Συγκεκριμένα σε εκείνο το σημείο ενώ δε βγάζει runtime error, εμφανίζει τη φόρμα χωρίς να σχεδιάζει τα controls της, δηλαδή μάλλον απλά κολλάει.

    Αναρωτιέμαι τι κάνω λάθος επειδή σχεδόν αυτόν τον κώδικα τον προτείνει η ίδια η MS.
  •  21-06-2006, 14:05 14151 σε απάντηση της 14126

    Απ: .net 2 - Πρόσβαση σε συσκευές μέσω Serial Port

    Συνημμένα: VS2005Term.rar
    Νομίζω οτι περιμένει μέχρι να διαβάσει κάτι από το buffer της σειριακής.

    Θα σου συνιστούσα να κάνεις έλεγχο οτι υπάρχουν δεδομένα στο buffer πριν κάνεις την ανάγνωση. Δες επίσης την παρακάτω sub.

    Private Shared Sub SerialPort_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort.DataReceived

    Dim Buffer As String = SerialPort.ReadExisting()

    End Sub

    Σου επισυνάπτω και ένα ωραίο παραδειγματάκι σχετικά με το serial port του 2005 που είχα βρει κάποια στιγμή.
  •  22-06-2006, 01:28 14166 σε απάντηση της 14151

    Απ: .net 2 - Πρόσβαση σε συσκευές μέσω Serial Port

    Αν και δεν κατάλαβα εντελώς γιατί δε δουλεύει το άλλο, εφόσον περίμενω δεδομένα, πράγματι το παραδειγμα που επισύναψες ήταν ότι χρειαζόμουν!

    Αυτή η συγκεκριμένη sub δουλεύει και έχει το αποτέλεσμα που θέλω, αλλά με προβλήματα.

    1) Είναι απαραίτητο να δηλωθεί ως Shared?

    2) Πώς θα μπορέσω να γράψω σε ένα εργαλείο της φόρμας μέσα από την παραπάνω διαδικασία?    Επειδή μου βγάζει:

    Error    3    Cannot refer to an instance member of a class from within a shared method or shared member initializer without an explicit instance of the class.
  •  22-06-2006, 11:34 14170 σε απάντηση της 14126

    Απ: .net 2 - Πρόσβαση σε συσκευές μέσω Serial Port

    Δυστυχώς είμαι αρκετά άσχετος για να απαντήσω τεκμηριωμένα στα ερωτήματα σου :-(

    Εγώ έχω βάλει όλο τον κώδικα που θέλω να εκτελείται μετά την λήψη δεδομένων στη Sub SerialPort_DataReceived. Βέβαια αν αντί για Public Shared WithEvents SerialPort As SerialPort βάλεις Dim WithEvents SerialPort As SerialPort και βγάλεις το shared από την sub σου μάλλον δεν θα έχεις πρόβλημα. Δοκίμασε το.

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems