It is working ! Thank you very much for your very fast reply !
Best regards,

Fabrice

2010/1/11 Miklos Maroti <[email protected]>

> Hi Fabrice,
>
> So it seems that you do not use the stock BaseStation application. You
> should add the
>
> CFLAGS += -DTASKLET_IS_TASK
>
> line to your makefile for the mote that is using the serial code. That
> should fix your problem.
>
> Best,
> Miklos
>
> On Mon, Jan 11, 2010 at 9:33 AM, Fabrice Dossin
> <[email protected]> wrote:
> > Hello,
> >
> > I am blocked on a critical problem these last days and I have no idea
> what
> > to do to solve it.
> > I have a WSN of IRIS nodes that uses the Collection messaging system to
> send
> > information to the base station.
> > This base station runs the same code as the original one except that I
> > collect the collection messages and forward them as AM messages to the
> UART.
> > To implement this forwarding system, I am using the Intercept interface
> to
> > transform Collection message into AM message.
> >
> > When the network load is low (1 message / second), I have usually no
> > problem.
> > Once it goes higher (5 messages / second), after 2 or 3 minutes, the base
> > station uartBusy flag is blocked in BUSY state and no more message is
> > transmitted to the PC.
> >
> > Did someone have a clue that could relaunch my investigations ?
> >
> > Best regards,
> > Fabrice
> >
> >
> > Key code snippets :
> >
> > - Receiving message from Collection
> >  event message_t *MeshReceive.receive[am_id_t id](message_t *msg,
> >                             void *payload,
> >                             uint8_t len)
> >   {
> >     return receive(msg, payload, len, id);
> >   }
> >
> > - Interception code
> >   message_t* receive(message_t *msg, void *payload, uint8_t len, am_id_t
> id)
> >   {
> >     message_t *ret = msg;
> >
> >     if (!signal MeshIntercept.forward[id](msg,payload,len))
> >       return ret;
> >  ...
> >
> > - Message transformation
> > default event bool
> >   MeshIntercept.forward[am_id_t amid](message_t* msg,
> >                                        void* payload,
> >                                        uint8_t len)
> >   {
> >     if (amid == 0xbb)
> >     {
> >         status_msg_t* out;
> >         status_msg_t* pay=(status_msg_t*) payload;
> >         out = (status_msg_t*)call UartPacket.getPayload(msg,
> > sizeof(status_msg_t));
> >         memcpy(out,payload,sizeof(status_msg_t));
> >         call RadioAMPacket.setType(msg, AM_STATUS_MSG);
> >     }
> > ...
> >
> >
> >
> >
> > _______________________________________________
> > Tinyos-help mailing list
> > [email protected]
> > https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
> >
>
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to