Visual basic 2010- com port
Moderátor: Moderátoři
- scorpions-cz
- Příspěvky: 1760
- Registrován: 19 bře 2011, 01:00
- Bydliště: Jižní Čechy Dačicko
Terminal by mel prijmout co posilas, dej si zobrazeni v hexu a uvidis. Ale pokud jsou tam jen ty otazniky, tak to dela spis VB. Misto znaku s bajtovou hodnotou nad 127 posila otazniky. Tim prekodovanim pred vysilanim bys to mel odstranit a mel by to posilat v kodove strance napsane v tom prikazu (cestina je 1250). Az ti bude terminal zobrazovat misto diakritiky nejake nesmysly, pak bude treba nastavit v nem jen prislusne kodovani ve kterem to posilas, ale pokud jsou tam jen otazniky, tak to nejspis vubec neodchazi.
- scorpions-cz
- Příspěvky: 1760
- Registrován: 19 bře 2011, 01:00
- Bydliště: Jižní Čechy Dačicko
- scorpions-cz
- Příspěvky: 1760
- Registrován: 19 bře 2011, 01:00
- Bydliště: Jižní Čechy Dačicko
Tak díky uživateli termit256 mi odesílání funguje i s diakritikou:
tady je kód:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim DATA As String = "zkušební data"
Dim com As IO.Ports.SerialPort =
My.Computer.Ports.OpenSerialPort("com4")
com.Encoding = System.Text.Encoding.GetEncoding(1250)
com.WriteLine(DATA)
com.Close()
End Sub
ale už druhý den se potím nad příjmem a zatím stále nic
mám tento kód :
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim DATA As String
Dim com As IO.Ports.SerialPort =
My.Computer.Ports.OpenSerialPort("com4")
com.ReadTimeout = 3000
DATA = com.ReadLine()
TextBox1.Text = (DATA)
End Sub
Poradí někdo, kde dělám chybu?
tady je kód:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim DATA As String = "zkušební data"
Dim com As IO.Ports.SerialPort =
My.Computer.Ports.OpenSerialPort("com4")
com.Encoding = System.Text.Encoding.GetEncoding(1250)
com.WriteLine(DATA)
com.Close()
End Sub
ale už druhý den se potím nad příjmem a zatím stále nic
![Evil or Very Mad :evil:](./images/smilies/icon_evil.gif)
mám tento kód :
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim DATA As String
Dim com As IO.Ports.SerialPort =
My.Computer.Ports.OpenSerialPort("com4")
com.ReadTimeout = 3000
DATA = com.ReadLine()
TextBox1.Text = (DATA)
End Sub
Poradí někdo, kde dělám chybu?
- scorpions-cz
- Příspěvky: 1760
- Registrován: 19 bře 2011, 01:00
- Bydliště: Jižní Čechy Dačicko
K čemu prosím slouží tato instrukce z toho tebou udaného příkladu?
returnStr &= Incoming & vbCrLf
Jinak ani takto mi to nechodí.
Prostě do TextBoxu se nic nevypíše.
Problém bude asi v com.ReadLine , protože, když použiju com.ReadByte tak to nějaký nesmysl aspoň do textboxu vypíše.
returnStr &= Incoming & vbCrLf
Jinak ani takto mi to nechodí.
Prostě do TextBoxu se nic nevypíše.
Problém bude asi v com.ReadLine , protože, když použiju com.ReadByte tak to nějaký nesmysl aspoň do textboxu vypíše.
Naposledy upravil(a) scorpions-cz dne 26 kvě 2021, 17:00, celkem upraveno 1 x.
- scorpions-cz
- Příspěvky: 1760
- Registrován: 19 bře 2011, 01:00
- Bydliště: Jižní Čechy Dačicko
Asi máš pravdu, protože když dám ReadByte a zruším odřádkování, tak se mi to vypíše v DEC tvaru Odešlu AHOJ PANE a textboxu mám 657279743280657869
můžeš mi prosím poradit jak to nastavit, Teprve se s VB učím a moje anglina není nejlepší Já maturoval ještě z ruštiny
tady je kód:
Dim returnStr As String = ""
Dim com1 As IO.Ports.SerialPort = Nothing
Try
com1 = My.Computer.Ports.OpenSerialPort("COM4", 9600)
com1.ReadTimeout = 10000
Do
Dim Incoming As String = com1.ReadByte()
If Incoming Is Nothing Then
Exit Do
Else
returnStr &= Incoming
TextBox1.Text = (returnStr)
End If
Loop
Catch ex As TimeoutException
returnStr = "KONEC."
Finally
If com1 IsNot Nothing Then com1.Close()
End Try
Jako terminál používám Hercules 3.2.8 Mám dva převodníky USB/UART propojený křížem a mám je zasunutý ve dvou USB na PC.
můžeš mi prosím poradit jak to nastavit, Teprve se s VB učím a moje anglina není nejlepší Já maturoval ještě z ruštiny
![Evil or Very Mad :evil:](./images/smilies/icon_evil.gif)
tady je kód:
Dim returnStr As String = ""
Dim com1 As IO.Ports.SerialPort = Nothing
Try
com1 = My.Computer.Ports.OpenSerialPort("COM4", 9600)
com1.ReadTimeout = 10000
Do
Dim Incoming As String = com1.ReadByte()
If Incoming Is Nothing Then
Exit Do
Else
returnStr &= Incoming
TextBox1.Text = (returnStr)
End If
Loop
Catch ex As TimeoutException
returnStr = "KONEC."
Finally
If com1 IsNot Nothing Then com1.Close()
End Try
Jako terminál používám Hercules 3.2.8 Mám dva převodníky USB/UART propojený křížem a mám je zasunutý ve dvou USB na PC.
Teď nevím co chceš nastavit. Jako znak to čti metodou ReadChar jak píše termit256.scorpions-cz píše: můžeš mi prosím poradit jak to nastavit
Jestli chceš nastavit ukončovací znak přenosu, tak
Kód: Vybrat vše
...
com1.ReadTimeout = 10000
com1.NewLIne = "!"
...
- scorpions-cz
- Příspěvky: 1760
- Registrován: 19 bře 2011, 01:00
- Bydliště: Jižní Čechy Dačicko
- scorpions-cz
- Příspěvky: 1760
- Registrován: 19 bře 2011, 01:00
- Bydliště: Jižní Čechy Dačicko
Nevim co mas za gsm modul, ale co si matne vzpominam, odpovedi v prikazovem rezimu byly ukoncovany CR LF (odentrovanim) coz si nastavis misto toho vykricniku nebo co tam mas ted.
com1.NewLine = vbCrLf
com1.NewLine = vbCrLf
Naposledy upravil(a) termit256 dne 26 kvě 2021, 23:22, celkem upraveno 1 x.
- scorpions-cz
- Příspěvky: 1760
- Registrován: 19 bře 2011, 01:00
- Bydliště: Jižní Čechy Dačicko