# smfc の制御関数アルゴリズムをローカルで試す（ハードウェア不要）
# Python 3.10+ があれば動作

# 線形制御関数シミュレーター
python3 - <<'EOF'
def linear_fan_level(temp, min_temp=30.0, max_temp=60.0, min_level=35, max_level=100, steps=6):
    if temp <= min_temp:
        return min_level
    if temp >= max_temp:
        return max_level
    ratio = (temp - min_temp) / (max_temp - min_temp)
    step_size = (max_level - min_level) / steps
    stepped = round(ratio * steps) * step_size + min_level
    return min(max_level, max(min_level, int(stepped)))

print("Temperature -> Fan Level (linear, steps=6, 30-60C, 35-100%)")
for t in range(25, 70, 5):
    level = linear_fan_level(t)
    bar = '#' * (level // 5)
    print(f"  {t:3d}°C -> {level:3d}%  |{bar}")
EOF
