<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to UDP receive buffer delete</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/7d0f1d0436/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/7d0f1d0436/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/7d0f1d0436/</id><updated>2020-02-27T13:59:33.507000Z</updated><subtitle>Recent posts to UDP receive buffer delete</subtitle><entry><title>UDP receive buffer delete</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/7d0f1d0436/?limit=25#be2a" rel="alternate"/><published>2020-02-27T13:59:33.507000Z</published><updated>2020-02-27T13:59:33.507000Z</updated><author><name>many88</name><uri>https://forge.codesys.com/u/many88/</uri></author><id>https://forge.codesys.com690b2e2a0cc7c75e3688ef12d03729e96f29f5c0</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Hello all,&lt;br/&gt;
I have a problem , I want to delete the buffer because when I receive the next message it will simply overwrite the previous message and not entirely delete it.&lt;br/&gt;
I tried to follow the example from CAA library but it is the same as use UDP_Receive function.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="nv"&gt;UDPPeer&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;xEnable&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;xEnable&lt;/span&gt;, &lt;span class="nv"&gt;ipAddr&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;IPAddress&lt;/span&gt;, &lt;span class="nv"&gt;uiPort&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;uiPort&lt;/span&gt;, &lt;span class="nv"&gt;hPeer&lt;/span&gt;&lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nv"&gt;Peer&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;CASE&lt;/span&gt; &lt;span class="nv"&gt;eState&lt;/span&gt; &lt;span class="nv"&gt;OF&lt;/span&gt;
   &lt;span class="mi"&gt;0&lt;/span&gt;: &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;Init&lt;/span&gt;
      &lt;span class="nv"&gt;IPAddress&lt;/span&gt;.&lt;span class="nv"&gt;sAddr&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;192.168.0.110&lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="c1"&gt;; // IP Adress where Codesys application is running&lt;/span&gt;
      &lt;span class="nv"&gt;uiPort&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1202&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;xEnable&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;TRUE&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;eSTATE&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
   &lt;span class="mi"&gt;10&lt;/span&gt;: &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;Start&lt;/span&gt; &lt;span class="nv"&gt;listening&lt;/span&gt;
      &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;UDPPeer&lt;/span&gt;.&lt;span class="nv"&gt;xActive&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
         &lt;span class="nv"&gt;UDPReceive_Buffer&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;xEnable&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;TRUE&lt;/span&gt;,&lt;span class="nv"&gt;hPeer&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;Peer&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
            &lt;span class="k"&gt;IF&lt;/span&gt; &lt;span class="nv"&gt;UDPReceive_Buffer&lt;/span&gt;.&lt;span class="nv"&gt;xReady&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
               &lt;span class="nv"&gt;hqueue&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;SBM&lt;/span&gt;.&lt;span class="nv"&gt;CreateQueue&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;peError&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;CAA&lt;/span&gt;.&lt;span class="nv"&gt;gc_pNULL&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;; &lt;/span&gt;
               &lt;span class="nv"&gt;SBM&lt;/span&gt;.&lt;span class="nv"&gt;ENQueueBuffer&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;hQueue&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;hqueue&lt;/span&gt;, &lt;span class="nv"&gt;hBuffer&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;UDPReceive_buffer&lt;/span&gt;.&lt;span class="nv"&gt;hBuffer&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
               &lt;span class="nv"&gt;SBM&lt;/span&gt;.&lt;span class="nv"&gt;GetQueueLength&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;hQueue&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;hqueue&lt;/span&gt;,&lt;span class="nv"&gt;peError&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;CAA&lt;/span&gt;.&lt;span class="nv"&gt;gc_hINVALID&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
               &lt;span class="nv"&gt;hqueue1&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;SBM&lt;/span&gt;.&lt;span class="nv"&gt;DeQueueBuffer&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;hQueue&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;hqueue&lt;/span&gt;,&lt;span class="nv"&gt;peError&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;CAA&lt;/span&gt;.&lt;span class="nv"&gt;gc_hINVALID&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
&lt;span class="nv"&gt;SBM&lt;/span&gt;.&lt;span class="nv"&gt;CopyBufferData&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;hBuffer&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;hqueue1&lt;/span&gt;,&lt;span class="nv"&gt;pData&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;ADR&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;sReceived&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;,&lt;span class="nv"&gt;szSize&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;SIZEOF&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;sReceived&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;,&lt;span class="nv"&gt;szLength&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;SBM&lt;/span&gt;.&lt;span class="nv"&gt;GetBufferSize&lt;/span&gt;&lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;hqueue1&lt;/span&gt;,&lt;span class="nv"&gt;peError&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;CAA&lt;/span&gt;.&lt;span class="nv"&gt;gc_hINVALID&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;,&lt;span class="nv"&gt;szOffset&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
               &lt;span class="nv"&gt;udpData&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt;   &lt;span class="nv"&gt;sReceived&lt;/span&gt;&lt;span class="c1"&gt;; // Data from UDP-stream&lt;/span&gt;
               &lt;span class="nv"&gt;ctRecAnswers&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;ctRecAnswers&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="c1"&gt;; // Number of UDP calls&lt;/span&gt;
               &lt;span class="nv"&gt;sReceived&lt;/span&gt; :&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'&lt;/span&gt; &lt;span class="c1"&gt;;&lt;/span&gt;
               &lt;span class="nv"&gt;SBM&lt;/span&gt;.&lt;span class="nv"&gt;DeleteBuffer&lt;/span&gt; &lt;span class="ss"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;hBuffer&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;hqueue1&lt;/span&gt;&lt;span class="ss"&gt;)&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
            &lt;span class="nv"&gt;ELSIF&lt;/span&gt; &lt;span class="nv"&gt;UDPReceive_Buffer&lt;/span&gt;.&lt;span class="nv"&gt;xError&lt;/span&gt; &lt;span class="k"&gt;THEN&lt;/span&gt;
               &lt;span class="nv"&gt;eState&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
            &lt;span class="nv"&gt;END_IF&lt;/span&gt;
      &lt;span class="k"&gt;ELSE&lt;/span&gt;
         &lt;span class="nv"&gt;eState&lt;/span&gt;:&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="c1"&gt;;&lt;/span&gt;
      &lt;span class="nv"&gt;END_IF&lt;/span&gt;
   &lt;span class="mi"&gt;20&lt;/span&gt;: &lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="nv"&gt;Error&lt;/span&gt;
&lt;span class="nv"&gt;END_CASE&lt;/span&gt;
&lt;span class="o"&gt;////////////////////////////////////////////////////////////////////////////////////&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry></feed>