|
From: | Ori Pessach |
Subject: | Re: [Paparazzi-devel] Maximum speed? |
Date: | Tue, 14 Apr 2015 09:54:47 -0600 |
I have no strong opinion about splitting it up and generate a .c and .h file, so if you want to implement it and make a pull request, I wouldn't mind merging it.Personally I really disliked that originally auto_nav was a macro, having it as a static inline function makes it much easier to debug (like a normal function).And having it in a header file is slightly easier on the "build system" part, so you don't have to add sources to a generated directory in var...Well, I guess it is a bit a matter of preference...To me having the auto_nav function as static inline in var/aircrafts/<ac_name>/ap/generated/flight_plan.h is no more difficult to understand or figure out than having it as a function in var/aircrafts/<ac_name>/ap/generated/flight_plan.c.
Even if the function would be in a generated C file, you would still have the generated waypoints, etc. in a header file...
But it never bothered me enough to put in the effort to change it...On Tue, Apr 14, 2015 at 5:13 PM, Ori Pessach <address@hidden> wrote:It does make a difference to potential maintainers. It makes it difficult to figure out where the code ends up going, and the order of certain declarations, and it's certainly surprising.On Tue, Apr 14, 2015 at 9:09 AM, Felix Ruess <address@hidden> wrote:In the end it does not make a difference for the compiled binary...Not exactly sure why Pascal and Antoine originally decided to generate only a header that also includes the generated implementation.But my guess is that it was just easier than generating both a .c and a .h file.On Tue, Apr 14, 2015 at 3:12 PM, Ori Pessach <address@hidden> wrote:I'm still not clear on why all of the logic is in a generated header file... Was there a good reason for that?On Tue, Apr 14, 2015 at 3:56 AM, Felix Ruess <address@hidden> wrote:Cheers, FelixSee also https://wiki.paparazziuav.org/wiki/Flight_Plans#Call</header>#include "guidance/guidance_h.h"<header>To include a header file:Could have been done using "#define guidance_h_SetMaxSpeed gh_set_max_speed" to the same effect...The compiler will inline and optimize this, so it is basically the same as if the generated settings functions would directly call gh_set_max_speed.Hi Ori,As I wrote before guidance_h_SetMaxSpeed is only there to adhere to the generated settings handler naming convention and used as an alias for gh_set_max_speed.
Well, a static inline function in a header file like that is essentially like a macro.On Mon, Apr 6, 2015 at 5:13 PM, Ori Pessach <address@hidden> wrote:guidance_h_SetMaxSpeed() isn't a macro. It's an inline function, and it's declared static in a header file, which is not a great idea. In fact, putting all of the autopilot code in a header file is an odd choice...How do I go about including a header from a flightplan, anyway?--OriOn Mon, Mar 23, 2015 at 3:30 PM, Felix Ruess <address@hidden> wrote:The guidance_h_SetMaxSpeed() macro is basically only there to adhere to the naming convention for settings handlers.You should be able to simply call gh_set_max_speed(speed) directly from your flightplan (but you probably need to include the header).On Thu, Mar 12, 2015 at 3:35 PM, Ori Pessach <address@hidden> wrote:This doesn't work as the code is currently written. guidance_h_SetMaxSpeed() is declared static (in a header file, no less) and the header isn't included in the generated header file that gets compiled into the autopilot firmware, so compilation fails because the reference to guidance_h_SetMaxSpeed() ends up being non-static.Removing the static modifier gets the code to compile, but that's not ideal.The correct way to deal with this is to get the generated code to include the header file where guidance_h_SetMaxSpeed() is declared, but it doesn't seem like it's intended to be part of an official API (if one even exists...)I have to wonder why the autopilot logic is generated into a header file. That seems like an odd (and potentially bad) choice. Is there a good reason for that?OriOn Sun, Mar 8, 2015 at 2:38 PM, Sergey Krukowski <address@hidden> wrote:Afaik, the idea was to use the function guidance_h_SetMaxSpeed:
https://github.com/paparazzi/paparazzi/blob/17b200a59e2fa52106fa973803f4952dadca8e97/sw/airborne/firmwares/rotorcraft/guidance/guidance_h.h#L117
Not sure however it there any other convenience functions for that.
Best Regards,
Sergey_______________________________________________
The wiki has very little to say about setting the maximum speed:
http://wiki.paparazziuav.org/wiki/Flight_Plans#Dynacmically_adjustable_maximum_speed
Basically, nothing.
Is there a way to set the speed of travel between waypoints in a flightplan
for a rotorcraft?
Thanks,
Ori
Paparazzi-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel
_______________________________________________
Paparazzi-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel
_______________________________________________
Paparazzi-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel
_______________________________________________
Paparazzi-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel
_______________________________________________
Paparazzi-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel
_______________________________________________
Paparazzi-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel
_______________________________________________
Paparazzi-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel
_______________________________________________
Paparazzi-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel
_______________________________________________
Paparazzi-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel
[Prev in Thread] | Current Thread | [Next in Thread] |