using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Commonlib
{
    public enum BLWCommandType : byte
    {
        /// <summary>
        /// 搜索主机
        /// </summary>
        搜索主机 = 0x01,
        /// <summary>
        /// 心跳包
        /// </summary>
        心跳包 = 0x02,
        /// <summary>
        /// 插卡取电
        /// </summary>
        插卡取电 = 0x03,
        /// <summary>
        /// 服务请求
        /// </summary>
        服务请求 = 0x04,
        /// <summary>
        /// 报警状态
        /// </summary>
        报警状态 = 0x05,
        /// <summary>
        /// 空调状态
        /// </summary>
        空调状态 = 0x06,
        /// <summary>
        /// 节能模式下发
        /// </summary>
        节能模式下发 = 0x07,
        /// <summary>
        /// 同步时间
        /// </summary>
        同步时间 = 0x08,
        /// <summary>
        /// 设置命令，客房控制
        /// </summary>
        客房控制 = 0x10,
        /// <summary>
        /// 升级主机固件（局域网使用）
        /// </summary>
        升级主机固件 = 0x0A,
        /// <summary>
        /// 升级配置文件（局域网使用）
        /// </summary>
        升级配置文件 = 0xA2,
        /// <summary>
        /// 上传RCU软件当前版本号 RCU -> 服务器
        /// </summary>
        上传RCU软件当前版本号 = 0x0B,
        /// <summary>
        /// 房态变化 服务器 -> RCU
        /// </summary>
        房态变化 = 0x0C,
        /// <summary>
        /// 灯光模式 服务器 -> RCU
        /// </summary>
        灯光模式 = 0x0D,
        /// <summary>
        /// 客房状态同步 RCU->服务器
        /// </summary>
        客房状态同步 = 0x0E,
        /// <summary>
        /// 设备控制 服务器 -> RCU
        /// </summary>
        设备控制 = 0xF,

        /// <summary>
        /// 设置主机网络参数 服务器 -> RCU
        /// </summary>
        设置主机网络参数 = 0x11,
        /// <summary>
        /// 服务状态上报及控制
        /// </summary>
        服务状态上报及控制 = 0x12,
        /// <summary>
        /// 空调单属性控制
        /// </summary>
        空调单属性控制 = 0x13,
        /// <summary>
        /// 文字上报：RCU -> 服务器
        /// </summary>
        文字上报 = 0x14,
        /// <summary>
        /// 电视控制 服务器 -> RCU
        /// </summary>
        电视控制 = 0x21,
        /// <summary>
        /// 主机授权 服务器 -> RCU
        /// </summary>
        主机授权 = 0x22,
        /// <summary>
        /// 窗帘控制 服务器 -> RCU
        /// </summary>
        窗帘控制 = 0x23,
        /// <summary>
        /// 电源控制 服务器 -> RCU
        /// </summary>
        电源控制 = 0x24,
        /// <summary>
        /// 开锁 服务器 -> RCU
        /// </summary>
        开锁 = 0x25,
        /// <summary>
        /// 音乐控制 服务器 -> RCU
        /// </summary>
        音乐控制 = 0x26,
        /// <summary>
        /// 设置MAC地址 服务器 -> RCU
        /// </summary>
        设置MAC地址 = 0x27,
        /// <summary>
        /// 设置设备密钥 服务器 -> RCU
        /// </summary>
        设置设备密钥 = 0x28,
        /// <summary>
        /// 获取主机密钥 服务器 <-> RCU
        /// </summary>
        获取主机密钥 = 0x29,
        /// <summary>
        /// tftp升级
        /// </summary>
        tftp升级 = 0x68,
        /// <summary>
        /// ftp升级
        /// </summary>
        ftp升级 = 0x69,
        /// <summary>
        /// 读取寄存器信息
        /// </summary>
        读取寄存器信息 = 0x30,
        /// <summary>
        /// 设置寄存器信息
        /// </summary>
        设置寄存器信息 = 0x31,
        /// <summary>
        /// 读取主机信息
        /// </summary>
        读取主机信息 = 0xB1,
        升级 = 0xB6,
        /// <summary>
        /// 主机获取指定域名解释的IP
        /// </summary>
        获取指定域名IP = 0xD6,
        /// <summary>
        /// 日志服务器域名设置
        /// </summary>
        日志服务器域名设置 = 0xD9,
        /// <summary>
        /// 日志服务信息查询
        /// </summary>
        日志服务信息查询 = 0xDA,
        /// <summary>
        /// 白天起止时间同步
        /// </summary>
        白天起止时间同步 = 0xDB,
        询问房态 = 0x32,
        
        重启=0x33,
        定时上报=0x34,
        插拔卡动作=0x35,
        设备动作=0x36,
        设备透传下行=0x70,
        设备透传上行=0x71
    }

    public class TypeList
    {
        public static TypeList Instance = new TypeList();

        public List<string> list = new List<string>();
        private TypeList()
        {
            this.list = GetEnum();
            this.list.Add("服务器注册命令");
        }

        public List<string> GetEnum()
        {
            BLWCommandType[] values = (BLWCommandType[])Enum.GetValues(typeof(BLWCommandType));
            return values.Select(x => x.ToString()).ToList();
        }
    }
}
