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
Visual basic 2010- com port
Zdravím.
Začínám se trochu učit s VB. Nevím jak nastavit v programu com port pro odesílání a příjem dat.
Mám tento kód:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim data As String = TextBox1.Text
Using com11 As IO.Ports.SerialPort =
My.Computer.Ports.OpenSerialPort("com11")
com11.WriteLine(data)
End Using
End Sub
text z textového pole se mi po stisku tlačítka odešle na port 11.To funguje dobře. Zde je však COM11 pevně nastaven v kódu. Já bych však potřeboval ho umět měnit. tak abych si ho zvolil v jiné části programu a on se mi promítl do tohoto kódu.
Něco jako COM X a X bych přiřazoval různá čísla dle potřeby.
Poradí Někdo?
Začínám se trochu učit s VB. Nevím jak nastavit v programu com port pro odesílání a příjem dat.
Mám tento kód:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim data As String = TextBox1.Text
Using com11 As IO.Ports.SerialPort =
My.Computer.Ports.OpenSerialPort("com11")
com11.WriteLine(data)
End Using
End Sub
text z textového pole se mi po stisku tlačítka odešle na port 11.To funguje dobře. Zde je však COM11 pevně nastaven v kódu. Já bych však potřeboval ho umět měnit. tak abych si ho zvolil v jiné části programu a on se mi promítl do tohoto kódu.
Něco jako COM X a X bych přiřazoval různá čísla dle potřeby.
Poradí Někdo?
- scorpions-cz
- Příspěvky: 1760
- Registrován: 19 bře 2011, 01:00
- Bydliště: Jižní Čechy Dačicko
-
- Příspěvky: 2551
- Registrován: 13 zář 2005, 02:00
Problem mas s globalni promennou obecne, nebo v tom ze ti to nefunguje s tim portem? Na prvni pohled nevidim nejaky zrejmy duvod proc by to nemelo fungovat, ale ve VB delam jen dost okrajove, takze ruku do ohne bych za to nedal A nemam jak to ted vyzkouset.scorpions-cz píše:Právě s tou proměnnou mi to nejde, nebo dělám někde chybu.
Mrkni treba tady, resi neco podobneho. https://www.vbforums.com/showthread.php ... erial-port
Vo Visual Basicu som v zivote nerobil, ale povedal by som podla syntaxe, ze miesas dokopy dve veci - nazov premennej/objektu:
A nazov portu "com11" je obycajny retazec. Namiesto neho tam mozes dat nazov tej globalnej premennej alebo niecoho ineho, do coho nastavis spravny port.
a nazov portu:scorpions-cz píše:Using com11 As IO.Ports.SerialPort =
Takze namiesto nazvu premennej/objektu com11 daj len napr. com (ak to nie je nejake rezervovane slovo). Ten bude vzdy rovnaky.My.Computer.Ports.OpenSerialPort("com11")
A nazov portu "com11" je obycajny retazec. Namiesto neho tam mozes dat nazov tej globalnej premennej alebo niecoho ineho, do coho nastavis spravny port.
- scorpions-cz
- Příspěvky: 1760
- Registrován: 19 bře 2011, 01:00
- Bydliště: Jižní Čechy Dačicko
rnbw
To možná jo, ale pokud se neshoduje název portu s názvem objektu tak to nefunguje
oprava tak to by asi šlo, zkusím to.
To možná jo, ale pokud se neshoduje název portu s názvem objektu tak to nefunguje
oprava tak to by asi šlo, zkusím to.
Naposledy upravil(a) scorpions-cz dne 24 kvě 2021, 21:53, celkem upraveno 2 x.
No ja som používal tak 15rokov dozadu MSCOMM32.OCX a port sa nastavoval nejak MSComm1.CommPort = Combo1.Text kde bolo na výber číslo portu ale presný syntax už odvial čas. Matne si spomínam že som s tým tiež zápasil, mal som to dlho cez sériu If ale potom som niekde našiel správny syntax, no, bolo to dávno.
V teto ukazce kodu primo od M$ s tim zadny problem nemaji.scorpions-cz píše:To možná jo, ale pokud se neshoduje název portu s názvem objektu tak to nefunguje
Public Function ReceiveSerialDataPort8() As String
' Receive strings from a serial port.
Dim returnStr As String = ""
Dim com1 As IO.Ports.SerialPort = Nothing
Try
com1 = My.Computer.Ports.OpenSerialPort("COM8", 9600, Parity.None, 8, StopBits.One)
com1.ReadTimeout = 10000
Do
Dim Incoming As String = com1.ReadLine()
If Incoming Is Nothing Then
Exit Do
Else
returnStr &= Incoming & vbCrLf
End If
Loop
Catch ex As TimeoutException
returnStr = "Error: Serial Port read timed out."
Finally
If com1 IsNot Nothing Then com1.Close()
End Try
Return returnStr
End Function
- scorpions-cz
- Příspěvky: 1760
- Registrován: 19 bře 2011, 01:00
- Bydliště: Jižní Čechy Dačicko
Co ti to vlastne posila v hexu kdyz pouzijes diakritiku?
Sedi to podle tohoto?
Nebo tam mas nad 127 jen otazniky nebo nebo podobneho?
https://cs.wikipedia.org/wiki/Windows-1250
Sedi to podle tohoto?
Nebo tam mas nad 127 jen otazniky nebo nebo podobneho?
https://cs.wikipedia.org/wiki/Windows-1250
- 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