状态机框架 0.1alpha
by 天神
 
Loading...
Searching...
No Matches
templateFSM.c File Reference

重新实现几个必须实现的函数,并赋值到父类指针里 More...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "FSM_protected.h"
#include "templateFSM.h"
#include "templateFSM_private.h"

Functions

static void loadExternalData (TemplateFSMData *data)
 
static void resetSignals (FSMSignals *signals, TemplateFSMData *data)
 根据条件重置信号
 
static void initData (TemplateFSM *pFSM)
 给所有内部、外部数据分配堆空间
 
static void initDataLoader (TemplateFSM *pFSM)
 
static void setupHandler (FSMHandler *fcns)
 设置状态选择函数、状态内函数和状态转移函数
 
static void step (TemplateFSM *pFSM)
 重新实现基类的step函数,添加一些打印信息
 
TemplateFSM * createTemplateFSM ()
 Create a Template FSM object.
 

Detailed Description

重新实现几个必须实现的函数,并赋值到父类指针里

Author
天神 (dalao.nosp@m.shi@.nosp@m.stu.x.nosp@m.jtu..nosp@m.edu.c.nosp@m.n)
Version
2.1
Date
2024-05-07

Function Documentation

◆ loadExternalData()

static void loadExternalData ( TemplateFSMData * data)
static
Deprecated
暂时没用,后续考虑data是否需要加锁再说
Parameters
data主要是外部数据

◆ resetSignals()

static void resetSignals ( FSMSignals * signals,
TemplateFSMData * data )
static

根据条件重置信号

清除被响应信号和所有小于被响应信号优先级的信号,具体可以参考notion

Parameters
signals状态机接收到的信号
data状态机数据

◆ initData()

static void initData ( TemplateFSM * pFSM)
static

给所有内部、外部数据分配堆空间

Parameters
pFSM

◆ initDataLoader()

static void initDataLoader ( TemplateFSM * pFSM)
static
Deprecated
弃用
Parameters
pFSM

◆ setupHandler()

static void setupHandler ( FSMHandler * fcns)
static

设置状态选择函数、状态内函数和状态转移函数

Parameters
fcns状态机函数表

◆ step()

static void step ( TemplateFSM * pFSM)
static

重新实现基类的step函数,添加一些打印信息

Parameters
pFSM子类状态机指针

◆ createTemplateFSM()

TemplateFSM * createTemplateFSM ( )

Create a Template FSM object.

子类状态机细节对外隐藏,外部只能访问基类的公有函数来操作子类变量

Returns
TemplateFSM*