Arduino ethernet socket komunikacia

Pavel Hudecek edizon na seznam.cz
Pátek Září 20 13:19:21 CEST 2019


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. 



Další informace o konferenci Hw-list