什么标题
大家好,
我想实现一个由 fp 循环调用管理的状态机。在函数中(在数据管理之后),指针应该指向相同类型的不同函数,这取决于传感器数据。这是函数的返回类型,然后通过现在更新的 fp 再次调用。这使我能够在每次状态更改时捕获转换。这些功能主要处理 LCD 显示器。
我尝试了以下方法:
static void* (*pNowF)(LiquidCrystal_I2C);
static void* (*pNextF)(LiquidCrystal_I2C);
pNowF = defaultState;
while(true){
pNextF = pNowF(LCD);
pNowF = pNextF;
}
与
void* defaultState(LiquidCrystal_I2C MainLCD){
//...data management
//while in defaultState, only 3 transitions can happen:
if(myFlags->press1){ //determined by sensor 1
pNextF = state1;
return pNextF;
}
if(myFlags->press2){ //determined by sensor 2
pNextF = state2;
return pNextF;
}
while(myFlags->idle){
//stay in this state
}
}
我知道这些状态函数的返回类型与 fp 所期望的不符,但是我如何将函数的返回类型声明为其自身类型的 fp?