Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

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

splawik00 13 Lut 2012 20:31 2251 12
  • #1 13 Lut 2012 20:31
    splawik00
    Poziom 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.

    0 12
  • Pomocny post
    #4 23 Lut 2012 09:35
    marmon
    Poziom 17  

    wejdź do źródła i wywal wszystkie items z comboboxa... później wejdź na kod źródłowy i dodaj to

    Code:
    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

    0
  • #5 23 Lut 2012 19:31
    splawik00
    Poziom 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.

    0
  • Pomocny post
    #8 24 Lut 2012 13:16
    marmon
    Poziom 17  

    sprawdz to:



    Kod: vbnet
    Zaloguj się, aby zobaczyć kod




    pozmieniaj utf8 na inne i zobacz co wyjdzie

    0
  • Pomocny post
    #10 24 Lut 2012 14:43
    marmon
    Poziom 17  

    splawik00 napisał:
    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 :)

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

    0
  • #12 24 Lut 2012 16:18
    marmon
    Poziom 17  

    splawik00 napisał:
    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!

    0