mdcao 发表于 2014-1-15 15:01:13

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例程(学习资料)
    附件下载:

mdcao 发表于 2014-1-15 15:02:54

排版还好,该说的都说了,需要的自己看吧!

滴答滴答下雨啦 发表于 2014-1-15 15:19:00

顶一个……

blueice1108 发表于 2014-1-15 15:37:46

感谢LZ~~~

zx310500 发表于 2014-1-15 16:10:54

学习了,谢谢

whatcanitbe 发表于 2014-1-15 16:14:08

顶,不错,挺用心的

皮爱了西 发表于 2014-1-15 16:23:45

非常感谢分享,以前简单了解过,这次好好看看楼主的资料。

LearningASM 发表于 2014-1-15 16:36:26

学习了,谢谢分享

hxke 发表于 2014-1-15 17:49:23

谢谢分享

mdcao 发表于 2014-1-16 08:57:29

QP学习历程:劣势(无可复制的产品程序架构)---- 迷茫(浑浑噩噩)---- 找寻(决心改善之)---- 乱撞(VS or QP??)---- 专注(开始学习UML,QP...)---- 反思(无谓的怀疑,让自己浪费大半时间)---- 信心(来源于了解自己的优劣势,来源于归核)---- 应用(流程化,提炼提炼再提炼)---- 开源(AMO发帖,也算卖弄吧)......

cjr82123 发表于 2014-1-16 09:02:00

谢谢楼主分享。努力!

Forever 发表于 2014-1-16 09:19:08

顶一下,下载了了解一下

guolun 发表于 2014-1-16 10:10:51

顶你,用力的顶你。

mdcao 发表于 2014-1-16 10:16:20

{:lol:}能对大家有用,才有点价值,自己帮自己顶一下{:lol:}

guolun 发表于 2014-1-16 10:34:27

我徘徊在ucos和QP之间。

zjysd 发表于 2014-1-16 11:05:31

好东西,顶你

GNMXD 发表于 2014-1-16 11:15:14

感谢分享。。。

mdcao 发表于 2014-1-16 11:39:43

guolun 发表于 2014-1-16 10:34
我徘徊在ucos和QP之间。

0、全局 >> 局部细节,梳理完全局后,把过程中的几个关键点抓住,事情就成功的80%(80/20法则)
1、ucos和其它的OS只是QP中的一个“插件QK”,框架搞好了,需要做的只是填空....
2、不必纠结,不能引领潮流,那就顺应潮流,逆潮流只有被推到沙滩上...
3、需求(来源于客户)--- 用例图(用例说明)---- 时序图(个人认为不太紧要)---- 状态图(开花后的结果)-- 代码(QM自动生成)

yiyu 发表于 2014-1-16 12:34:10

guolun 发表于 2014-1-16 10:34
我徘徊在ucos和QP之间。

这个并不冲突,有时候只用状态机,架构就算了

venilunar 发表于 2014-1-16 12:43:22

好像很深奥呀

hzyyl2008 发表于 2014-1-16 20:28:15

学习学习

electrlife 发表于 2014-1-16 22:11:25

mdcao 发表于 2014-1-16 11:39
0、全局 >> 局部细节,梳理完全局后,把过程中的几个关键点抓住,事情就成功的80%(80/20法则)
1、ucos ...

如果是界面程序,QP不知如何适应!以前也了解过QP。

ludikn 发表于 2014-1-16 23:27:27

之前做项目时评估过这个东东,但后面做着做着都不用这些工具了。

xy-mcu 发表于 2014-1-22 17:03:22

学习,mark
之前看过,没有看懂。

jxcylxh 发表于 2014-1-23 09:34:39

好东西,一直在研究这个玩意,但是没有能很好的驾驭它,还需要努力,谢楼主。

liuchuanxhu 发表于 2014-2-23 23:30:35

这个真的是好东西

y1z2f4 发表于 2014-2-24 08:23:42

首次了解,谢谢分享。。。。。

Mong 发表于 2014-4-6 22:25:03

套用量子编程上引用的名言:“作为常识,我们采取一种方法并尝试它。如果它失败了,坦率承认这一点在去试别的办法。但最重要的是,去试一些方法”。等学的差不多了,再发一些感悟来交流交流。

zhenli888 发表于 2014-4-7 10:35:31

学习、尝试一下

augak 发表于 2014-4-7 10:54:22

支持楼主,楼主要继续研究啊,坚持就是力量

alayi 发表于 2014-4-7 18:35:48

呵呵 不错, 谢了

jiangkehong 发表于 2014-5-14 21:37:33

谢谢楼主的资料,最近想研究研究QPn

craigtao 发表于 2014-5-15 11:08:28

已下载,,,赞一个,

mdcao 发表于 2014-5-15 21:05:59

今天回来看帖子居然加“火”了 回来顶一下!

andmain999 发表于 2014-5-30 14:30:47

学习中。。

BrightWang 发表于 2014-6-4 10:42:01

标记,QPn量子架构:十字交通灯例程

luckseason 发表于 2014-6-17 21:55:22

研究研究。。。。。

Free_Bird 发表于 2014-6-29 23:49:28

好东西,支持;下来研究研究

Free_Bird 发表于 2014-7-3 22:10:52

提个问题:

楼主提供的资料里   ...\QPn例程\QP学习笔记\00 面向对象知识点集合.doc 中
。。。
    C中.h头文件的写法
。。。
6.在.h头文件中,不要暴露任何特定模块相关的数据结构的内部格式。
在.h头中,不要声明具体数据结构,如struct {...} foo,而是把它放到.c中,如果模块中需要这个结构输入或输出,在头中定义一个类型typedef struct foo module_type,这样客户模块可以创建它的实例。客户模块不必知道具体的foo结构的内部细节。

有谁能举个应用的例子么?

Free_Bird 发表于 2014-7-3 22:33:08

目前我是这么实现的:
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开放出来;这样不是很不方便?

还是说我对这段话理解的不对,希望有人指点一下,谢谢~!

Free_Bird 发表于 2014-7-6 22:04:30

请教,关于官方文档 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      ??

zzz123456 发表于 2014-7-7 10:28:56

记号,收藏

beidou5306 发表于 2014-7-7 12:31:34

谢谢分享

bx2231 发表于 2014-7-7 13:18:37

新东西,看一看。

myxiaonia 发表于 2014-8-30 09:16:45

正好之前看过rtx的十字交通灯,我可以专注于QP的实现来研究下这个框架

lyl2022 发表于 2014-9-20 08:10:28

正在学,下来看看

bestlong22 发表于 2014-9-20 08:18:10

学习了,mark                  

1148729990 发表于 2014-9-20 09:52:00

xuexi .........

lyra_bj 发表于 2014-9-20 10:22:21

学习下,谢谢

轻风 发表于 2014-9-20 10:49:50

看看。。。

fancyboy 发表于 2014-9-20 12:18:20

看起来有点类似于操作系统思想

AbnerSmith 发表于 2014-10-17 20:12:50

看看再说,架构方面真的蛮深奥的

yebx 发表于 2014-11-3 15:49:35

这个一定要顶

飞天羽 发表于 2014-11-11 17:34:11

共勉,刚开始接触

huangqi412 发表于 2015-1-11 20:51:00

记号,留着学习

qin19890428 发表于 2015-2-7 20:07:47

顶楼主一下,谢谢分享

xd785 发表于 2015-2-7 20:09:51

谢谢分享,学习了!!!

end2000 发表于 2015-2-7 21:50:07

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

或自己搜这个关键词。

Free_Bird 发表于 2015-2-8 02:05:23

end2000 发表于 2015-2-7 21:50
QP尽量提高软件设计的“抽象”层次,所以它使用了多种方法来达到这个目的。你询问的这个方法是其中之一, ...

谢谢,链接内容很详细;
再次感谢~!

出其而亮 发表于 2015-4-10 09:22:10

一直看书,又是英文的,中文版确实翻译的不好,看得我云里雾里。
终于发现了这个,看下先,真是太感谢了。

出其而亮 发表于 2015-4-10 11:02:07

QM好像只有64位版本的吗?还在用32位电脑的伤不起呀。

pchf005 发表于 2015-4-10 11:06:35

第一次,学习了

xuqingtian 发表于 2015-8-17 08:59:50

顶楼主一下,谢谢分享!!!

1178951695 发表于 2015-10-14 16:52:29

mark,顶楼主

Yvan 发表于 2016-3-3 20:06:37

正在学习QP,是我需要的资料,感谢!!{:smile:}

wanghui0574 发表于 2016-6-27 22:41:20

原来论坛里也有人研究QP啊

wanghui0574 发表于 2016-6-27 22:42:04

出其而亮 发表于 2015-4-10 09:22
一直看书,又是英文的,中文版确实翻译的不好,看得我云里雾里。
终于发现了这个,看下先,真是太感谢了。 ...

中文看第二版 c语言版本的

闲鱼翻身 发表于 2016-6-28 08:29:50

感谢分享,收藏备用

yunqing_abc 发表于 2016-7-1 10:59:39

感谢楼主分享,正在研究QP量子框架

bigwei 发表于 2016-7-4 06:35:10

多谢分享 正在研究

int 发表于 2016-10-22 12:00:07

楼主觉得QP和RTOS各自的优劣势在哪儿?我觉得RTOS抢占式任务切换很灵活,就有一点比较占用内存。对QP不了解,还请楼主介绍一下

linquan315 发表于 2017-1-17 23:18:09

学习过一段时间,不过他的那个资料太难获取了,原书两章看了几遍不明就里,放弃了。
笔者悟性不算太差,不过确实很难看懂,比英文版的FreeRTOS说明书难看多了。

linquan315 发表于 2017-1-17 23:22:14

其间也移植到了自己的STM32F4的UCOS工程中,实现了其中几个简单的功能,但是原工程太大,官方上深入一点的QM教程,例如进入状态机和跳出状态机的触发介绍等都没有,自己摸索的倒是通了,但是不晓得原理,不晓得有没有Bug,就放弃了。

出其而亮 发表于 2018-4-11 18:40:18

再来,温故而知新。发觉自己对状态的定义理解不到位,经常把状态搞成动作。

liujingwei 发表于 2018-4-11 23:27:07

太强大了,学习学习

limaotaizi 发表于 2018-8-30 22:46:19

貌似很高级的玩意儿!~~

gaowh 发表于 2018-9-26 23:07:28

在乱撞之---QP和VS之间,我居然选择了VS.

sklli 发表于 2018-11-27 21:05:14

顶,不错,挺用心的

sklli 发表于 2018-11-27 21:05:35

顶,不错,挺用心的

zhiyuanzhitian 发表于 2021-6-14 15:39:11

学习了,Qp
页: [1]
查看完整版本: QPn量子架构:十字交通灯例程(MDK软仿)