<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        color:black;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:black;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body bgcolor="white" lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">Mne to pripada na zapnuty firewall
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">klient posle paket tak sa port vo fw otvori a potom<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">to chvilu ide.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D">j.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;color:#1F497D"><o:p>&nbsp;</o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext">From:</span></b><span style="font-size:10.0pt;font-family:&quot;Tahoma&quot;,&quot;sans-serif&quot;;color:windowtext"> hw-list-bounces@list.hw.cz [mailto:hw-list-bounces@list.hw.cz]
<b>On Behalf Of </b>Jaroslav Buchta<br>
<b>Sent:</b> Sunday, April 21, 2013 12:11 PM<br>
<b>To:</b> HW-news<br>
<b>Subject:</b> Re: STM32F4 LWIP rychlost<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<div>
<p class="MsoNormal">No funguje to divne... Jeste me napada, jestli za to nahodou nemuzou Win8... Kazdopadne po odeslani bajtu to prijima, po nejake dobe ne, pak poslu prikaz - odpoved neprijme a po dalsim prikazu uz odpoved prijme. Kdyz to zkousim z Hercules
 terminalu, tak to funguje jak z praku. Navic na pouziti UdpClient snad neni co zkazit, proste new UdpClient(lokalni port), a pak by IMHO hned melo fungovat Receive a ono prd. Ani v ruznych variantach, kdy v konstruktoru pouziju EndPoint s Ipaddress.Any atd.<br>
<br>
Kdyz bych pouzil primo Socket treba podle tohoto prikladu, je tam nejaky zadrhel?&nbsp; (ted nejsem na compu kde bych to mohl zkusit, protoze popijim pivo na zahrade ;-) )<br>
<br>
<span style="color:white">&nbsp; </span>{<br>
<span style="color:white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><b><span style="color:#7F0055">byte</span></b>[]&nbsp;data&nbsp;=&nbsp;<b><span style="color:#7F0055">new&nbsp;byte</span></b>[<span style="color:#990000">1024</span>];<br>
<span style="color:white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>string&nbsp;input,&nbsp;stringData;<br>
<span style="color:white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>IPEndPoint&nbsp;ip&nbsp;=&nbsp;<b><span style="color:#7F0055">new&nbsp;</span></b>IPEndPoint(IPAddress.Parse(<span style="color:#2A00FF">&quot;127.0.0.1&quot;</span>),&nbsp;<span style="color:#990000">9999</span>);<br>
<br>
<span style="color:white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Socket&nbsp;server&nbsp;=&nbsp;<b><span style="color:#7F0055">new&nbsp;</span></b>Socket(AddressFamily.InterNetwork,SocketType.Dgram,&nbsp;ProtocolType.Udp);<br>
<br>
<span style="color:white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>string&nbsp;welcome&nbsp;=&nbsp;<span style="color:#2A00FF">&quot;Hello&quot;</span>;<br>
<span style="color:white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>data&nbsp;=&nbsp;Encoding.ASCII.GetBytes(welcome);<br>
<span style="color:white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>server.SendTo(data,&nbsp;data.Length,&nbsp;SocketFlags.None,&nbsp;ip);<br>
<br>
<span style="color:white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>IPEndPoint&nbsp;sender&nbsp;=&nbsp;<b><span style="color:#7F0055">new&nbsp;</span></b>IPEndPoint(IPAddress.Any,&nbsp;<span style="color:#990000">0</span>);<br>
<span style="color:white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>EndPoint&nbsp;Remote&nbsp;=&nbsp;(EndPoint)sender;<br>
<br>
<span style="color:white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>data&nbsp;=&nbsp;<b><span style="color:#7F0055">new&nbsp;byte</span></b>[<span style="color:#990000">1024</span>];<br>
<span style="color:white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><b><span style="color:#7F0055">int&nbsp;</span></b>receivedDataLength&nbsp;=&nbsp;server.ReceiveFrom(data,&nbsp;ref&nbsp;Remote);<br>
<br>
<span style="color:white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Console.WriteLine(<span style="color:#2A00FF">&quot;Message&nbsp;received&nbsp;from&nbsp;{0}:&quot;</span>,&nbsp;Remote.ToString());<br>
<span style="color:white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>Console.WriteLine(Encoding.ASCII.GetString(data,&nbsp;<span style="color:#990000">0</span>,&nbsp;receivedDataLength));<br>
<br>
<span style="color:white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>server.Close();<br>
<span style="color:white">&nbsp;&nbsp;&nbsp;</span>}<br>
<br>
Vypada to jednoduse a premyslim, v cem je zadrhel. Myslim, ze vzhledem k pozadavku na vetsi objemy dat, cim na nizsi level pujdu, tim lip... A se siti jsem v .NET jeste nedelal.<br>
<br>
Dne 21. 4. 2013 10:39, Marek Sembol napsal(a):<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">no mne to chovani prijde minimalne hodne zvlastni a asi bych intenzivne hledal chybu u sebe. Pripadne bych opustil UdpClient a pracoval primo se Socket. Ale fakt si myslim, ze za to .NET nemuze. Podle mne trida Socket pouze zabali WinAPI
 a UdpClient &quot;zjednodusi&quot; pouzivani Socket (spolu se specializaci na UDP a radou omezeni)
<o:p></o:p></p>
<div>
<p class="MsoNormal">Marek<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p>&nbsp;</o:p></p>
<div>
<p class="MsoNormal">2013/4/21 Jaroslav Buchta &lt;<a href="mailto:jaroslav.buchta@hascomp.cz" target="_blank">jaroslav.buchta@hascomp.cz</a>&gt;<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal">Ajo vidite, Close, to me nenapadlo ;-) Zkusim. Ale stejne to casem asi udelam ve Win API, kdyz s tim polem bytu nebude problem.<br>
<br>
Dne 21. 4. 2013 10:12, Marek Sembol napsal(a):<o:p></o:p></p>
</div>
<div>
<div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">vyjadrim se jen castecne:) <o:p></o:p></p>
<div>
<p class="MsoNormal">Pokud pri tom volani z C# -&gt; WinAPI ty &quot;velke objemy dat&quot; jsou Byte[], tak ta konverze je prakticky zadarmo.&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">.NET si to pole proste jen prispendli v pameti a preda dal ukazatel.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">Synchronni vs. asynchronni - no tady se to asi nebude chovat rozdilne. Ono to synchronni volani byva proste jen par volani BeginAsyncXXX a EndAsyncXXX.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">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.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal">Marek<o:p></o:p></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><o:p>&nbsp;</o:p></p>
<div>
<p class="MsoNormal">2013/4/21 Jaroslav Buchta &lt;<a href="mailto:jaroslav.buchta@hascomp.cz" target="_blank">jaroslav.buchta@hascomp.cz</a>&gt;<o:p></o:p></p>
<p class="MsoNormal">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): <o:p></o:p></p>
<div>
<div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
<p class="MsoNormal">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):<o:p></o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt">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>
_______________________________________________<br>
HW-list mailing list &nbsp;- &nbsp;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/listinfo/hw-list</a><o:p></o:p></p>
<p class="MsoNormal"><br>
_______________________________________________<br>
HW-list mailing list &nbsp;- &nbsp;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/listinfo/hw-list</a><o:p></o:p></p>
</blockquote>
<p class="MsoNormal"><br>
_______________________________________________<br>
HW-list mailing list &nbsp;- &nbsp;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/listinfo/hw-list</a><o:p></o:p></p>
</div>
</div>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<pre>_______________________________________________<o:p></o:p></pre>
<pre>HW-list mailing list&nbsp; -&nbsp; sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a><o:p></o:p></pre>
<pre><a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><o:p></o:p></pre>
<pre><a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><o:p></o:p></pre>
</blockquote>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><br>
_______________________________________________<br>
HW-list mailing list &nbsp;- &nbsp;sponsored by <a href="http://www.HW.cz" target="_blank">
www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
<p class="MsoNormal"><br>
<br>
<br>
<o:p></o:p></p>
<pre>_______________________________________________<o:p></o:p></pre>
<pre>HW-list mailing list&nbsp; - &nbsp;sponsored by <a href="http://www.HW.cz">www.HW.cz</a><o:p></o:p></pre>
<pre><a href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a><o:p></o:p></pre>
<pre><a href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a><o:p></o:p></pre>
</blockquote>
<p class="MsoNormal"><o:p>&nbsp;</o:p></p>
</div>
</body>
</html>