Compoort configureren via VB

Status
Niet open voor verdere reacties.
Bedankt Guys !!! Jullie zijn echt krakken !! Wat hebben jullie gedaan om zover te geraken !! Ik ben nog maar een bleuken zenne !!

Mario
 
Ben net opgestaan, maar ga zo weer liggen.

Als ik straks weer thuis ben ga ik verder.

Je gebruikt 'CmdCOMSel.Listindex'
Dat vet gedrukte Cmd hierboven duidt(ja, het is een conventie voor een naamgeving) op het gebruik v.e. knop aan(command button). Ik heb die naam zo gelaten en gebruik daarvoor ook geen button, maar een list-box(die gebruik je trouwens ook al, maar de naam had beter 'lstCOMSel' geheten.

De code kan eigenlijk veel korter, want wat bij de 3 (select)cases gebeurt is in grote lijnen wel dezelfde en die moet in feite in een andere subroutine worden ondergebracht en vauit de 3 cases die routine wordt aangeroepen. Verder moet ik eigenlijk ervoor zorgen, dat bij elke test v.e. poort, het poort eerst moet worden gesloten en dan pas weer geopend(anders foutcode 8005). Maar deze wijziging kun je ook doen, het is zo simpel. (heb inmiddels ff gauw aangepast, na testen(en ook instellen v.h. modem) geclosed, het staat steeds boven 'Exit Sub')

Onderstaande code behoort in een list-box te staan:

Code:
Private Sub CmdCOMSel_Click()
     Select Case CmdCOMSel.ListIndex
         Case 0
            Config = MsgBox("Download via COM 1", vbOKCancel, _
            "Config GSM Modem")
            If Config = vbOK Then
                ' Use COM 1
                MSComm1.CommPort = 1
                ' 9600 Baud, no parity, 8 data, and 1 Stopbit
                MSComm1.Settings = "9600,N,8,1"
                ' Tell the control to read entire buffer when Input is used
                MSComm1.InputLen = 0
                ' Open Port
                If MSComm1.PortOpen = False Then
                    MSComm1.PortOpen = True
                    'Hier wordt een Hayes AT-commando naar het
                    'modem verstuurd.
                    MSComm1.Output = "AT" + Chr$(13)
                    DoEvents
                    'Zit een modem op de PC, dan zal de de buffer
                    't.g.v. het AT-commando, het woord "OK"
                    'bevatten,
                    If MSComm1.InBufferCount >= 2 Then
                        MsgBox ("Je kunt nu via COM 1 downloaden.")
                        MSComm1.PortOpen = False
                        Exit Sub
                        Else
                        MsgBox ("Er kan niet via COM 1 worden gedownload.")
                        MSComm1.PortOpen = False
                        Exit Sub
                    End If
                End If
            Else
               MsgBox " Canceled "
               Exit Sub
            End If
         Case 1
            Config = MsgBox("Download via COM 3", vbOKCancel, _
            "Config GSM Modem")
            If Config = vbOK Then
                ' Use COM 3
                MSComm1.CommPort = 3
                ' 9600 Baud, no parity, 8 data, and 1 Stopbit
                MSComm1.Settings = "9600,N,8,1"
                ' Tell the control to read entire buffer when Input is used
                MSComm1.InputLen = 0
                ' Open Port
                If MSComm1.PortOpen = False Then
                    MSComm1.PortOpen = True
                    'Hier wordt een Hayes AT-commando naar het
                    'modem verstuurd.
                    MSComm1.Output = "AT" + Chr$(13)
                    DoEvents
                    'Zit een modem op de PC, dan zal de de buffer
                    't.g.v. het AT-commando, het woord "OK"
                    'bevatten,
                    If MSComm1.InBufferCount >= 2 Then
                        MsgBox ("Je kunt nu via COM 3 downloaden.")
                        MSComm1.PortOpen = False
                        Exit Sub
                        Else
                        MsgBox ("Er kan niet via COM 3 worden gedownload.")
                        MSComm1.PortOpen = False
                        Exit Sub
                    End If
                End If
            Else
               MsgBox " Canceled "
               Exit Sub
            End If

         Case 2
            Config = MsgBox("Download via COM 4", vbOKCancel, _
            "Config GSM Modem")
            If Config = vbOK Then
                ' Use COM 4
                MSComm1.CommPort = 4
                ' 9600 Baud, no parity, 8 data, and 1 Stopbit
                MSComm1.Settings = "9600,N,8,1"
                ' Tell the control to read entire buffer when Input is used
                MSComm1.InputLen = 0
                ' Open Port
                If MSComm1.PortOpen = False Then
                    MSComm1.PortOpen = True
                    'Hier wordt een Hayes AT-commando naar het
                    'modem verstuurd.
                    MSComm1.Output = "AT" + Chr$(13)
                    DoEvents
                    'Zit een modem op de PC, dan zal de de buffer
                    't.g.v. het AT-commando, het woord "OK"
                    'bevatten,
                    If MSComm1.InBufferCount >= 2 Then
                        MsgBox ("Je kunt nu via COM 4 downloaden.")
                        MSComm1.PortOpen = False
                        Exit Sub
                        Else
                        MsgBox ("Er kan niet via COM 4 worden gedownload.")
                        MSComm1.PortOpen = False
                        Exit Sub
                    End If
                End If
            Else
               MsgBox " Canceled "
               Exit Sub
            End If
      End Select
End Sub

En dit hoort er ook nog bij:

Code:
Private Sub Form_Load()
    CmdCOMSel.AddItem "COM 1"
    CmdCOMSel.AddItem "COM 3"
    CmdCOMSel.AddItem "COM 4"
End Sub

Groetjes,

Dennis.
 
Laatst bewerkt:
Geplaatst door boskrabber
Ik ben nog maar een bleuken zenne !!

Mario
Mario,

Geen dank hoor. Mag ik jou vragen wat 'bleuken zenne' betekent?

Uit het zinsverband bekeken, betekent dat zoiets als 'beginneling'?

Dennis.
 
@Elisa : Even een vertaling van het Belgisch dialect naar het algemeen nederlands !!

" Bleuken zenne " = Beginneling hoor !!

Nog om wat te oefenen : ik goan noar den beenhaver en ik koop mij daar awa vliejs!

RA Ra !! :D
 
Geplaatst door boskrabber
Volledig juist !! Blijkbaar al veel in België geweest zeker !!! :D
Niet alleen dat, maar ze is gewoon een geleerd persoon.:thumb:

Maar, Boskrabber, gaat het een beetje met VB?

Dennis.
 
Het lukt al een beetje met VB, maar ik heb dit week-end geen tijd gehad, want ik ben een week-endje met de vrouw en de kindjes weggeweest !!

Maar deze week begin ik weer met volle goesting aan !!!
 
Overbrengen Buffer$ naar label

Beste lui,

ik heb mij verdiept in het zelfde onderwerp maar ......
om de ontvangen String over te brengen naar bijvoorbeeld een Label of Text veld
is NIET mogelijk (bij mij).
VB6 slaat optilt en sluit met een foutmelding af.

Ik ben er achtergekomen dat alles wat ik doe met de ontvangen string het bovenstaande probleem veroorzaakt.

Gebruikte code

Private Sub Form_Load ()
Dim A As String
' Buffer to hold input string
Dim Instring As String
' Use COM1.
MSComm1.CommPort = 1
' 9600 baud, no parity, 8 data, and 1 stop bit.
MSComm1.Settings = "9600,N,8,1"
' Tell the control to read entire buffer when Input
' is used.
MSComm1.InputLen = 0
' Open the port.
MSComm1.PortOpen = True
MSComm1.Output = "AQ?" & chr$(13) & chr$(10)
' Wait for data to come back to the serial port.
Do
DoEvents
Buffer$ = Buffer$ & MSComm1.Input
Loop Until InStr(Buffer$, "Q=")
' Close the serial port.
MSComm1.PortOpen = False

A= Buffer$

MsgBox A
' Label1.Capition = A
' Text1.Text = A
End Sub

De messagebox verschijnt met de ontvangen string

Wanneer ik nu MsgBox A vervang door
Label1.Capition = A
of
Text1.Text = A
loopt VB6 totaal vast, XP foutmelding verschijnt en VB sluit af.:evil:

Overbrengen naar bijvoorbeeld een Label of Text veld is noodzakelijk om de ontvangen data zichtbaar te maken.

Waar kijk ik overheen?
Wat is de oplossing?
 
Je kunt beter je eigen topic starten dan in deze oude verder gaan.
De kans op reactie is dan groter.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan