QPn量子架构:十字交通灯例程(MDK软仿)
1、QP量子架构 = 面向对象 + 事件驱动 + 状态机(UML)建模官网:http://www.state-machine.com/index.php
此帖目的:帮助你阅读QPn代码,达到熟练应用QPn量子架构
2、例程基于
QP-nano(V4.5.04)架构 + STM32F103VE + Keil MDK全软仿真 + print环境打印跟踪代码 + 模拟行人按键触发事件 + 交通灯,具体效果图如下:
按键IO分配:
PB.0为行人按键(程序运行时模拟行人按键,需要你点击模拟)
PB.1为维修人员按键(未使用)
交通灯分配:
PB.6(ped_red);PB.7(ped_green)
PB.13(car_red);PB.14(car_yellow);PB.15(car_green)
3、资料介绍
说明:例程压缩了一下,下载后解压即可,里面有SI + keil + QM(需QM软件打开)
4、QPn例程(学习资料)
附件下载: 排版还好,该说的都说了,需要的自己看吧! 顶一个…… 感谢LZ~~~ 学习了,谢谢 顶,不错,挺用心的 非常感谢分享,以前简单了解过,这次好好看看楼主的资料。 学习了,谢谢分享 谢谢分享 QP学习历程:劣势(无可复制的产品程序架构)---- 迷茫(浑浑噩噩)---- 找寻(决心改善之)---- 乱撞(VS or QP??)---- 专注(开始学习UML,QP...)---- 反思(无谓的怀疑,让自己浪费大半时间)---- 信心(来源于了解自己的优劣势,来源于归核)---- 应用(流程化,提炼提炼再提炼)---- 开源(AMO发帖,也算卖弄吧)...... 谢谢楼主分享。努力! 顶一下,下载了了解一下 顶你,用力的顶你。 {:lol:}能对大家有用,才有点价值,自己帮自己顶一下{:lol:} 我徘徊在ucos和QP之间。 好东西,顶你 感谢分享。。。 guolun 发表于 2014-1-16 10:34
我徘徊在ucos和QP之间。
0、全局 >> 局部细节,梳理完全局后,把过程中的几个关键点抓住,事情就成功的80%(80/20法则)
1、ucos和其它的OS只是QP中的一个“插件QK”,框架搞好了,需要做的只是填空....
2、不必纠结,不能引领潮流,那就顺应潮流,逆潮流只有被推到沙滩上...
3、需求(来源于客户)--- 用例图(用例说明)---- 时序图(个人认为不太紧要)---- 状态图(开花后的结果)-- 代码(QM自动生成) guolun 发表于 2014-1-16 10:34
我徘徊在ucos和QP之间。
这个并不冲突,有时候只用状态机,架构就算了 好像很深奥呀 学习学习 mdcao 发表于 2014-1-16 11:39
0、全局 >> 局部细节,梳理完全局后,把过程中的几个关键点抓住,事情就成功的80%(80/20法则)
1、ucos ...
如果是界面程序,QP不知如何适应!以前也了解过QP。 之前做项目时评估过这个东东,但后面做着做着都不用这些工具了。 学习,mark
之前看过,没有看懂。 好东西,一直在研究这个玩意,但是没有能很好的驾驭它,还需要努力,谢楼主。 这个真的是好东西 首次了解,谢谢分享。。。。。 套用量子编程上引用的名言:“作为常识,我们采取一种方法并尝试它。如果它失败了,坦率承认这一点在去试别的办法。但最重要的是,去试一些方法”。等学的差不多了,再发一些感悟来交流交流。 学习、尝试一下 支持楼主,楼主要继续研究啊,坚持就是力量 呵呵 不错, 谢了 谢谢楼主的资料,最近想研究研究QPn 已下载,,,赞一个, 今天回来看帖子居然加“火”了 回来顶一下! 学习中。。 标记,QPn量子架构:十字交通灯例程 研究研究。。。。。 好东西,支持;下来研究研究
提个问题:
楼主提供的资料里 ...\QPn例程\QP学习笔记\00 面向对象知识点集合.doc 中
。。。
C中.h头文件的写法
。。。
6.在.h头文件中,不要暴露任何特定模块相关的数据结构的内部格式。
在.h头中,不要声明具体数据结构,如struct {...} foo,而是把它放到.c中,如果模块中需要这个结构输入或输出,在头中定义一个类型typedef struct foo module_type,这样客户模块可以创建它的实例。客户模块不必知道具体的foo结构的内部细节。
有谁能举个应用的例子么? 目前我是这么实现的:
1/*----x.c----*/
#include "x.h"
struct MAN{
unsigned int QQ_NUM;
}man1,man2,man3;
unsigned int GetQQNum(Man man)
{
unsigned int QQ_Num;
QQ_Num = man->QQ_NUM;
return QQ_Num;
}
2/*----x.h----*/
extern struct MANman1,man2,man3;
typedef struct MAN*Man;
unsigned int GetQQNum(Man man);
3/*----main.c----*/
#include "x.h"
void main(void)
{
GetQQNum(&man1);
while(1);
}
但是由于其他文件根本不知道struct MAN内部的细节,所以没办法创建新的对象啊,想用的话,只能是x.c中定义好,然后再通过x.h开放出来;这样不是很不方便?
还是说我对这段话理解的不对,希望有人指点一下,谢谢~! 请教,关于官方文档 Getting Started with QP_nano 中的环境变量设置问题;
文档中的图表如下:
Environment variable Example setting (adjust to your system)
QPN C:\qp\qpn
QTOOLS C:\tools\qtools
PATH …;%QTOOLS%\bin (append to the PATH)
我想问的是,假如我的QTOOLS安装在D:\tools 下; 那么我的PATH应该如何设置?
D:\tools\qtools\bin ?? 记号,收藏 谢谢分享 新东西,看一看。 正好之前看过rtx的十字交通灯,我可以专注于QP的实现来研究下这个框架 正在学,下来看看 学习了,mark xuexi ......... 学习下,谢谢 看看。。。 看起来有点类似于操作系统思想 看看再说,架构方面真的蛮深奥的 这个一定要顶 共勉,刚开始接触 记号,留着学习 顶楼主一下,谢谢分享 谢谢分享,学习了!!! Free_Bird 发表于 2014-7-3 22:10
提个问题:
楼主提供的资料里 ...\QPn例程\QP学习笔记\00 面向对象知识点集合.doc 中
QP尽量提高软件设计的“抽象”层次,所以它使用了多种方法来达到这个目的。你询问的这个方法是其中之一,它叫“Opaque Pointer"。
请参考:
http://www.qnx.com/developers/articles/article_302_2.html
和
http://stackoverflow.com/questions/27912385/am-i-correct-to-assume-one-cannot-forward-declare-a-librarys-opaque-pointer-typ
或自己搜这个关键词。 end2000 发表于 2015-2-7 21:50
QP尽量提高软件设计的“抽象”层次,所以它使用了多种方法来达到这个目的。你询问的这个方法是其中之一, ...
谢谢,链接内容很详细;
再次感谢~! 一直看书,又是英文的,中文版确实翻译的不好,看得我云里雾里。
终于发现了这个,看下先,真是太感谢了。 QM好像只有64位版本的吗?还在用32位电脑的伤不起呀。 第一次,学习了 顶楼主一下,谢谢分享!!! mark,顶楼主 正在学习QP,是我需要的资料,感谢!!{:smile:} 原来论坛里也有人研究QP啊 出其而亮 发表于 2015-4-10 09:22
一直看书,又是英文的,中文版确实翻译的不好,看得我云里雾里。
终于发现了这个,看下先,真是太感谢了。 ...
中文看第二版 c语言版本的 感谢分享,收藏备用 感谢楼主分享,正在研究QP量子框架 多谢分享 正在研究 楼主觉得QP和RTOS各自的优劣势在哪儿?我觉得RTOS抢占式任务切换很灵活,就有一点比较占用内存。对QP不了解,还请楼主介绍一下 学习过一段时间,不过他的那个资料太难获取了,原书两章看了几遍不明就里,放弃了。
笔者悟性不算太差,不过确实很难看懂,比英文版的FreeRTOS说明书难看多了。 其间也移植到了自己的STM32F4的UCOS工程中,实现了其中几个简单的功能,但是原工程太大,官方上深入一点的QM教程,例如进入状态机和跳出状态机的触发介绍等都没有,自己摸索的倒是通了,但是不晓得原理,不晓得有没有Bug,就放弃了。 再来,温故而知新。发觉自己对状态的定义理解不到位,经常把状态搞成动作。 太强大了,学习学习 貌似很高级的玩意儿!~~ 在乱撞之---QP和VS之间,我居然选择了VS.
顶,不错,挺用心的 顶,不错,挺用心的 学习了,Qp
页:
[1]