px4源码开发人员文档(四)创建后台程序(应用)

px4源码开发人员文档(四)创建后台程序(应用)

ID:27659713

大小:71.95 KB

页数:6页

时间:2018-12-03

px4源码开发人员文档(四)创建后台程序(应用)_第1页
px4源码开发人员文档(四)创建后台程序(应用)_第2页
px4源码开发人员文档(四)创建后台程序(应用)_第3页
px4源码开发人员文档(四)创建后台程序(应用)_第4页
px4源码开发人员文档(四)创建后台程序(应用)_第5页
资源描述:

《px4源码开发人员文档(四)创建后台程序(应用)》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、在Unix和其他多任务计算机操作系统屮,后台程序足指,作为后台进积运行的计算机,而不是由交互用户直接控制。后台程序概念的主耍好处是,后台程序讨以直接启动,时不需耍将其发送到精确的用户或者shell的后台(然而,这不适川于Nuttx),其状态可以在运行的吋候,通过shell查询。也可以终止。Step1:创建一个小的标准应用根掘FirstOnboardApplicationTutorial(HelloSky)教程(见PX4源码开发人员文們(二)),这是一个葙本程序(简化):o1234567891[cp

2、p]viewplaincopy_EXPORTintpx4_daemon_app_main(intargc,char*argv[]);鮝•intpx4一daemon_app—main(intargc,char*argv[]){while(true){warnx("HelloDaemon!11);sleep⑴;}return0;}这个应用的问题非常明显,如果不使用&启动,将会阻塞shell(Nuttx,并不如此,并且会出于smallfootprint和可靠性的原因,支持CTRL-Z/fg/bg)。

3、为了回避这个问题,K而部分将应用转换为一个后台程序。Step2:创建后台进程管理函数主函数A后台进程管理函数替代,in的上函数的内界现在位于后台任务/进程屮[cpp]viewplaincopy1.#includeI2._EXPORTintpx4—daemon_app_main(intargc,char*argv[]);intmavlink_thread_main(intargc^char*argv[]);番•intmavlink_thread_main

4、(intargc,char*argv[]){while(true){warnx(,lHelloDaemon!11);sleep⑴;if(thread_should_exit)break;}return0;}•拳intpx4_daemon_app_main(intargc,char*argv[]){if(argc<1)usage("missingcommand");if(!strcmp(argv[l],"start")){if(thread^running){warnx("daemonalrea

5、dyrunning");/*thisisnotanerror*/exit(0);}threadshouldexit=false:daemon_task=task—spawn_cmd("daemon",SCHED_RR,SCHED_PRIORITY_DEFAULT,4096,px4_daemon_thread_main?(argv)?(constchar**)&argv[2]:(constchar**)NULL);thread_running=true;exit(0);}usage("unrec

6、ognizedcommand");exit(l);[plain]viewplaincopyLpx4—daemon_appstart上面的代码没奋报告状态,并且没右对多次调后台进程进行保护。Step3:添加停止/状态指令以及安全保护砧哲合适的启动/停止/状态逮立和附加安全侃扩的完整px4_daemon^app代码如下:[cpp]viewplaincopy1/**1.*@filepx4_daemon_app.c2.*daemonapplicationexampleforPX4autopilot3.*4

7、.*^authorExampleUser5.*/7.6.#include7.#include8.#include9.#include12.10.#include11.#include15.12.#include13.#include18.14.sta

8、ticboolthread—should_exit=false;/**

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。