[elektro] UART status kijelzés (widget?)

Kovács József kj at faldeko.hu
Tue Feb 18 12:09:10 CET 2014


Ez  a szükséges  WIN API függvény...
GetDefaultCommConfigA

VBNET alapon itt a példa: 
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363262%28v=vs.85%29.aspx


VisaulBASIC 6 alapon pl. így használom
A példa kimenete: http://faldeko.hu/comports.jpg

KJ


A szükséges deklarációk egy  Modul-ban.

'--------------------------------------------
Type DCB
    DCBlength As Long
    BaudRate As Long
    fBitFields As Long
    wReserved As Integer
    XonLim As Integer
    XoffLim As Integer
    ByteSize As Byte
    Parity As Byte
    StopBits As Byte
    XonChar As Byte
    XoffChar As Byte
    ErrorChar As Byte
    EofChar As Byte
    EvtChar As Byte
    wReserved1 As Integer
End Type

Type COMMCONFIG
    dwSize As Long
    wVersion As Integer
    wReserved As Integer
    dcbx As DCB
    dwProviderSubType As Long
    dwProviderOffset As Long
    dwProviderSize As Long
    wcProviderData As Byte
End Type

Declare Function GetDefaultCommConfig Lib "kernel32" Alias 
"GetDefaultCommConfigA" (ByVal lpszName As String, lpCC As COMMCONFIG, 
lpdwSize As Long) As Long

Public Function EnumSerPorts(port As Integer) As Long
'returns non-zero value if the port exists
    Dim cc As COMMCONFIG, ccsize As Long
    ccsize = LenB(cc)     'gets the size of COMMCONFIG structure
    EnumSerPorts = GetDefaultCommConfig("COM" + Trim(Str(port)) + 
Chr(0), cc, ccsize)

End Function

'----------------------------------------------------------


...és a Form kódja, amin van egy Label a kííráshoz.

'-----------------------------------------------------------
Option Explicit

Dim PortNum As Integer
Dim PortNumMin As Integer
Dim PortNumMax As Integer

Private Sub Form_Load()

    Beep

    PortNumMin = 0
    PortNumMax = 30

    Me.Show

    PortNum = PortNumMin

    'Start port kereses
    While PortNum < PortNumMax
       PortNum = PortNum + 1
       If EnumSerPorts(PortNum) Then
         Label2 = Label2 & "COM" & PortNum & IIf(PortNum < 10, "    ", 
"  ") & "VAN" & vbCrLf
       Else
          Label2 = Label2 & "COM" & PortNum & IIf(PortNum < 10, "    ", 
"  ") & "-------" & vbCrLf
       End If

    Wend

    Beep

End Sub

'----------------------------------------------------------------------


2014.02.18. 11:01 keltezéssel, elektrolight írta:
> Sziasztok..
>
> COM X,Y,Z  küzdök..
>
> ilyen USB-soros átalakítókkal..
> Van éppen pár darab.
>
> Az a gondom, hogy ha kihúzkodom,
> és más sorrendbe kerülnek vissza
> időnként megváltoznak a pozíciószámok..
>
> Kérdezném, milyen néven keressek,
>     vagy tudtok e ajánlani olyan programot..
>
> Amelyik kijelzi az összes sorosport státuszát
> ( tehát hogy létezik e, és éppen használatban van , vagy se... )
>
> anélkül hogy azokat megnyitná..
> Ez valami rendszerszintű kiírás lehetne..
> Mert esetleg saját  programmal ellenőrizném,
> ha  már megnyitottam , nem engedi megnyitni még egyszer
> ( ez jogos )
>
> Elvileg WIN7 alatt szeretnék valami kis mindig látható
> APP-ot pl. a kijelzőre ,  amely jelzi a létező portokat, és kiszínezi
> a már használatban lévőket..
> Ja ,   és jó ha nem foglal sok    helyet a képernyőn.
>
> Üdv István
>
> -----------------------------------------
>            elektro[-flame|-etc]
>
>
> -----
> A(z)  üzenetben nem található vírus.
> Ellenőrizte: AVG - www.avg.com
> Verzió: 2013.0.3462 / Vírus adatbázis: 3705/7102 - Kiadás dátuma: 2014.02.17.
>
>
>



More information about the Elektro mailing list