搜索
bottom↓
回复: 80

QPn量子架构:十字交通灯例程(MDK软仿)

  [复制链接]

出0入0汤圆

发表于 2014-1-15 15:01:13 | 显示全部楼层 |阅读模式
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例程(学习资料)
    附件下载:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-1-15 15:02:54 | 显示全部楼层
排版还好,该说的都说了,需要的自己看吧!

出0入0汤圆

发表于 2014-1-15 15:19:00 | 显示全部楼层
顶一个……

出0入0汤圆

发表于 2014-1-15 15:37:46 | 显示全部楼层
感谢LZ~~~

出0入0汤圆

发表于 2014-1-15 16:10:54 | 显示全部楼层
学习了,谢谢

出100入85汤圆

发表于 2014-1-15 16:14:08 | 显示全部楼层
顶,不错,挺用心的

出0入0汤圆

发表于 2014-1-15 16:23:45 | 显示全部楼层
非常感谢分享,以前简单了解过,这次好好看看楼主的资料。

出0入0汤圆

发表于 2014-1-15 16:36:26 | 显示全部楼层
学习了,谢谢分享

出0入0汤圆

发表于 2014-1-15 17:49:23 | 显示全部楼层
谢谢分享

出0入0汤圆

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

出0入0汤圆

发表于 2014-1-16 09:02:00 | 显示全部楼层
谢谢楼主分享。努力!

出0入0汤圆

发表于 2014-1-16 09:19:08 | 显示全部楼层
顶一下,下载了了解一下

出365入0汤圆

发表于 2014-1-16 10:10:51 | 显示全部楼层
顶你,用力的顶你。

出0入0汤圆

 楼主| 发表于 2014-1-16 10:16:20 | 显示全部楼层
能对大家有用,才有点价值,自己帮自己顶一下

出365入0汤圆

发表于 2014-1-16 10:34:27 | 显示全部楼层
我徘徊在ucos和QP之间。

出0入0汤圆

发表于 2014-1-16 11:05:31 | 显示全部楼层
好东西,顶你

出0入0汤圆

发表于 2014-1-16 11:15:14 | 显示全部楼层
感谢分享。。。

出0入0汤圆

 楼主| 发表于 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自动生成)

出0入0汤圆

发表于 2014-1-16 12:34:10 | 显示全部楼层
guolun 发表于 2014-1-16 10:34
我徘徊在ucos和QP之间。

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

出0入0汤圆

发表于 2014-1-16 12:43:22 来自手机 | 显示全部楼层
好像很深奥呀

出0入0汤圆

发表于 2014-1-16 20:28:15 | 显示全部楼层
学习学习

出0入0汤圆

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

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

出0入0汤圆

发表于 2014-1-16 23:27:27 | 显示全部楼层
之前做项目时评估过这个东东,但后面做着做着都不用这些工具了。

出50入85汤圆

发表于 2014-1-22 17:03:22 | 显示全部楼层
学习,mark
之前看过,没有看懂。

出0入0汤圆

发表于 2014-1-23 09:34:39 | 显示全部楼层
好东西,一直在研究这个玩意,但是没有能很好的驾驭它,还需要努力,谢楼主。

出0入0汤圆

发表于 2014-2-23 23:30:35 | 显示全部楼层
这个真的是好东西

出0入0汤圆

发表于 2014-2-24 08:23:42 | 显示全部楼层
首次了解,谢谢分享。。。。。

出0入0汤圆

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

出0入0汤圆

发表于 2014-4-7 10:35:31 | 显示全部楼层
学习、尝试一下

出0入0汤圆

发表于 2014-4-7 10:54:22 | 显示全部楼层
支持楼主,楼主要继续研究啊,坚持就是力量

出0入0汤圆

发表于 2014-4-7 18:35:48 | 显示全部楼层
呵呵 不错, 谢了

出0入0汤圆

发表于 2014-5-14 21:37:33 | 显示全部楼层
谢谢楼主的资料,最近想研究研究QPn

出0入0汤圆

发表于 2014-5-15 11:08:28 | 显示全部楼层
已下载,,,赞一个,

出0入0汤圆

 楼主| 发表于 2014-5-15 21:05:59 | 显示全部楼层
今天回来看帖子  居然加“火”了 回来顶一下!

出0入0汤圆

发表于 2014-5-30 14:30:47 | 显示全部楼层
学习中。。

出0入0汤圆

发表于 2014-6-4 10:42:01 | 显示全部楼层
标记,QPn量子架构:十字交通灯例程

出0入0汤圆

发表于 2014-6-17 21:55:22 | 显示全部楼层
研究研究。。。。。

出0入0汤圆

发表于 2014-6-29 23:49:28 | 显示全部楼层
好东西,支持;下来研究研究

出0入0汤圆

发表于 2014-7-3 22:10:52 | 显示全部楼层
提个问题:

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

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

出0入0汤圆

发表于 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 MAN  man1,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开放出来;这样不是很不方便?

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

出0入0汤圆

发表于 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      ??

出0入0汤圆

发表于 2014-7-7 10:28:56 | 显示全部楼层
记号,收藏

出0入0汤圆

发表于 2014-7-7 12:31:34 | 显示全部楼层
谢谢分享

出0入0汤圆

发表于 2014-7-7 13:18:37 | 显示全部楼层
新东西,看一看。

出0入0汤圆

发表于 2014-8-30 09:16:45 | 显示全部楼层
正好之前看过rtx的十字交通灯,我可以专注于QP的实现来研究下这个框架

出0入0汤圆

发表于 2014-9-20 08:10:28 | 显示全部楼层
正在学,下来看看

出0入0汤圆

发表于 2014-9-20 08:18:10 | 显示全部楼层
学习了,mark                  

出0入0汤圆

发表于 2014-9-20 09:52:00 | 显示全部楼层
xuexi .........

出0入0汤圆

发表于 2014-9-20 10:22:21 | 显示全部楼层
学习下,谢谢

出0入8汤圆

发表于 2014-9-20 10:49:50 | 显示全部楼层
看看。。。

出0入0汤圆

发表于 2014-9-20 12:18:20 | 显示全部楼层
看起来有点类似于操作系统思想

出0入0汤圆

发表于 2014-10-17 20:12:50 来自手机 | 显示全部楼层
看看再说,架构方面真的蛮深奥的

出0入0汤圆

发表于 2014-11-3 15:49:35 | 显示全部楼层
这个一定要顶

出0入0汤圆

发表于 2014-11-11 17:34:11 | 显示全部楼层
共勉,刚开始接触

出0入0汤圆

发表于 2015-1-11 20:51:00 | 显示全部楼层
记号,留着学习

出0入0汤圆

发表于 2015-2-7 20:07:47 | 显示全部楼层
顶楼主一下,谢谢分享

出0入0汤圆

发表于 2015-2-7 20:09:51 | 显示全部楼层
谢谢分享,学习了!!!

出0入0汤圆

发表于 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

或自己搜这个关键词。

出0入0汤圆

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

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

出0入0汤圆

发表于 2015-4-10 09:22:10 | 显示全部楼层
一直看书,又是英文的,中文版确实翻译的不好,看得我云里雾里。
终于发现了这个,看下先,真是太感谢了。

出0入0汤圆

发表于 2015-4-10 11:02:07 | 显示全部楼层
QM好像只有64位版本的吗?还在用32位电脑的伤不起呀。

出0入0汤圆

发表于 2015-4-10 11:06:35 来自手机 | 显示全部楼层
第一次,学习了

出0入0汤圆

发表于 2015-8-17 08:59:50 | 显示全部楼层
顶楼主一下,谢谢分享!!!

出0入0汤圆

发表于 2015-10-14 16:52:29 | 显示全部楼层
mark,顶楼主

出0入0汤圆

发表于 2016-3-3 20:06:37 | 显示全部楼层
正在学习QP,是我需要的资料,感谢!!

出0入0汤圆

发表于 2016-6-27 22:41:20 | 显示全部楼层
原来论坛里也有人研究QP啊

出0入0汤圆

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

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

出0入0汤圆

发表于 2016-6-28 08:29:50 | 显示全部楼层
感谢分享,收藏备用

出0入4汤圆

发表于 2016-7-1 10:59:39 | 显示全部楼层
感谢楼主分享,正在研究QP量子框架

出0入0汤圆

发表于 2016-7-4 06:35:10 来自手机 | 显示全部楼层
多谢分享 正在研究

出0入0汤圆

发表于 2016-10-22 12:00:07 | 显示全部楼层
楼主觉得QP和RTOS各自的优劣势在哪儿?我觉得RTOS抢占式任务切换很灵活,就有一点比较占用内存。对QP不了解,还请楼主介绍一下

出20入0汤圆

发表于 2017-1-17 23:18:09 | 显示全部楼层
学习过一段时间,不过他的那个资料太难获取了,原书两章看了几遍不明就里,放弃了。
笔者悟性不算太差,不过确实很难看懂,比英文版的FreeRTOS说明书难看多了。

出20入0汤圆

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

出0入0汤圆

发表于 2018-4-11 18:40:18 | 显示全部楼层
再来,温故而知新。发觉自己对状态的定义理解不到位,经常把状态搞成动作。

出0入0汤圆

发表于 2018-4-11 23:27:07 | 显示全部楼层
太强大了,学习学习

出0入0汤圆

发表于 2018-8-30 22:46:19 | 显示全部楼层
貌似很高级的玩意儿!~~

出0入0汤圆

发表于 2018-9-26 23:07:28 | 显示全部楼层
在乱撞之---QP和VS之间,我居然选择了VS.

出0入0汤圆

发表于 2018-11-27 21:05:14 | 显示全部楼层
顶,不错,挺用心的

出0入0汤圆

发表于 2018-11-27 21:05:35 | 显示全部楼层
顶,不错,挺用心的

出0入0汤圆

发表于 2021-6-14 15:39:11 | 显示全部楼层
学习了,Qp
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2022-5-29 09:44

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表