// 设备开关机事件
void onOff_Event_update(OnOff_Event *event)
{
// 如果当前是空闲状态
if (event->bits.IDLE_State)
{
// 开始烹饪
// 更新状态
event->bits.IDLE_State = false;
event->bits.RUNNING_State = true;
event->bits.onOff_event = true; // 设备刚开始运行
}
// 如果当前是运行状态
else if (event->bits.RUNNING_State)
{
// 暂停烹饪
// 更新状态
event->bits.RUNNING_State = false;
event->bits.PAUSED_State = true;
event->bits.onOff_event = false; // 设备不再在运行状态
}
// 如果当前是暂停状态
else if (event->bits.PAUSED_State)
{
if (stSysParam.lidState == guogai_close)
{
// 更新状态
event->bits.PAUSED_State = false;
event->bits.RUNNING_State = true;
event->bits.onOff_event = true; // 设备继续运行
}
else
{
// 转入待机状态
// 更新状态
event->bits.PAUSED_State = false;
event->bits.IDLE_State = true;
event->bits.onOff_event = false; // 设备暂停且可能转入待机
}
}
// 如果既不是运行状态也不是暂停状态,则认为是初始状态或待机状态
else
{
// 回复初始状态
event->dat = 0;
// 更新状态
event->bits.IDLE_State = true;
event->bits.onOff_event = false; // 设备处于待机状态
}
}
// setOnOffState(&g_stParam.onOff_Event,0);//IDLE_State
// setOnOffState(&g_stParam.onOff_Event,1);//RUNNING_State
// setOnOffState(&g_stParam.onOff_Event,2);//PAUSED_State
// setOnOffState(&g_stParam.onOff_Event,3);//Cancel_State
void setOnOffState(OnOff_Event *event, char targetState)
{
// 清除所有状态位,准备设置新的状态
event->dat = 0;
// 根据目标状态设置相应的状态位和参数
switch (targetState)
{
case 0:
event->bits.IDLE_State = true;
event->bits.onOff_event = false; // 表示状态是待机或关闭
break;
case 1:
event->bits.RUNNING_State = true;
event->bits.onOff_event = true; // 表示正在运行
break;
case 2:
event->bits.PAUSED_State = true;
event->bits.onOff_event = false; // 表示设备处于暂停状态
break;
case 3:
event->bits.Cancel_State = true;
event->bits.IDLE_State = true;
event->bits.onOff_event = false; // 表示状态是待机或关闭
break;
default:
// 处理未知状态或错误
break;
}
}
中间:设备开关机事件,循环切换功能
于 2023-11-23 17:17:07 首次发布