leadergl
02-02-2005, 08:00
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...:
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
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
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...:
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
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