Seriak ve VB 2017
Pavel Hudecek
edizon na seznam.cz
Pátek Červen 9 00:11:36 CEST 2017
Zajímavé. Dnes to writeln funguje:-)
Ale mám jiný problém:
Přidal jsem tam timer, který každých 300 ms vypíše porty do listboxu seznam
portů s poznámkou, zda jsou otevřené:
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles
Timer1.Tick
Dim port As String
Dim ports As String() = SerialPort.GetPortNames()
Dim sp3 As New SerialPort
lb1.Items.Clear()
For Each port In ports
sp3.PortName = port
If sp3.IsOpen Then
port = port + " op"
Else
port = port + " cl"
End If
lb1.Items.Add(port)
Next port
sp3.Dispose()
End Sub
Výsledek je, že to u všech píše cl, i když COM5 je od spuštění programu
otevřen. Stejně tak když COM4 otevřu terminálem, taky je stále cl.
Z MSDN jsem pochopil, že otevření cizím programem to neindikuje, takže druhý
problém je vlastně v pořádku. Ale proč to nehlásí otevření COM5, když ho má
otevřen on sám?
(tedy ne že by na tom záleželo, když to oficiálně neumí poznat otevření
jiným programem, tak je to na houby a lepší bude try-open (což už jsem
vyzkoušel a funguje dle očekávání), ale i tak by mě zajímalo, co je špatně s
tím isopen)
PH
-----Původní zpráva-----
From: Pavel Hudecek
Nepomohlo. Žádná změna.
Samozřejmě že binární čtení pak udělám jinak, ale zatím mi na hraní stačí
tohle.
-----Původní zpráva-----
From: Ladislav Vaiz
Dne 7.6.2017 v 12:15 Pavel Hudecek napsal(a):
> Ale zajímavé je, že ve výstupu není na konci žádné crlf nezávisle na tom,
> zda použiju write, nebo writeline. Když do odesílaného textboxu udělám
> enter, tak se na výstupu projeví.
>
Nepomohlo by sp1.NewLine = vbCr & vbLf ?
Jestli chcete komunikovat binárně, tak ReadExisting nebude nejlepší
volba, protože vrací string a ne pole bytů.
Další informace o konferenci Hw-list