Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: wip_write в open at TCP/IP
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Vlad1977
Кто сталкивался с работтой функции wip_write? Алгоритм простой до безобразия, соединяюсь с жпрс, потом подключаюсь к серверу через wip_TCPClientCreateOpts . В уарт славиваются данные и по таймеру отправляются на сервер, через жрпс. Данных не много 10-20 посылок в кадой по 100-200 байт. Wip_write как пишут, возвращает количество переданных байт, я это все анализирую и в случае успеха отпарвляю модем в сон. Так вот, данные теряются ...., открывается сокет, начинаеся передача, а концовка иногда просто пропадает. И когда она пропала, где она пропала определить не реально sad.gif. Wip_write говорит что все отправил, tcp по идее должен же гарантировать доставку , но он тоже ничгео не делает. Никакие события о разрыве соединения или сокета не возвращаются, все короче отрабатывается как положено, только данных нет. Может как то можно помудрить с натройками wip_setOpts? WIP_COPT_NODELAY установил в true, размер буффера тоже проверил, все вроде должно работать как положено, только не хочет sad.gif.
andrewlekar
TCP гарантирует доставку до шлюза. Дальше ниче он не гарантирует. Если нужна 100% доставка данных, то прикручивайте сверху протокол с квитированием от сервера.
_Артём_
.
gosha14
Попробуй перед "уходом в сон" попробуй сделать паузу.
Vlad1977
Цитата(gosha14 @ Feb 6 2012, 18:14) *
Попробуй перед "уходом в сон" попробуй сделать паузу.

пауза есть, я ее сразу поставил.
bolmoe
все таки лучше прикрутить подтверждение приема пакета на серваке, если нет, то повтор пакета
Кстати, пропадает только последний пакет?
sobr
Буферизация в приложении есть? Или пытаетесь все 200 байт в юарт принять разом?
Vlad1977
Пропасть может любой пакет, было такое, что он полностью не пришел на сервер, хотя в логах wip_write показывает что все отправилось.

Цитата(sobr @ Feb 9 2012, 05:44) *
Буферизация в приложении есть? Или пытаетесь все 200 байт в юарт принять разом?

Че то я не пойму при чем тут уарт...
На модеме данные скаладываются в буффер, в колбеке от уарта, буффер довольно большой. Потом по таймеру вызывается wip_write и начинает частями из этого буффера отпарвлять.
sobr
Цитата(Vlad1977 @ Feb 12 2012, 00:51) *
Че то я не пойму при чем тут уарт...
На модеме данные скаладываются в буффер, в колбеке от уарта, буффер довольно большой. Потом по таймеру вызывается wip_write и начинает частями из этого буффера отпарвлять.
Вот причем:
Цитата
В уарт славиваются данные и по таймеру отправляются на сервер
Данные в уарт славиваются все? Размер пакета который уарт может принять - 120 байт, может здесь теряете?
Vlad1977
Цитата(sobr @ Feb 12 2012, 10:06) *
Вот причем:Данные в уарт славиваются все? Размер пакета который уарт может принять - 120 байт, может здесь теряете?

Да с уартом все в порядке, работает как часы, ничего там не теряется.
sobr
Цитата(Vlad1977 @ Feb 12 2012, 16:22) *
Да с уартом все в порядке, работает как часы, ничего там не теряется.

У меня нормально все уходит.
Vlad1977
Цитата(sobr @ Feb 12 2012, 16:59) *
У меня нормально все уходит.

А вы сколько за раз отправляете данных? какая пауза между отправкой? и какой оператор?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.