2 Replies Latest reply on Oct 19, 2010 11:04 AM by cescamilla

    Event Pipe multiple entry.

    formerpigeek

      Hi,

       

      while
      (m_TREvtPipe.Count > 0)
      {
          l_EventObj = m_TREvtPipe.Peek(1);
         
      m_TREvtPipe.Take();
      }

       

      We are using EventPipe in our custom application to receive PI Server point value change event notification.

       

      Above code is written in the evtEvents_OnNewValue API. This API will be triggered whenever registered PI point value is changed.

       

      Whenever we set the point value PI SMT, we have observed that evtEvents_OnNewValue is getting called twice for the same point. This is not the constant behavior, but happens infrequently.

       

      We are sure that no other application is writing this point value. Also “m_TREvtPipe” is a member variable object, it gets created only once.

       

      We would like to know the possible cause of this PI behavior & what the precautions / steps we need to take care to avoid this. Because of this our application behavior is getting disturbed.

       

      Regards
      -Kavita

       
        • Re: Event Pipe multiple entry.
          Ahmad Fattahi

          Is it two triggers and one event in the pipe or two events? In the latter case, do the events share the same time stamp? Do you see two different events in the PI archives?

           

          Aside from the root cause (which will be more tractable when we know the answers to the above questions) as a workaround you may be able to compare the timestamps of the events and ignore if you match the latest time stamp.

            • Re: Event Pipe multiple entry.
              cescamilla

              When I played around with EventPipes I noticed that (the default configuration) would get the method called once per each event in the queue. Meaning that if you get 5 events since the last check it would call 5 times your function instead of just once. Could this be what is happening to you?

               

              You may look at this post for a little more information on triggers and Event Pipes and changing the values. :)