[VB6] Data naar module

Pagina: 1
Acties:

  • 41728
  • Registratie: November 2001
  • Laatst online: 11-10-2006
Ik ben bezig met een simpel monitor progje voor mijn Telefoon.
Dit word via een Virtuele seriele poort aangestuurd.
Connecten enzo gaat allemaal goed.

Maar ik maak gebruik van modules, en daar gaat het mis:

Ik heb 3 modules, en ik krijg er maar 2 werkend.

Dit staan in de source van Form1:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Case comEvReceive
        
   
    If i = 0 Then
        Text1.Text = Text1.Text & MSComm1.Input & vbCrLf
        i = 1
    ElseIf i = 1 Then
        Buffer = MSComm1.Input
        i = 0
    End If
            
            Dim Search4EBCA As Integer
            Dim Search4CSQ As Integer
            Dim Search4opp As Integer
            
            Search4EBCA = InStr(1, Buffer, "EBCA:")
            Search4CSQ = InStr(1, Buffer, "CSQ:")
            Search4opp = InStr(1, Buffer, "CIND:")
               
                If Search4EBCA > 0 Then
                    EBCAParse (Buffer)
                    MSComm1.Output = "at+csq" & vbCrLf
                ElseIf Search4CSQ > 0 Then
                    CSQParse (Buffer)
                    MSComm1.Output = "at+cind?" & vbCrLf
                ElseIf Search4opp > 0 Then
                    OppParse (Buffer)
                    
            End If
    End Select


In het IF lusje gaat alles perfect, ik weet dat mijn telefoon alle gegevens terug geeft.
De gegevens komen namelijk ook in de Textbox te staan (dit gaat buiten de modules om)
Afbeeldingslocatie: http://www.wimbo.nl/pics/monit610.jpg
Maar zodra ik de gegevens in de 3e module (OppParse) opvraag.
Krijg ik mn string helemaal nix. Null dus.

De code van die modules zijn nagenoeg hetzelfde:
Dit is de code van module 1 (EBCA):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
'The array that contains the Parsed EBCA info
Public EBCAArray() As String

Public Sub EBCAParse(Data As String)
            
            ' Parse EBCA into the Array
            EBCAArray = Split(Data, ",")
            
                Form1.LblEBCA(12) = EBCAArray(12)
                Form1.LblEBCA(13) = EBCAArray(13)
                Form1.Label3.Caption = EBCAArray(15) & "%"
            'Display the Current Usage (divide by 10 to display mA
            EBCAArray(7) = EBCAArray(7) / 10
            Form1.LblEBCA(7) = EBCAArray(7)
            
            ' Determine and display the current battery state
            Dim vbat As Integer
            Dim N As Integer
                For N = 2 To 3
                vbat = EBCAArray(N)
                    If vbat > 0 Then
                    Form1.LblEBCA(3) = vbat * 10
                    End If
                Next N
        'End If
        
End Sub


Dit gaat allemaal oke. Ook bij de 2e, gaat ook goed.
Maar bij de 3e lijkt het wel of de data niet aankomt...

3e module:
code:
1
2
3
4
5
6
7
8
9
10
11
'The array that contains the Parsed Opp info
Public OppArray() As String

Public Sub OppParse(Data As String)
            
            'Parse Opp into the Array
            OppArray = Split(Data, ",")
                  
            Form1.LEDMeter1.SetLevel (OppArray(1))
        
End Sub


//edit: Het helpt ook niet als ik de data naar een label of iets anders terugkoppel.

Ben er nu al de hele avond al mee bezig, en het lukt niet. :'(
Is er misschien hier iemand die er wat van weet?

[ Voor 11% gewijzigd door 41728 op 12-02-2004 00:38 . Reden: plaatje + wat uitleg ]


Verwijderd

Mocht je dat nog niet gedaan hebben zou ik je adviseren om bovenaan elke module die je hebt geschreven 'Option Explicit' te plaatsen.

Op die manier is het niet mogelijk om variabelen op te vragen (die NULL zijn) die je niet hebt gedeclareerd. Zo voorkom je wellicht al een fout. Je VB debugger zal je dan vanzelf waarschuwen als je een ongedeclareerde variabele gebruikt. Wellicht zit daar nml je probleem.

Succes :)

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

In je 'derde module', zoals je hem noemt, ga je er van uit dat er gegevens in OppArray(1) te vinden zijn. Je spreekt deze namelijk aan, en je geeft aan dat er 'geen gegevens teruggekoppeld worden'. En als dat element van je array nou eens leeg is?

Debug je code door Data op je scherm te tonen, en door te controleren wat er allemaal in je array zit.

My personal website