2009-10-15 2 views
0

Я пытаюсь выполнить TCP-связь, используя модем Wavecom Fastrack. Я хочу добиться того, чтобы модем подключился к указанному порту TCP-сервера, чтобы я мог передавать данные на сервер и с него. Я нашел некоторую информацию, чем в the user's guide. Основываясь на информации, которую вы можете найти на странице 66 Я создал приложение, которое открывает последовательный порт, к которому подключен модем и записывает следующие AT команды:Модем Wavecom GSM как клиент TCP

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 

Это именно то, что говорит руководство пользователя. После того, как последняя команда будет отправлена ​​на модем, устройство переключится в режим обмена данными, а затем все, что записано на последовательный порт, открытый моим приложением, должно быть получено сервером, и все, что отправляет сервер, должно появиться во входном буфере этого порта.

Дело в том, что мне не удалось поддерживать стабильную двунаправленную связь между сервером и моим модемом. Когда я пишу некоторые данные на последовательный порт (всего несколько байтов), требуется много времени, прежде чем данные появятся со стороны сервера, и во многих случаях данные вообще не дойдут до сервера.

Я выполнил несколько тестов, записывающих около 100 байт в последовательный порт одновременно. Регистрируя данные, полученные моим серверным приложением, я заметил, что первая часть данных (8-35 байтов) получена через секунду или два. Остальные данные появляются через 2-5 секунд (либо в целом, либо в кусках указанного размера) или вообще не появляются.

Я не знаю, где искать причину такого поведения. Я использовал неправильные AT-команды для переключения модема в режим TCP-клиента? Я не могу поверить, что общение может быть настолько медленным и неустойчивым.

Любые советы будут оценены. Заранее спасибо.

ответ

0

какая ОС вы работаете? Windows делает довольно хорошую работу по скрытию беспорядочных деталей связи с модемом GPRS, все, что вам нужно сделать, это создать новое соединение по коммутируемому соединению. Чтобы установить соединение, вы можете сделать вызов функции Win32 RasDial. После подключения вы можете использовать стандартные сокеты для передачи данных на TCP-порт.

+0

Hi. Спасибо за ответ. Дело в том, что я хотел контролировать способ перемещения данных на сервер. Я не хотел, чтобы модем передавал данные, когда есть доступ к Интернет-сети. Даже когда я установил приоритеты подключения в конфигурации расширенных подключений, все данные были переданы модемом. Если дело доходит до модемных соединений TCP-клиента, я, наконец, сумел обработать их должным образом. –

0

Я использую модем wavecomm в течение 2 лет. Насколько я знаю из моего опыта, это то, что если вы можете отправить некоторые данные, вы можете отправить все данные.

проблема может быть в приложении для прослушивания, которое получает данные на стороне сервера. Возможно, он неспособен справиться с объемом данных, которые вы пытаетесь отправить.

попробуйте отправить те же данные в более мелкие бюсты с некоторой задержкой между ними, тогда вы можете получить все данные без изменений.