Arduino ethernet socket komunikacia

Zuffa Jan ZuffaJ na cgc.sk
Pátek Září 20 13:53:00 CEST 2019


Pri UDP sa mozu stat dve veci:

1. Pakety pridu v inom poradi ako boli odoslane. (  to vznika vtedy ked jeden paket dorazi cez router x ktory moze byt napr. pomalsi  a druhy cez router y ktory je rychlejsi a predbehne paket c. 1)
2. Pakety mozu prist fragmentovane (to sa mi nikdy nepodarilo nasimulovat)

j.

-----Original Message-----
From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of Pavel Hudecek
Sent: 20. septembra 2019 13:19
To: HW-news
Subject: Re: Arduino ethernet socket komunikacia

Jak už psal PZ, tak tady je problém s tím, že ještě ani nebylo navázáno spojení.

Pak nastává druhý problém, že TCP nic jako pakety navenek neřeší. Jen zaručí, že všechno co jedna strana poslala, na druhou nakonec přijde. Klidně se stane, že data pošleš ve 3 kouscích velikosti 20, 50 a 65 B a druhá strana obdrží kousky velké 108 a 23 B.

Je pak na tobě, jak v tom najdeš svůj formát dat.

Alternativa je UDP, tam je to i na straně programu po paketech, takže přijdou přesně takové, jak jsi je poslal, navíc není potřeba navazovat spojení. Prostě pošleš paket a hotovo. Ale zas se paket může ztratit a nic dalšího se nestane.

PH

-----Původní zpráva----- 
From: Daniel Valuch
na telnet reaguje.
Takze nevie zistit, kedy sa mu skoncil paket, ktory som poslal z Matlabu.

Je tam nejaky standard? Napr. CR/LF, null character, alebo nieco?





On 20/09/2019 08:19, iko wrote:
> A telnet na ten port z PC ste skusali? Ci nebude problem v tom matlabe 
> alebo co to je.
>
> Uzival som ethernet, ale s kniznicou UIPEthernet a slo to.
>
> On 9/19/19 10:08 PM, balu wrote:
>> zdravim osadenstvo,
>>
>> asi by som potreboval pomoct s implementaciou komunikacie do arduina, 
>> teraz naozaj arduina s pouzitim arduino prostredia.
>>
>> Rad by som postavil pristroj, ktory bude pocuvat na porte 5025 (ako 
>> vsetky ostatne pristroje), poslem mu prikaz MEAS:VOLT:DC?\n a on odpovie 
>> 1.23456.
>>
>> Pouzivam uplne najzakladnejsi priklad
>> https://www.arduino.cc/en/Reference/EthernetServer
>>
>> modul pinga a je zivy.
>> Posielam standardnu spravu z Matlabu (funguje so vsetkymi pristrojmi)
>>
>> PowerMeter = tcpip('128.141.157.182', 5025, 'Terminator', 10);
>> PowerMeter.InputBufferSize = 100;
>> fopen(PowerMeter);
>> fprintf(PowerMeter, 'MEAS:VOLT:DC?\n');
>>
>> ked scanujem porty tak 5025 je otvoreny. Kod v mikrokontroleri sa ale 
>> nikdy sa nedostane cez
>>
>>   EthernetClient client = server.available();
>>    if (client == true) {
>>
>> Dokumentaciu som si samozrejme pozrel
>> https://www.arduino.cc/en/Reference/EthernetServer
>> https://www.arduino.cc/en/Reference/ServerAvailable
>>
>> u available v dokumentacii pisu
>>
>> available()
>>
>> Description
>>
>> Gets a client that is connected to the server and has data available for 
>> reading.
>>
>> ale vzdy je to false, takze bud neprijme nic, alebo mozno prijme moj 
>> packet, ale nevie ze sa uz skoncil a teda asi nie je available.
>>
>> mate s tym niekto skusenosti, pripadne funkcny program? Uz mam spokoro 
>> vyklbeny mozog, ale neviem to stale rozchodit. 

_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list