Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Visual Basic] Transmisja RS232 - zawieszanie się programu.

splawik00 13 Feb 2012 20:31 2506 12
  • #1
    splawik00
    Level 23  
    Witam. Napisałem aplikację do obsługi matrycy LED przez RS232 w Visual Basic. Mam pewien kłopot z wyborem portu COM. Jeżeli wybieram z rozwijanej listy port, który funkcjonuje to wszystko gra i mogę zaprogramować matrycę. W przypadku kiedy wybiorę port, który nie istnieje cały program się wiesza i nie da rady go nawet wyłączyć. I tu moje pytanie. Jak rozwiązać ten problem ?? Chciałbym, żeby w przypadku takiego zdarzenia program powiadomił mnie, że takiego portu nie ma i że mam wybrać inny. Jeszcze lepiej, gdyby od razu wyświetliły mi się tylko dostępne porty szeregowe. Proszę o pomoc, bo sam sobie nie poradzę. Do tej pory programowałem tylko procesory w BASCOM i to moja pierwsza aplikacja komputerowa.

    Poniżej mój wytwór o którym mowa.
  • Helpful post
    #4
    marmon
    Level 17  
    wejdź do źródła i wywal wszystkie items z comboboxa... później wejdź na kod źródłowy i dodaj to

    Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    
            ' pokaz dostepne porty COM.
            For Each sp As String In My.Computer.Ports.SerialPortNames
                ComboBox1.Items.Add(sp)
            Next
    
        End Sub
  • #5
    splawik00
    Level 23  
    Wielkie dzięki. Działa jak powinno. Nie raz mi się to jeszcze na pewno przyda.
    Mam jeszcze jeden kłopot z komunikacją przez UART. Potrzebuję przesłać wyrazy do procesora ale z użyciem polskich liter. Wiem już, że wina leży na 100% po stronie mojego programu. Gdy przesyłam dane z polskimi znakami przez terminal w BASCOMie to wszystko działa jak trzeba i na mojej matrycy są widoczne polskie znaki. Jeżeli natomiast wyślę polskie znaki przez mój program to zamiast nich na matrycy pojawiają się znaki zapytania, czyli procesor dostaje zamiast polskiej litery znak chr(63). Na pewno nie jest to wina po stronie programu procesora, bo już to sprawdziłem.
    Ustawienia BASCOM:
    [Visual Basic] Transmisja RS232 - zawieszanie się programu.
    Ustawienia Visual Basic:
    [Visual Basic] Transmisja RS232 - zawieszanie się programu.
  • Helpful post
    #8
    marmon
    Level 17  
    sprawdz to:



    Code: vbnet
    Log in, to see the code




    pozmieniaj utf8 na inne i zobacz co wyjdzie
  • Helpful post
    #10
    marmon
    Level 17  
    splawik00 wrote:
    Całe wyrażenie "RS232.Encoding.UTF8" podkreśla mi na niebiesko falowaną linią, a więc coś robię nie tak. Pisząc "pozmieniaj utf8 na inne" masz na myśli utf7 i utf32 ?? Jak pozbyć się tej linii niebieskiej ??


    sorki :)

    Code: vbnet
    Log in, to see the code
  • #12
    marmon
    Level 17  
    splawik00 wrote:
    Byłem szybszy :D
    Wymyśliłem takie coś
    "RS232.Encoding = System.Text.Encoding.Default"
    i zadziałało. Wielkie dzięki. Bez Ciebie bym sobie nie poradził.


    super że działa!