LabVIEW论坛
直播中

5年用户 6经验值
擅长:可编程逻辑 测量仪表 控制/MCU
私信 关注
[问答]

LABIVEW操作者框架一些问题

各位大佬:
小弟正在学习LABIVEW操作者框架,看例程资料琢磨了几天,有一些地方看不懂,请各位大佬帮忙梳理一下。

例程是软件自带的一个操作者框架,
项目_名称类-“应用程序”操作者。                                


                                    
  • 本地化-将所有用户面对的字符串集中到一个VI,有助于字符串的翻译。
  • 操作者核心-操作者的核心VI,执行下列任务:


                                                      
    • 启动Alpha和Beta操作者。
    • 允许这些操作者访问队列,发送消息至应用程序操作者。
    • 显示UI。
    • 等待前面板事件。
    • 通过发送消息至Alpha和Beta操作者,响应这些事件。
                                                                                                                   
  • 读取配置文件-从配置文件中读取整数。
  • 停止核心-发送“停止”消息至Alpha和Beta操作者。
  • 记录事件-滚动项目_名称类中“操作者核心”前面板上的事件记录文本框。
  • 加载应用程序-启动项目_名称操作者,从而启动应用程序本身,并将正在加载的状态发布至“初始屏幕”VI。


Alpha操作者库-包含Alpha操作者及其能够接收的消息。               


                   
  • Alpha的消息-包含Alpha操作者能够接收的消息。


                                      
    • Alpha任务消息类-定义一个命令Alpha操作者执行其Task.vi方法的消息。


                                                        
      • 发送Alpha任务-发送“任务”消息至Alpha操作者,同时附带发送一些数据。该VI从项目_名称类的“操作者核心”方法中调用。
      • 执行-使用“发送Alpha任务”VI携带的数据,命令Alpha操作者运行其“任务”方法。
      • 写入数据-将整数捆绑至Alpha操作者从其“操作者核心”方法发送的“任务”消息。
                                                                              
                                           
  • Alpha类-Alpha操作者。


                                      
    • 本地化-将所有用户面对的字符串集中到一个VI,有助于字符串的翻译。
    • 操作者核心-命令Alpha操作者每n毫秒执行其Task.vi方法,数据为-1。接收“任务”消息命令Alpha执行其“任务”方法,但数据不是-1。
    • 停止核心-阻止传递定时消息(在“操作者核心”方法中定义)。
    • 任务-发送一个“记录事件”消息至应用程序操作者,附带一个整数。

    • 上述流程我是这样理解的:应用程序操作者启动Alpha操作者,则Alpha操作者是应用程序操作者的嵌套操作者,在应用程序操作者的操作核心中,通过嵌套操作者的待入队列,使用发送Alpha命令.VI这个方法,应用程序操作者传递数据给Alpha任务消息类,而没有直接传递Alpha操作者。Alpha任务消息类中的成员DO.vi这个方法使用传递过来的数据,通过父类转为特定类这个函数(转为Alpha操作者类)再调用Alpha操作者类中的TASK.vi方法将数据传递到Alpha操作者中,(这里是否说明LABIVEW中,A类的成员VI不能直接在B类中调用,成员VI的输入接口必须是成员VI所在类的输入接口)

    • 接着例程解析里说到:Alpha操作者的操作者核心每N毫秒执行一次TASK.VI方法,我的问题是操作者核心的程序逻辑是如何执行TASK.vi方法的,因为我在里面看到2个成员函数似乎是独立没有联系的。

    • Alpha操作者的操作者核心接收接收“任务”消息命令Alpha执行其“任务”方法,但数据不是-1。这里的接收消息命令执行其任务方法是否是Alpha消息类中,DO.vi向Alpha操作者传递的数据,但DO.VI和操作者核心又没有直接联系,这是如何接收任务消息的。

    • 还请各位大佬帮忙解决下这些问题,小弟不胜感激



  • 1563342336(1).png
已退回5积分

回帖(2)

fasmer

2019-9-12 14:40:49
操作者的核心逻辑是如何执行TASK.vi方法的?
其实可以在项目浏览器中右键点击该VI,然后查找->调用方,能够很清晰的看到调用过程,应该是通过队列消息,不是没有联系的
举报

崔勇顺

2019-10-14 15:14:30
请具体描述下你想了解的问题点
举报

更多回帖

发帖
×
20
完善资料,
赚取积分