找回密码
 注册
Simdroid-非首页
查看: 663|回复: 8

[积分贴存推荐] 【原创】如何在Event Structure运行的时候停止事件?+1.7

[复制链接]
发表于 2003-8-20 11:33:50 | 显示全部楼层 |阅读模式 来自 重庆大学
Event structure中的一个时间正在运行的时候,如何在面板上停止这个事件,使得程序运行中断?
程序附后。
  
在每次通过由事件出发相应的字符显示之后,灯要闪烁一段时间时间才算完成,这样的话才可以进行下一步操作。
如何在灯闪的次数没有达到指定的值之前结束该事件,跳到下一个操作中去呢?
百思不得其解,望赐教!

本帖子中包含更多资源

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

×
发表于 2003-8-21 13:12:28 | 显示全部楼层 来自 西安交通大学

回复: 【原创】如何在Event Structure运行的时候停止事件?

Simdroid开发平台
1。event structure运行方式:判断各case中事务是否响应,哪个case响应了就执行哪个事务,当响应的case中事务执行完毕后进入timeout,若timeout没有连线,则程序一直等待(无限长时间直到下一个事务出现),若timeout有连线,则在指定时间过后执行timeout case中的代码。
您的程序中,例如当A按下后,执行循环,所以你要中断的就是中断这个case中的for循环,但是我觉得for循环好像没有什么办法中断它;在c里面,可以利用break跳出,但是,很少有人主张在一个系统里面加入break。同样在lv代码的一个系统中也不推荐中断for循环。
2。可以将循环移到到case框的外面,利用while循环判断,第一个判断条件就是是否达到指定次数,第二个判断条件是,是否在这个循环运行过程中按下其他键(比如说B),这两个中有一个满足则A闪烁停止进入B闪烁。
3。不要将while循环放在event case中,否则程序挂起!

评分

1

查看全部评分

labman 该用户已被删除
发表于 2003-8-21 16:36:22 | 显示全部楼层 来自 天津
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2003-8-22 01:50:03 | 显示全部楼层 来自 重庆大学

回复: 【原创】如何在Event Structure运行的时候停止事件?

我想我的意思没有说的很清楚
比如说在CaseA里面灯要闪烁10下
我现在想要达到的目的是在10下之内可以随时的控制程序的结束
而不是在CaseA里面的事件结束之后才Stop有效
发表于 2003-8-22 13:37:20 | 显示全部楼层 来自 LAN

回复: 【原创】如何在Event Structure运行的时候停止事件?

你在结束的条件里面加一个人为控制的逻辑开关可以吗?
比如灯要闪10下,那在闪10下的循环过程中加一个
逻辑开关,和灯是否闪10下同时检查,只要一个条件满足
就退出事件。
labman 该用户已被删除
发表于 2003-8-22 20:24:24 | 显示全部楼层 来自 天津
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2003-8-22 21:45:47 | 显示全部楼层 来自 重庆大学

回复: 【原创】如何在Event Structure运行的时候停止事件?

这样基本上完成了要求的功能
虽然有点复杂

很感谢你,labman
发表于 2007-3-23 14:16:21 | 显示全部楼层 来自 江苏南京
对我来说好高深,看得不太懂。学习中^^              
发表于 2007-3-26 17:56:29 | 显示全部楼层 来自 江苏苏州
使用State machine架构帮你解决,不过在操作时要注意,在切换按钮时,保证按住1.5s左右。
程序如下:

本帖子中包含更多资源

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

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-6-15 09:12 , Processed in 0.053403 second(s), 20 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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