Ethernet client. Медленная скорость передачи
- Войдите на сайт для отправки комментариев
Всем привет.
имеется atmega2560 и на ней ethernet модуль w5100.
связь с сервером по изернет организовал через стандарт либу arduino Ethernet.
вот в чем проблема: данные на сервер отправляю каждую секунду, но приходят они кучей по разному (сразу неск пакетов) бывает аж раз в минуту.
понимаю, что есть буфер у клиента в который он складывает, и отправляет не сразу, а как получится (буфер уже полный или еще условия какие..).
что уже пытался сделать:
-отключал клиента после каждой передачи - потом подключение заново, долго.
-посылал ответ сервера о получении посылки, клиент ждал каждого ответа перед след отправкой. тоже долго, те много времени приходится ждать ответа.
В софте или в железе проблема?
Как правильно сделать, чтобы сразу отправлял, минуя буфер, те чтобы раз в сек стабильно пакет улетал?
скетч
bool client::sendData(){ bool ok = true; ethClient_.flush(); if (ethClient_.connected()) { int sz = values_.size(); if (sz == 0) return ok; ethClient_.write(module_, strlen(module_) + 1); int vlSz = sizeof(valueRec); char* name; void* data; for (int i = 0; i < sz; ++i){ values_.get(i, &name, &data); ethClient_.write((char*)data, vlSz); } char* end = "=end="; ethClient_.write(end, strlen(end)); } else { ethClient_.stop(); ok = false; } return ok; }
проблема решена. с мк все в порядке.
на сервере косяк был.