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