发新帖我要提问
12
返回列表
打印

状态机设计的事件处理疑问

[复制链接]
楼主: xuhongchen
手机看帖
扫描二维码
随时随地手机跟帖
21

事件没有优先级,只有顺序,是排队的。

使用特权

评论回复
22
dld2| | 2008-1-18 09:48 | 只看该作者

所长说的是如何产生事件

楼主的意思应该是任务是一个状态机,该状态机如何处理事件。
所长是不是说在事件产生上作**?但是这个状态是属于任务的,驱动不知道。

楼主的状态迁移图,这样画,表示A状态不处理d事件。
我理解按你的意思,应该画一条从A状态到A状态的箭头线。这个线表示A状态下d事件会被处理,但不改变状态。
至于是怎么处理的,14楼也是一种方法。

使用特权

评论回复
23
农民讲习所| | 2008-1-18 10:01 | 只看该作者

估计LZ说的是状态变化和事件处理之间的延时关系

比如:KEY按下,松开,程序还没有及时处理这两个事件,害怕事件和状态不同步。
这没必要担心的,因为两个事件相对于状态的相对时间和顺序是正确的,映象的,是异步的,不是同步处理
异步处理,是前后台的精髓,也是WINDOW的精髓.

再举例子:
  大家都在说串口接收到数据后,用一个标志=1表示接收到数据,放到其它地方(比如主循环)去处理后清除该标志,这实际就是异步处理,接收数据的顺序是串口数据的顺序,只是处理的时刻改变了。这种标志处理,也属于消息处理的一个概念,只是消息处理更安全,更全面,它把标志和数据放在一起了,串口新接收的数据不会冲掉。

使用特权

评论回复
24
xuhongchen|  楼主 | 2008-1-18 10:55 | 只看该作者

我的理解

按照所长的看法,应该是事件的定义有问题,就是说d事件的产生必须经过a事件和b事件后才会有,换句话说只有在C状态和D状态才会产生d事件,如果是这样就可以用消息队列来保存时间,状态机中从队列中读取事件
用14楼的说法,就是d事件不能仅仅描述成加油,而是应该有车状态且需要加油,是否这样?

使用特权

评论回复
25
bird777| | 2008-1-18 12:39 | 只看该作者

^_^

抱歉,争取到500分!
1.要相当爸爸,必须先结婚.(标准方法)
2.事件在系统设计时,是可以预先想到的.
 比如A状态,可能会出现什么事件.(即使当个农民也要学会思考.)

3.24楼的涉及到实时性上的问题了,不要不要紧,看自己的需要了.
 比如先给姐姐洗澡,再给妹妹洗澡.
如果要求同步的话,妈妈通知爸爸,给姐姐洗澡,爸爸如果空的话,会立即照办,否则等忙完了后再给姐姐洗澡,姐姐洗好了,爸爸向妈妈报告,洗好了,妈妈接着发下一个命令,给妹妹洗澡.
如果是异步的话,妈妈给爸爸发的命令是这样的,给姐姐洗澡,给妹妹洗澡,爸爸在一个未知的时间里肯定会执行妈妈的命令.要是这个爸爸太辛苦了,可能本来该中午洗的澡放到了晚上才执行(可能妈妈不会骂人吧,谁叫自己找了这么一个老公呢!),不过爸爸肯定知道那个是姐姐那个是妹妹,也就是先后清楚的,否则
不说了.
---------------------------------------------------------------------
消息和事件是不是一个事情,让农民说说吧. 我认为尽量允许假事件,不要出现假消息.比如按键产生的压键消息,必须是多次会按键事件进行分析研究之后给出的.

25楼理解正确.我们不能不负责的乱扔消息啊.又不是天涯!





使用特权

评论回复
26
icecut| | 2008-1-18 18:26 | 只看该作者

我开始理解状态机是在VHDL

VHDL中,你设计的状态不包括所有情况就会报错,必须+其他情况,默认处理。
你理解状态机有问题。你的例子不是状态机不对,是你没设计好!它不是神经网络,不会自学习

使用特权

评论回复
27
Swd21ic| | 2008-1-22 08:47 | 只看该作者

~~??

很奇怪..
 
在什么状态该响应哪些动作不响应哪些动作.都是要处理的模型已经具备的内容.

只需要根据模型把状态图画出,应该就很明白了.

在A状态下既然不需要响应事件b,那么直接丢弃就好了.. 因为考虑的就是在A状态下不可能出现B这个事件..不就行了么.

为什么要把一个在某个状态下发生的错误动作缓冲??

使用特权

评论回复
28
casillas00| | 2008-1-23 10:13 | 只看该作者

!

只需要根据模型把状态图画出,在A状态发生d事件,该怎么处理就怎么处理还不都是你自己设计的,屏蔽了也行,反正发生了d事件又不会发生状态转变,d事件若是只会发生了一次,那后面以d事件作为转移条件的状态就不转移

使用特权

评论回复
29
zhouyunqia| | 2008-2-6 16:09 | 只看该作者

还是把各个事件定义成不同的等级,按等级回应,安全才是

还是把各个事件定义成不同的等级,按等级回应,安全才是民声。
(我是农民我怕谁)

使用特权

评论回复
30
bird777| | 2008-2-10 14:14 | 只看该作者

^_^

在俺村里不会种田的不叫农民,统称二流子.他们找老婆很困难的哦,可能会一辈子打光棍哦,不怕怕??

所长TMMD的和俺村的村书记一个样,喜欢给俺们做思想政治工作,什么国际风云之类,俺们听的懂的克林顿和几个MM的故事,他从来不说.大概担心说漏了,把自己和几个MM的关系给泻光了.

如果"状态机设计的事件处理疑问"思考为"状态机设计的消息处理",俺想就没有疑问了. 俺学物理的,不会用软件术语表达,这么说,俺前些天去杭州中途,中途接到MM电话(消息)让俺陪她去义乌,不去不行,想去也不行,因为杭州还没有到事情还没有处理好,那么俺就将MM的命令(消息)放入记事本(本队列或第二队列).
事件驱动,这个俺就不献宝了.不过事件有等级的想法,好像太落后了吧.



使用特权

评论回复
31
HEFENGWEI| | 2008-2-12 13:31 | 只看该作者

学习

   学习中!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则