中间:设备开关机事件,循环切换功能

文章描述了一个名为OnOff_Event的设备状态管理函数,处理设备从空闲、运行、暂停到待机的切换逻辑。函数包括设置和更新设备状态的方法,以及对不同状态的判断和响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


// 设备开关机事件
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;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值