|
From: | Felix Ruess |
Subject: | Re: [Paparazzi-devel] adding a telemetry message |
Date: | Fri, 31 May 2013 12:49:26 +0200 |
Hello,
I saw the problem. Now I can take the message succesfully.
I may write the additional explanations to update wiki and send it to the guy who updates the wiki.
I added these to messages.h file: I forgat to change ATTITUDE to IVMEOLCER, that is why I could not see the message.I also added these to the same messages.h:
#define DOWNLINK_SEND_IVMEOLCER(_trans, _dev, phi, psi, theta){ \
if (DownlinkCheckFreeSpace(_trans, _dev, DownlinkSizeOf(_trans, _dev, 0+4+4+4))) {\
DownlinkCountBytes(_trans, _dev, DownlinkSizeOf(_trans, _dev, 0+4+4+4)); \
DownlinkStartMessage(_trans, _dev, "ATTITUDE", DL_ATTITUDE, 0+4+4+4) \
DownlinkPutFloatByAddr(_trans, _dev, (phi)); \
DownlinkPutFloatByAddr(_trans, _dev, (psi)); \
DownlinkPutFloatByAddr(_trans, _dev, (theta)); \
DownlinkEndMessage(_trans, _dev ) \
} else \
DownlinkOverrun(_trans, _dev ); \
}
#define DL_IVMEOLCER 5
#define DL_IVMEOLCER_phi(_payload) (({ union { uint32_t u; float f; } _f; _f.u = (uint32_t)(*((uint8_t*)_payload+2)|*((uint8_t*)_payload+2+1)<<8|((uint32_t)*((uint8_t*)_payload+2+2))<<16|((uint32_t)*((uint8_t*)_payload+2+3))<<24); _f.f; }))
#define DL_IVMEOLCER_psi(_payload) (({ union { uint32_t u; float f; } _f; _f.u = (uint32_t)(*((uint8_t*)_payload+6)|*((uint8_t*)_payload+6+1)<<8|((uint32_t)*((uint8_t*)_payload+6+2))<<16|((uint32_t)*((uint8_t*)_payload+6+3))<<24); _f.f; }))
#define DL_IVMEOLCER_theta(_payload) (({ union { uint32_t u; float f; } _f; _f.u = (uint32_t)(*((uint8_t*)_payload+10)|*((uint8_t*)_payload+10+1)<<8|((uint32_t)*((uint8_t*)_payload+10+2))<<16|((uint32_t)*((uint8_t*)_payload+10+3))<<24); _f.f; }))
As a last thing, I added (2+0+4+4+4) to the line below: But I am not sure about it, I did it by trying. I suspect if some other messages affected or not.
#define MSG_telemetry_LENGTHS {0,(2+0+2),(2+0+1+nb_md5sum*1),(2+0),(2+0+2),0,(2+0+4+4+4),(2+0+4+4+4),(2+0+2+2+2+2+2),(2+0+1+4+4+2+4+2+2+2+4+1+1),(2+0+4
Cheers,
Refik
Kimden: Refik Sever
Gönderildi: 31 Mayıs 2013 Cuma 13:02
Kime: address@hidden
Konu: Re: [Paparazzi-devel] adding a telemetry message
Hello,
I found the error in build. DOWNLINK_SEND_IVMEOLCER is not defined. Therefore, I added these lines to var/include/messages.h file. It was not written in the wiki, we must add it.
#define DOWNLINK_SEND_IVMEOLCER(_trans, _dev, phi, psi, theta){ \
if (DownlinkCheckFreeSpace(_trans, _dev, DownlinkSizeOf(_trans, _dev, 0+4+4+4))) {\
DownlinkCountBytes(_trans, _dev, DownlinkSizeOf(_trans, _dev, 0+4+4+4)); \
DownlinkStartMessage(_trans, _dev, "ATTITUDE", DL_ATTITUDE, 0+4+4+4) \
DownlinkPutFloatByAddr(_trans, _dev, (phi)); \
DownlinkPutFloatByAddr(_trans, _dev, (psi)); \
DownlinkPutFloatByAddr(_trans, _dev, (theta)); \
DownlinkEndMessage(_trans, _dev ) \
} else \
DownlinkOverrun(_trans, _dev ); \
}
Now it builds succesfully, but when I started GCS and messages tool, I can not see IVMEOLCER message in the list. I think that I must change or add something more. In the var/include/messages.h file, there is a define of MSG_telemetry_LENGTHS. I think that I must also update this section, but I don't know how.
Could you please send suggestions about adding IVMEOLCER message?
Cheers,
Refik
#define MSG_telemetry_LENGTHS {0,(2+0+2),(2+0+1+nb_md5sum*1),(2+0),(2+0+2),0,(2+0+4+4+4),(2+0+2+2+2+2+2),(2+0+1+4+4+2+4+2+2+2+4+1+1),(2+0+4+4+1),(2+0+1+1+4+4+4+4+1+1),(2+0+1+1+1+1+1+1),(2+0+2+2+2+2+1+2+2+2),(2+0+1+1+1),(2+0+4+1),(2+0+4+4),(2+0+4+4+4+4+4+4+4+4),(2+0+4+4+2+1),(2+0+2+2),(2+0+8+4),(2+0+2+2+2+2),(2+0+4+4+4),(2+0+4+4+4+4),(2+0+4+4+4+4+4+4+4),(2+0+1+4+1+4+4+4),(2+0+1+1+1+1+1+1+2),(2+0+1+nb_msg*1),(2+0+4+4+4+4),(2+0+1),(2+0+2+4+4+4+4+4+1),(2+0+1+2+2),(2+0+1+4),(2+0+1+4+4),(2+0+2+2+2+2+2+1),(2+0+2+4),(2+0+1+4+4+4+1),(2+0+1+1+1+1),(2+0+4+4+2+4),(2+0+2+2+2+2+2+2+2+2+2+2+2),(2+0+4+4+4+4+4),(2+0+4+4+4+4+4+4),(2+0+4+4+4+4),(2+0+4+4),(2+0+4+4+4),(2+0+4+2+4),(2+0+4+4+4+4),(2+0+2+2+2+2),(2+0+1+4+4+4),(2+0+1+4),(2+0+1+4+4+4),(2+0+1+1+4+4),(2+0+1+1+1),(2+0+1+nb_values*2),(2+0+2+2+2),(2+0+4+4+4+4),(2+0+2+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+1+1+1+1+4+2+1+1),(2+0+2+2+4),(2+0+2+2+4),(2+0+2+2+4+4+2+2),(2+0+4+4+4+2+2+2+2+4+1+1),(2+0+4+4+4+4),(2+0+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4),(2+0+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4+4),(2+0+2+4+4),(2+0+2+4+4+4+2+4+4+4+4+4+4+4+2+1),(2+0+2+4+4+4+4+4+4),(2+0+2+4+4+4+4),(2+0+4+4+4+4+4+4),(2+0+4+2+4),(2+0+2+4),(2+0+2+1+1),0,0,0,0,0,(2+0+4+4),(2+0+4),0,0,(2+0+4+4),(2+0+4+4
>On Mon, May 27, 2013 at 6:13 AM, Refik Sever <address@hidden> wrote:
>Hello,
>
>I am trying to add a telemetry message. I followed the commands in the wiki:
>
>1. I added this line to default_fixedwing_imu.xml file:
>
><?xml version="1.0"?>
><!DOCTYPE telemetry SYSTEM "telemetry.dtd">
><telemetry>
> <process name="Ap">
> <mode name="default">
> <message name="AIRSPEED" period="1"/>
> <message name="ALIVE" period="5"/>
> <message name="GPS" period="0.25"/>
> <message name="NAVIGATION" period="1."/>
> <message name="IVMEOLCER" period="0.2"/>
>
> 2. I added these lines to ap_downlink.h file:
>
>#define PERIODIC_SEND_IVMEOLCER(_trans, _dev) Downlink({ \
> struct FloatEulers* att = stateGetNedToBodyEulers_f(); \
> DOWNLINK_SEND_IVMEOLCER(_trans, _dev, &(att->phi), &(att->psi), &(att->theta)); \
>})
> 3. I added these lines to messages.xml file:
> <message name="IVMEOLCER" id="5">
> <field name="phi" type="float" unit="rad" alt_unit="deg"/>
> <field name="psi" type="float" unit="rad" alt_unit="deg"/>
> <field name="theta" type="float" unit="rad" alt_unit="deg"/>
> </message>
>
> However, while building it gives this error:
> firmwares/fixedwing/main_ap.c:410:5: warning: implicit declaration of function >'DOWNLINK_SEND_IVMEOLCER' [-Wimplicit-function-declaration]
>firmwares/fixedwing/main_ap.c:410:5: warning: nested extern declaration of >'DOWNLINK_SEND_IVMEOLCER' [-Wnested-externs]
>firmwares/fixedwing/main_ap.c:410:5: error: 'PprzTransport' undeclared (first use in this function)
>firmwares/fixedwing/main_ap.c:410:5: note: each undeclared identifier is reported only once for each >function it appears in
>firmwares/fixedwing/main_ap.c:410:5: error: 'UART1' undeclared (first use in this function)
> make[1]: *** [/home/refik/MASTER_PAPARAZZI/paparazzi/var/MYAC1/ap/firmwares/fixedwing>/main_ap.o] Error 1
>make[1]: Leaving directory `/home/refik/MASTER_PAPARAZZI/paparazzi/sw/airborne'
>make: *** [ap.compile] Error 2
>
>
>Please help about this error.
> Cheers,
> Refik
_______________________________________________
Paparazzi-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel
[Prev in Thread] | Current Thread | [Next in Thread] |