#ifndef DEVICE_MODEL_H
#define DEVICE_MODEL_H

#include <stdbool.h>

/**
 * 由完整 device_id 解析出的设备子型号（用于选择控制/急停等策略）。
 * 规则：取 device_id 第 3～第 6 个字符（从第 1 个字符起算，共 4 字符），
 *       即 C 字符串下标 [2..5]，与 "1201" / "1101" 比较。
 */
typedef enum {
    DEVICE_MODEL_1201 = 0,
    DEVICE_MODEL_1101,
    DEVICE_MODEL_1102,
} device_model_t;

#define DEVICE_MODEL_SLICE_0BASE_START 2
#define DEVICE_MODEL_SLICE_CHAR_LEN  4

device_model_t device_model_from_full_id(const char *device_id);

static inline bool device_model_is_1101(device_model_t m)
{
    return m == DEVICE_MODEL_1101;
}

static inline bool device_model_is_1102(device_model_t m)
{
    return m == DEVICE_MODEL_1102;
}

#endif
