Trasferimento stringa da modem

lunedì 04 agosto 2003 - 17.39

trinity Profilo | Guru

Come trasferire una stringa testo tra 2 modem

trinity Profilo | Guru

Ragazzi,
sto facendo un piccolo progettino che connette 2 modem per il trasferimento di un stringa testo.

La composizione del numero e la risposta positivi del modem che deve ricevere funziona, solo che come stringa il modem ricevente, riceve la stringa "RING" ripetuta per il numero delle volte che il modem squilla.

Vi posto il mio codice gli potete dare un'occhiata e dirmi dove sbaglio ed eventualmente correggermelo?

Ciao


DialString$ = "ATDT" + "0773700000" + ";" + vbCr

' Impostazioni della porta per le comunicazioni.
' Si presume che un mouse sia connesso a COM1. CommPort viene quindi impostata su 2
MSComm1.CommPort = 4
MSComm1.Settings = "9600,N,8,1"

' Apre la porta per le comunicazioni.
On Error Resume Next
MSComm1.PortOpen = True
If Err Then
MsgBox "COM4 non disponibile. La proprietà CommPort verrà impostata su un'altra porta.", , "Telefono MSComm"
Exit Sub
End If

' Svuota il buffer di input.
MSComm1.InBufferCount = 0

' Compone il numero.
MSComm1.Output = DialString$


MSComm1.Output = "ATV1Q0" & Chr$(13) ' Verifica che il
' modem risponda con "OK".
' Attende il ritorno di dati attraverso la porta
' seriale.
MSComm1.OutBufferCount = 0
Do
DoEvents
buffer$ = buffer$ & MSComm1.Input
Loop Until InStr(buffer$, "OK" & vbCrLf)



il codice che utilizzo per trasmettere è il seguente:

' Legge il file in blocchi pari alle dimensioni del buffer di trasmissione.
Dim temp As String
temp = "C:\fabio.txt"
Dim hSend, BSize, LF&
hSend = FreeFile
Open temp For Binary Access Read As hSend
BSize = MSComm1.OutBufferSize
LF& = LOF(hSend)
Do Until EOF(hSend) Or CancelSend
' Non legge più del necessario alla fine.
If LF& - Loc(hSend) <= BSize Then
BSize = LF& - Loc(hSend) + 1
End If

' Legge un blocco di dati.
temp = Space$(BSize)
Get hSend, , temp

' Trasmette il blocco.
MSComm1.Output = temp & vbCr
If Err Then
MsgBox Error$, 48
Exit Do
End If

' Attende che tutti i dati vengano inviati.
Do
Ret = DoEvents()
Loop Until MSComm1.OutBufferCount = 0 Or CancelSend
Loop
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5