Вопрос

Я пытался наладить TCP-связь с помощью своего модема Wavecom Fastrack.Чего я хочу добиться, так это заставить модем подключаться к указанному порту TCP-сервера, чтобы я мог передавать данные на сервер и с него.Я нашел кое-какую информацию о than в руководство пользователя.Основываясь на информации, которую вы можете найти на странице 66, я создал приложение, которое открывает последовательный порт, к которому подключен модем, и записывает следующие 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

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

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

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

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

Любой совет будет оценен с благодарностью.Заранее благодарю вас.

Это было полезно?

Решение

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top