Discussione: [VB] COMM Control
View Single Post
Old 02-02-2005, 08:00   #1
leadergl
Senior Member
 
Iscritto dal: May 2003
Messaggi: 1113
[VB] COMM Control

Ciao ragazzi,
sto cercando di realizzare un applicazione che sfrutti la porta COM per dialogare tramite comandi AT col cellullare e sia in grado di Leggere e Scrivere la rubrica del cellulare...

Sono a buon punto...nel senso che ho:

1) Realizzato Interfaccia Grafica
2) Realizzato Gestione della Lettura dal Cellulare della Rubrica
3) Realizzata Memorizzazione su File della Rubrica Letta
4) Realizzata Lettura da File della Rubrica precedentemente Salvata

Ora quello che mi manda è la scrittua sul cellulare della rubrica...qui ho problemi non tanto per scrivere nel cellulare ma per gestire le pause tra una scrittura ed un altra...poichè se scrivo un solo elemento tutto funziona...se creo un ciclo FOR che mi scriva TUTTI i contatti in rubrica non va più nulla e questo perchè o:

1) Devo far passare un po di tempo tra una scrittura ed un altra (send delay)

OPPURE

2) Devo andare a scrivere un nuovo elemento solo quando ho avuto la risposta di OK dal cellulare...

solo che non riesco a gestire questa cosa....vi posto il mio codice..aiutatemi...:
Codice:
Private Sub cmdSalvaCell_Click()
Dim iRiga As Integer
Dim stemp   As String
Dim iPausa  As Long
Dim iTemp   As Long

    AttivaLettura = False
    
    If MSComm1.PortOpen = True Then
    
        For iRiga = 1 To Griglia.Rows - 2
            iTemp = 0
            stemp = "AT+MPBW=" & iRiga & ",""" _
            & Griglia.TextMatrix(iRiga, 1) & ""","_
            & Griglia.TextMatrix(iRiga, 2) & ",""" _
            & Griglia.TextMatrix(iRiga, 3) & """," _
            & Griglia.TextMatrix(iRiga, 4)
            MSComm1.Output = stemp + Chr(13)
        Next iRiga
        
        MsgBox "Memorizzazione Rubrica Completata", vbInformation, "Memorizzazione"
    End If
End Sub
Codice:
Private Sub MSComm1_OnComm()
'Dichiara la Variabile dove convervare i pacchetti dati
Static sIncoming As String
    
    'Quando Sto ricevendo dei dati faccio questo:
    If MSComm1.CommEvent = comEvReceive Then
        'Aggiungo il carattere letto alla stringa sIncoming
        sIncoming = sIncoming & MSComm1.Input
        'Dipende dal carattere con cui termina la nostra stringa
        If Right(sIncoming, 2) = vbCrLf Then
            'Esclude il carattere CrLf dalla stringa
            sIncoming = Left(sIncoming, Len(sIncoming) - 2)

            'Carico la procedura per elaborare i dati Letti
            Call Elabora(sIncoming)

            'Pulisce la variabile
            sIncoming = ""
        End If
    End If
End Sub
__________________
| Athlon XP Barton 3000+ | CoolerMaster HAC-V81 | ASUS A7N8X DELUXE v2.0 | 2*256 PC3200 + 1*512 PC3200 = 1GB DDR400| ATI Radeon 9250 | HD 80Gb Maxtor SATA | Ali Q-TEC 550W Dual Fan GOLD PFC
leadergl è offline   Rispondi citando il messaggio o parte di esso