[Tinyos-devel] copying non nx_structs into messages
Kevin Klues
klueska at gmail.com
Fri Jul 27 17:46:22 PDT 2007
Yes there is a more convenient way to do this or yes I have to copy
element by element.
Kevin
On 7/27/07, David Gay <dgay42 at gmail.com> wrote:
> On 7/27/07, Kevin Klues <klueska at gmail.com> wrote:
> > Is there a convenient way to copy the contents of a non nx-type struct
> > into a message payload?
> >
> > i.e. I have a struct defined
> > typedef struct my_struct {
> > uint16_t a;
> > uint16_t b;
> > uint16_t c;
> > } my_struct_t;
> >
> > and I want to copy it into the payload of a message whose data members
> > must all be nx types. Normally I would use something like memcopy,
> > but this doesn't work when copying from a non-nx type structure into
> > an nx-type one.
> >
> > Do I have to create a duplicate of my struct specifically for casting
> > the payload of a message to and then copy everything element by
> > element?
> >
> > i.e.
> > typedef nx_struct nx_my_struct {
> > uint16_t a;
> > uint16_t b;
> > uint16_t c;
> > } nx_my_struct_t;
> >
> > message_t msg;
> >
> > event void MyRead.readDone(my_struct_t* data, error_t error) {
> > nx_my_struct_t* data_msg = call AMSend.getPayload(&msg);
> > data_msg->a = data->a;
> > data_msg->b = data->b;
> > data_msg->c = data->c;
> > //Doesn't work -- memcpy(data_msg, data, sizeof(my_struct_t));
> > }
>
> Yes.
>
> David Gay
>
--
~Kevin
More information about the Tinyos-devel
mailing list