70 lines
1.8 KiB
C
70 lines
1.8 KiB
C
/**
|
||
* @file templateFSM.h
|
||
* @author 天神 (dalaoshi@stu.xjtu.edu.cn)
|
||
* @brief 对外暴露接口,外部可以设置状态机的信号
|
||
* @version 2.1
|
||
* @date 2024-05-07
|
||
*
|
||
* @copyright 天神创意无限公司 2024
|
||
*
|
||
*/
|
||
|
||
#ifndef __TEMPLATE_FSM_H_
|
||
#define __TEMPLATE_FSM_H_
|
||
|
||
/* -------------------------------------------------------------------------- */
|
||
/* 提前做类型声明 */
|
||
/* -------------------------------------------------------------------------- */
|
||
|
||
|
||
/* -------------------------------------------------------------------------- */
|
||
/* 自定义数据和信号 */
|
||
/* -------------------------------------------------------------------------- */
|
||
/**
|
||
* @brief 自定义外部信号,目前最多15个
|
||
* @details 因为是Unint16存储的信号位
|
||
*
|
||
*/
|
||
enum TemplateFSMSignals{
|
||
Signal_A = 1, /**< 必须从1开始,0预留给Idle信号了*/
|
||
Signal_B,
|
||
};
|
||
|
||
/**
|
||
* @brief 自定义外部数据
|
||
*
|
||
*/
|
||
typedef struct TemplateFSMExternalData
|
||
{
|
||
int arrindex;
|
||
int x;
|
||
}TemplateFSMExternalData;
|
||
|
||
|
||
/**
|
||
* @brief 自定义内部数据
|
||
*
|
||
*/
|
||
typedef struct TemplateFSMInnerData
|
||
{
|
||
int y1;
|
||
int inner1;
|
||
}TemplateFSMInnerData;
|
||
|
||
/* -------------------------------------------------------------------------- */
|
||
/* 下面的改个名字就行了 */
|
||
/* -------------------------------------------------------------------------- */
|
||
#define TemplateFSM_Input(pFSM) ((TemplateFSMExternalData *)_preloadIn((FSM *)pFSM)) /**< @deprecated 暂时弃用 */
|
||
|
||
typedef struct TemplateFSMData
|
||
{
|
||
TemplateFSMExternalData external;
|
||
TemplateFSMInnerData internal;
|
||
}TemplateFSMData;
|
||
|
||
typedef struct TemplateFSM TemplateFSM;
|
||
TemplateFSM *createTemplateFSM();
|
||
|
||
|
||
#endif
|