<div dir="ltr">vyjadrim se jen castecne:)<div style>Pokud pri tom volani z C# -&gt; WinAPI ty &quot;velke objemy dat&quot; jsou Byte[], tak ta konverze je prakticky zadarmo. </div><div style>.NET si to pole proste jen prispendli v pameti a preda dal ukazatel.</div>
<div style><br></div><div style>Synchronni vs. asynchronni - no tady se to asi nebude chovat rozdilne. Ono to synchronni volani byva proste jen par volani BeginAsyncXXX a EndAsyncXXX.</div><div style><br></div><div style>
Aplikace se samozrejme ukoncit da. Staci treba zavrit ten socket a volani prijmu skonci na vyjimku (a tu je mozno osetrit, ze). Moznosti jak ten socket zavrit je cela rada. Jako rekce na CTRL-C (pri konzolove aplikaci), jako reakci na service-stop (pri service), jako volani naschedulovane pomoci timeru (kdykoliv) a podobne.</div>
<div style><br></div><div style>Marek</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/4/21 Jaroslav Buchta <span dir="ltr">&lt;<a href="mailto:jaroslav.buchta@hascomp.cz" target="_blank">jaroslav.buchta@hascomp.cz</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Diky za namety, zarizeni zda se funguje docela zpusobne, co nefunguje podle predstav je trida .NET UdpClient na PC - proste pokud neodeslu aspon bajt na zarizeni, nic neprijme a i potom za nejaky timeout chcipne a pomuze az odeslani dalsiho byte aby zase bylo neco prijmuto - nic jineho takze port atd. je asi nasteveno spravne... Neni nejaka option, kterou jsem zatim nepostrehnul, aby to fungovalo primitivne a jen cekalo, az na port neco prijde??? Zkousel jsem uz vsechny mozne varianty synchronni (tam je vtipne, ze Receive nema zadny timeout a aplikace se nakonec ani neda ukoncit...) i asynchronni. C# je dobre asi fakt jen na GUI...<br>

<br>
Co zatim hledam, tak jsou s touto tridou jen problemy - je jina cesta nez pouzit DLL kde to bude realizovano jako WinAPI (coz by snad mohlo fungovat...) Zase konverze velkych objemu dat do C# pak bude asi narocna na rezii...<br>

<br>
<br>
<br>
<br>
Dne 21. 4. 2013 9:35, Ondrej napsal(a):<div class="HOEnZb"><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Někde v lwipopts.h jde nastavit max. velikost paketu. 1400B je velikost paketu (náhoda :-) - takže by se někde měla ještě povolit fragmentace. Ale 100% jistý si tím nejsem. Nicméně zrovna ST má pěkné PDF s návodem na lwip. Byly tam myslím i nějaké testy rychlosti.<br>

<br>
Add: ztrácení paketů: Nainstalujte si Wireshark a zkontrolujte, jestli jsou pakety tam. To je naprostý základ. Je docela slušná šance, že ST odesílat stíhá a nestíhá přijímat jen program. Ono obecně odeslat UDP paket není problém a to i na velkých rychlostech. Obvykle je problém pak data napřijímat (ať už v PC nebo na uP).<br>

<br>
Jinak UDP fragmentace smysl má a to velký. Pro velké toky je problém přijímat 1400B pakety, ale pokud je fragmentuje třeba na 14000B (10x větší), tak u to může PC stíhat. Už jen třeba protože &quot;callback&quot; fce./přerušení se bude volat 10x méně často.<br>

<br>
Ondřej<br>
<br>
Dne 20.4.2013 22:54, Jaroslav Buchta napsal(a):<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Mate nekdo zkusenost jak na to? Jednak jsem zjistil, ze je nekde omezena velikost UDP paketu proste tak, ze pri prekroceni to poskodi haldu a cele to jde do kytek, hranice je nekde kolem 1400B<br>
Dal je zajimave, ze kdyz odesilam pakety bezprostredne za sebou, ztraceji se (ale az od nejakeho poctu a zalezi na delce) a kdyz treba ted za kazdy 4. vlozim pauzu 1ms tak to funguje OK (cili rychlost 4MB/s stabilne, coz mi prijde OK, samozrejme prime pripojeni do pocitace)<br>

Otazkou je, jestli se pakety ztraci u STM nebo na strane PC... Ale na PC je gigabit, to by snad melo byt slusne dimenzovane.<br>
Dalsi zahada je u C# s UdpClient, dokud aspon bajt nevyslu, nic neprijmu (i kdyz data na port prokazatelne chodi, overeno hercules terminalem). To jsem v dokumentaci nikde nenasel, melo by to snad fungovat pro prijem bez volani Connect a Send, ne?<br>

<br>
Jinak teda s rychlosti spokojenost, mozna by to slo i o chlup vyse, prilezitostne vyzkousim. Taky by asi pomohlo zvysit delku paketu - vi nekdo jak na to? Pochopil jsem, ze jsou ruzne metody alokace pameti v LwIP.<br>
______________________________<u></u>_________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/<u></u>listinfo/hw-list</a><br>
<br>
</blockquote>
<br>
______________________________<u></u>_________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/<u></u>listinfo/hw-list</a><br>
</blockquote>
<br>
______________________________<u></u>_________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/<u></u>listinfo/hw-list</a><br>
</div></div></blockquote></div><br></div>