{%
    local function echo_usage(pump_support, fan_t, pump_t)
        if pump_support == true then
            echo('Usage: ipmcset -d coolinglevel -v <devicetype> <level> [id]\n')
            echo('devicetype:\n')
            echo('      fan\n')
            echo('      pump\n')
            echo('level:\n')
            echo('      1.Set speed level for all cooling device, without parameter [id]\n')
            echo('      2.Set speed level for specific cooling device, with parameter [id]\n')
            echo(string.format('       <fanlevel>  range <%d-%d>, [fanid]  range <%d-%d>\n', fan_t.min_level, fan_t.max_level, 1, fan_t.max_id))
            echo(string.format('       <pumplevel> range <%d-%d>, [pumpid] range <%d-%d>', pump_t.min_level, pump_t.max_level, 1, pump_t.max_id))
        else
            echo('Usage: ipmcset -d coolinglevel -v <devicetype> <level> [id]\n')
            echo('devicetype:\n')
            echo('      fan\n')
            echo('level:\n')
            echo('      1.Set speed level for all cooling device, without parameter [id]\n')
            echo('      2.Set speed level for specific cooling device, with parameter [id]\n')
            echo(string.format('       <fanlevel>  range <%d-%d>, [fanid]  range <%d-%d>', fan_t.min_level, fan_t.max_level, 1, fan_t.max_id))
        end
    end
    local device_id = type(id) == 'number' and id or 0xff -- 不输入id默认为设置所有
    if CheckSetCoolingLevelReq[1] == 'RequiredPropertyNotInput' then
        echo_usage(CheckSetCoolingLevelReq[2], CheckSetCoolingLevelReq[3], CheckSetCoolingLevelReq[4])
    -- 不支持设置泵
    elseif CheckSetCoolingLevelReq[1] == 'PumpNotSupported' then
        echo_usage(CheckSetCoolingLevelReq[2], CheckSetCoolingLevelReq[3], CheckSetCoolingLevelReq[4])
    -- 当前模式为自动，不支持设置
    elseif CheckSetCoolingLevelReq[1] == 'CtrlModeIsAuto' then
        echo(string.format('Set %s(%d) level(%d) failed.\nCurrent Mode:   Auto\n', devicetype, device_id, level))
        echo_usage(CheckSetCoolingLevelReq[2], CheckSetCoolingLevelReq[3], CheckSetCoolingLevelReq[4])
    -- 散热设备转速超出范围
    elseif CheckSetCoolingLevelReq[1] == 'LevelOutOfRange' then
        echo(string.format('The %s level %s is out of range.\n', devicetype, level))
        echo_usage(CheckSetCoolingLevelReq[2], CheckSetCoolingLevelReq[3], CheckSetCoolingLevelReq[4])
    -- 散热设备的id超出范围
    elseif CheckSetCoolingLevelReq[1] == 'IdOutOfRange' then
        echo(string.format('The %s id %s is out of range.\n', devicetype, device_id))
        echo_usage(CheckSetCoolingLevelReq[2], CheckSetCoolingLevelReq[3], CheckSetCoolingLevelReq[4])
    -- 设置指定散热设备的所有器件转速成功
    elseif CheckSetCoolingLevelReq[1] == true and device_id == 0xff then
        echo(string.format('Set %s level successfully.\n', devicetype))
        echo('Current Mode           :   manual, timeout ' .. CheckSetCoolingLevelReq[4] .. ' seconds.\n')
        echo('Global Manual ' ..  devicetype .. ' Level:   ' .. level .. '%')
    else -- 设置指定散热设备的指定器件转速成功
        echo(string.format('Set %s(%d) level to (%d) successfully.\n', devicetype, device_id, level))
        echo('Current Mode           :   manual, timeout ' .. CheckSetCoolingLevelReq[4] .. ' seconds.')
    end
%}