modem GSM Wavecom come client TCP
Domanda
Ho cercato di fare la comunicazione TCP con il mio modem Wavecom Fastrack. Quello che voglio ottenere è rendere il modem si collega ad una porta del server TCP specificata mi consentano di trasferire i dati da e verso il server. Ho trovato alcune informazioni su che in guida per l'utente . Basandosi sulle informazioni si possono trovare a pagina 66 ho creato un'applicazione che apre la porta seriale a cui è collegato il modem e scrive i seguenti comandi AT:
AT+WIPCFG=1 //start IP stack
AT+WIPBR=1,6 //open GPRS bearer
AT+WIPBR=2,6,11,"APN" //set APN of GPRS bearer
AT+WIPBR=2,6,0 //username
AT+WIPBR=2,6,1 //password
AT+WIPBR=4,6,0 //start GPRS bearer
AT+WIPCREATE=2,1,"server_ip_address",server_port //create a TCP client on port "server_port"
AT+WIPDATA=2,1,1 //switch do data exchange mode
Questo è esattamente quello che dice il manuale dell'utente. Dopo l'ultimo comando viene inviato al modem, il dispositivo passa alla modalità di scambio dati e da allora tutto ciò che è scritto alla porta seriale aperta dalla mia applicazione deve essere ricevuto dal server e tutto il server invia dovrebbe apparire nel buffer di ingresso di quella porta.
Il fatto è che io non sono riuscito a mantenere la comunicazione bidirezionale stabile tra il server e il mio modem. Quando scrivo alcuni dati alla porta seriale (solo pochi byte), ci vuole un sacco di tempo prima che venga visualizzato i dati sul lato del server e in molti casi i dati non raggiunge il server a tutti.
ho eseguito alcuni test di scrittura circa 100 byte alla porta seriale contemporaneamente. Registrazione i dati ricevuti dalla mia applicazione server ho notato che il primo pezzo di dati (8-35 bytes) è ricevuta dopo uno o due secondi. Il resto dei dati appare in 2-5 secondi (sia in tutto o in pezzi di detto formato) o non compare affatto.
Non so dove cercare la ragione di tale comportamento. Ho usato male i comandi AT per passare il modem alla modalità client TCP? Non posso credere che la comunicazione può essere così lento ed instabile.
Qualsiasi consiglio sarà apprezzato. Grazie in anticipo.
Soluzione
quale sistema operativo utilizzi? Di Windows fa un buon lavoro di nascondere i dettagli disordinati di comunicare con il modem GPRS, tutto quello che dovete fare è creare una nuova connessione dial-up. Per stabilire la connessione è possibile effettuare una chiamata alla funzione Win32 RasDial. Una volta connesso, è possibile utilizzare prese standard per trasferire i dati su una porta TCP.
Altri suggerimenti
Sono stato con modem WaveComm per 2 anni now.As quanto ne so dalla mia esperienza è che se si è in grado di inviare alcuni dei dati, allora è possibile inviare tutti i dati.
il problema potrebbe essere l'applicazione di ascolto, che riceve i dati sul lato server. Potrebbe essere che non è in grado di affrontare la quantità di dati che si sta tentando di inviare.
provare a inviare gli stessi dati in piccoli busti con un certo ritardo tra di loro, allora si potrebbe ricevere tutti i dati intatti.