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;
}
проблема решена. с мк все в порядке.
на сервере косяк был.