主页C++ Builder 资料C++ Builder 串口控件Victor 串口控件使用说明TVictorFSM
C++ Builder 串口控件
Victor 串口控件使用说明
 • TYbCommDevice
 • TVictorComm
 • TCommQueue
 • EVictorCommError
 • TComm32
 • EComm32Error
 • TVictorSerialPortInfo
 • TVictorSerialPortList
 • TCommSerialPortInfo
 • TVictorFSM
 • TVictorFsmStateT
Victor 串口控件示例程序
C++ Builder 编程技巧
C++ Builder 操作指南
C++ Builder 参考手册
网友留言/技术支持
TVictorFSM - Victor 串口控件使用说明

说明:

TVictorFSM 是 FSM (Finite State Machine) 控件,可以结构化跳转多而复杂的程序。

头文件:

Vcl.VictorFSM.h
Fmx.VictorFSM.h

示例程序:

串口文件收发的例子,已经包含在控件包里面

相关控件:

TVictorFsmStateT<>, TYbCommDevice, TVictorComm

继承关系:

TObject
 └TPersistent
   └TComponent
     └TVictorCustomFSM
       └TVictorFSM

属性:

属性 类型 描述
State int 状态 (状态的编号),整数值,可读写的属性。
给这个属性赋值,无论是在 FSM 内部还是在其他位置,比如其他控件的事件或消息处理里面给这个属性赋值,都会在当前函数结束时,立即执行这个状态的 OnProcessState 事件。
由于 TVictorFSM 设计为 FSM 的每个状态处理都是序列化的,不重入的,所以是在当前函数结束时立即执行这个状态的 OnProcessState 事件。
Elapsed DWORD 从给 State 属性赋值到现在经历的时间,即 FSM 处于这个状态持续的时间 (毫秒)。
这个是可读写属性,所以经历的时间是允许被修改的。
Waiting DWORD FSM 处于等待状态,通过 Wait 方法或 WaitState 方法都能进入等待状态。
这是只读属性,不能直接修改这个属性值。
0: 不在等待状态,>0 在等待状态,这个值是设定的等待时间 (毫秒),不随时间的流逝而变化。
通过 WaitState 方法处于的等待状态可以通过 Elapsed 获取等待经过的时间。
Interval DWORD 如果 FSM 不在等待状态,会每隔 Interval 时间 (毫秒) 执行一次 OnProcessState 事件,可以当作定时器使用。这是可读写属性,作为定时器使用的时间间隔精度为 1 毫秒,最小的时间间隔也是 1 毫秒。
给 State 属性赋值,会立即执行 OnProcessState 事件,并且定时器重新计数。
每次给 State 属性赋值之间的间隔都很短,都小于 Interval,就不会因为定时器的设定而进入 OnProcessState 事件,只有在长时间没有给 State 属性赋值,超出了 Interval 时间,才会因为定时器的设定而执行 OnProcessState 事件,此时可以通过 Elapsed 属性判断处于 State 状态持续的时间。

方法:

方法 描述
TVictorCustomFSM 构造函数
    __fastcall TVictorCustomFSM(TComponent *Owner);
~TVictorCustomFSM 析构函数
    __fastcall ~TVictorCustomFSM();
Trigger 触发立即执行 OnProcessState 事件。
定义:
    virtual void __fastcall Trigger(void);
参数:
    无
由于 TVictorFSM 设计为 FSM 各个状态序列化执行,不重入,所以会在当前状态的函数结束之后,立即触发和执行 OnProcessState 事件。
Wait

FSM 挂起,等待 dwms 毫秒之后再继续执行。
定义:
    virtual void __fastcall Wait(DWORD dwms);

WaitState FSM 切换到 iState 并不立即触发和执行 OnProcessState 事件,而是等待 dwms 毫秒之后再触发和执行 OnProcessState 事件。等待期间可以用 Elapsed 属性得到处于等待状态持续的时间 (毫秒)。
定义:
    virtual void __fastcall WaitState(int iState, DWORD dwms);
ProcessState 控件内部调用的方法,不要直接调用,会触发和执行 OnProcessState 事件。
定义:
    virtual void __fastcall ProcessState(void);

事件:

事件 描述
OnProcessState 处理 FSM 状态的事件。
定义:
    __property TNotifyEvent OnProcessState;
参数:
    Sender: 产生事件的类或控件
请参考这个控件的各个属性和方法,它们触发这个事件的条件。
◤上一页:TCommSerialPortInfo下一页:TVictorFsmStateT

C++ 爱好者 -- Victor Chen 的个人网站 www.cppfans.com 辽ICP备11016859号