Hello,

Iam new to the Project and want to measure some values like delay or
offset to get a sense for the whole thing. My first approch was to set
up an additional IEEE style synching on top of the TDMA protocol. Thats
just for practice as tdma is allready synched. The Oppertunity is to
compare the tdma delay and offset values with the additional measured
ones.

Well, after i have discovered the web and the source i found that the
XMIT Event is not implemented yet. I have added it and now i have a few
questions.

But first the piece i changed:

Index:
Q:/projekte/Prototyping/scale-net/rtnet-0.9.10/stack/include/rtmac.h
===================================================================
---
Q:/projekte/Prototyping/scale-net/rtnet-0.9.10/stack/include/rtmac.h   
(revision 1204)
+++
Q:/projekte/Prototyping/scale-net/rtnet-0.9.10/stack/include/rtmac.h   
(working copy)
@@ -48,7 +48,9 @@
 #define TDMA_WAIT_ON_SYNC           RTMAC_WAIT_ON_DEFAULT
 #define TDMA_WAIT_ON_SOF            TDMA_WAIT_ON_SYNC /* legacy support
*/
 
+#define TDMA_WAIT_ON_XMIT           RTMAC_WAIT_ON_XMIT
 
+
 /* RTMAC_RTIOC_WAITONCYCLE_EX control and status data */
 struct rtmac_waitinfo {
     /** Set to wait type before invoking the service */
Index:

Q:/projekte/Prototyping/scale-net/rtnet-0.9.10/stack/rtmac/tdma/tdma_worker.c
===================================================================
---

Q:/projekte/Prototyping/scale-net/rtnet-0.9.10/stack/rtmac/tdma/tdma_worker.c   
(revision 1204)
+++

Q:/projekte/Prototyping/scale-net/rtnet-0.9.10/stack/rtmac/tdma/tdma_worker.c   
(working copy)
@@ -48,6 +48,7 @@
     rtdm_lock_put_irqrestore(&tdma->lock, lockctx);
 
     rtmac_xmit(rtskb);
+    rtdm_event_pulse(&tdma->xmit_event);
 
     rtdm_lock_get_irqsave(&tdma->lock, lockctx);
 }
Index:

Q:/projekte/Prototyping/scale-net/rtnet-0.9.10/stack/rtmac/tdma/tdma_dev.c
===================================================================
---

Q:/projekte/Prototyping/scale-net/rtnet-0.9.10/stack/rtmac/tdma/tdma_dev.c   
(revision 1204)
+++

Q:/projekte/Prototyping/scale-net/rtnet-0.9.10/stack/rtmac/tdma/tdma_dev.c   
(working copy)
@@ -113,12 +113,11 @@
         case RTMAC_RTIOC_WAITONCYCLE:
             if (!rtdm_in_rt_context())
                 return -ENOSYS;
+            // Why this Function? Why do i need to restrict the number
of waiting Tasks to one? And why not just destroy the events?
+            if             (( long ) arg == TDMA_WAIT_ON_SYNC ) return
wait_on_sync(ctx, &tdma->sync_event);
+            else if (( long ) arg == TDMA_WAIT_ON_XMIT ) return
rtdm_event_wait(&tdma->xmit_event);
+            else         return -EINVAL;
 
-            if ((long)arg !=TDMA_WAIT_ON_SYNC)
-                return -EINVAL;
-
-            return wait_on_sync(ctx, &tdma->sync_event);
-
         case RTMAC_RTIOC_WAITONCYCLE_EX: {
             struct rtmac_waitinfo   *waitinfo = (struct rtmac_waitinfo
*)arg;
             struct rtmac_waitinfo   waitinfo_buf;


1. Q:
For what is the wait_on_sync() function exactly needed? Doesn't Xenomai
take care of wakeing up tasks waiting on an events which got destroyed?
Is the user in charge of signaling events before destroying them? What
is the pupose of the cycle_waiter variable? Does XMIT_SYNCH also need to
queue itself into it?

2. Q:
Is it correct that the XMIT Event should get pulsed after a packet was
sent to the Hardware? Or should it happen if a packet could be sent to
the hardware? Even if there is no Package in the Queue?





------------------------------------------------------------------------------
Stay on top of everything new and different, both inside and 
around Java (TM) technology - register by April 22, and save
$200 on the JavaOne (SM) conference, June 2-5, 2009, San Francisco.
300 plus technical and hands-on sessions. Register today. 
Use priority code J9JMT32. http://p.sf.net/sfu/p
_______________________________________________
RTnet-users mailing list
RTnet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rtnet-users

Reply via email to