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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top