Ethernet client. Медленная скорость передачи

Tyiler
Offline
Зарегистрирован: 17.01.2017

Всем привет. 
имеется 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;
  }

 

Tyiler
Offline
Зарегистрирован: 17.01.2017

проблема решена. с мк все в порядке.
на сервере косяк был.