using System;
|
using System.Collections.Generic;
|
|
namespace HDL_ON.Entity
|
{
|
public class AC : Function
|
{
|
/*
|
* 空调:trait: [switch, mode, fan, set_temp, swing, lock]
|
* 属性 描述
|
* on_off on/off
|
* mode mode: auto, cool, heat, dry, fan
|
* fan high, medium, low, auto
|
* set_temp up,down,value
|
* swing up/down/left/right
|
* lock boolean (Lock锁定控制)
|
*/
|
public AC()
|
{
|
}
|
/// <summary>
|
/// 当前温度模式
|
/// 0:摄氏度
|
/// 1:华氏度
|
/// </summary>
|
[Newtonsoft.Json.JsonIgnore]
|
public int curTempType = 0;
|
/// <summary>
|
/// 当前温度模式字符
|
/// </summary>
|
public string tempUnitString
|
{
|
get
|
{
|
if (curTempType == 0)
|
{
|
return "°C";
|
}
|
else
|
{
|
return "°F";
|
}
|
}
|
}
|
|
/// <summary>
|
/// 当前模式索引
|
/// bus控制命令使用
|
/// </summary>
|
[Newtonsoft.Json.JsonIgnore]
|
public byte curModeIndex
|
{
|
get
|
{
|
try
|
{
|
byte index = 0;
|
switch (trait_mode.curValue.ToString())
|
{
|
case "auto":
|
index = 3;
|
break;
|
case "cool":
|
index = 0;
|
break;
|
case "heat":
|
index = 1;
|
break;
|
case "dry":
|
index = 4;
|
break;
|
case "fan":
|
index = 2;
|
break;
|
default:
|
index = 0;
|
break;
|
}
|
return index;
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"get curModeIndex error : {ex.Message}");
|
return 0;
|
}
|
}
|
set
|
{
|
switch (value)
|
{
|
case 0:
|
trait_mode.curValue = "cool";
|
break;
|
case 1:
|
trait_mode.curValue = "heat";
|
break;
|
case 2:
|
trait_mode.curValue = "fan";
|
break;
|
case 3:
|
trait_mode.curValue = "auto";
|
break;
|
case 4:
|
trait_mode.curValue = "dry";
|
break;
|
default:
|
trait_mode.curValue = "cool";
|
break;
|
|
}
|
}
|
}
|
/// <summary>
|
/// 当前风速索引
|
/// bus控制命令使用
|
/// </summary>
|
[Newtonsoft.Json.JsonIgnore]
|
public byte curFanIndex
|
{
|
get
|
{
|
try
|
{
|
byte index = 0;
|
switch (trait_fan.curValue.ToString())
|
{
|
case "high":
|
index = 1;
|
break;
|
case "medium":
|
index = 2;
|
break;
|
case "low":
|
index = 3;
|
break;
|
case "auto":
|
index = 0;
|
break;
|
default:
|
index = 0;
|
break;
|
}
|
return index;
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"get curFanIndex error : {ex.Message}");
|
return 0;
|
}
|
}
|
set
|
{
|
switch (value)
|
{
|
case 0:
|
trait_fan.curValue = "auto";
|
break;
|
case 1:
|
trait_fan.curValue = "high";
|
break;
|
case 2:
|
trait_fan.curValue = "medium";
|
break;
|
case 3:
|
trait_fan.curValue = "low";
|
break;
|
default:
|
trait_fan.curValue = "high";
|
break;
|
}
|
}
|
}
|
|
FunctionAttributes _trait_mode;
|
/// <summary>
|
/// 模式属性
|
/// </summary>
|
[Newtonsoft.Json.JsonIgnore]
|
public FunctionAttributes trait_mode
|
{
|
get
|
{
|
if (_trait_mode == null)
|
{
|
_trait_mode = attributes.Find((obj) => obj.key == "mode");
|
//找不到属性需要声明一个,防止报错闪退
|
if (_trait_mode == null)
|
{
|
_trait_mode = new FunctionAttributes()
|
{
|
key = "mode",
|
value = new List<string> { "auto", "cool", "heat", "dry", "fan" },
|
max = 4,
|
min = 0,
|
};
|
}
|
if (_trait_mode.curValue.ToString() == "{}")
|
_trait_mode.curValue = "cool";
|
}
|
return _trait_mode;
|
}
|
}
|
|
FunctionAttributes _trait_fan;
|
[Newtonsoft.Json.JsonIgnore]
|
public FunctionAttributes trait_fan
|
{
|
get
|
{
|
if (_trait_fan == null)
|
{
|
_trait_fan = attributes.Find((obj) => obj.key == "fan");
|
//找不到属性需要声明一个,防止报错闪退
|
if (_trait_fan == null)
|
{
|
_trait_fan = new FunctionAttributes()
|
{
|
key = "fan",
|
value = new List<string> { "high", "medium", "low", "auto" },
|
max = 3,
|
min = 0,
|
curValue = "high"
|
};
|
}
|
if (_trait_fan.curValue.ToString() == "{}")
|
_trait_fan.curValue = "high";
|
}
|
return _trait_fan;
|
}
|
}
|
|
FunctionAttributes _trait_temp;
|
/// <summary>
|
/// 当前空调温度
|
/// </summary>
|
[Newtonsoft.Json.JsonIgnore]
|
public FunctionAttributes trait_temp
|
{
|
get
|
{
|
if (_trait_temp == null)
|
{
|
_trait_temp = attributes.Find((obj) => obj.key == "set_temp");
|
//找不到属性需要声明一个,防止报错闪退
|
if (_trait_temp == null)
|
{
|
_trait_temp = new FunctionAttributes()
|
{
|
key = "set_temp",
|
value = new List<string> { },
|
max = 32,
|
min = 16,
|
};
|
}
|
if (_trait_temp.curValue.ToString() == "{}")
|
_trait_temp.curValue = 16;
|
}
|
//if (_trait_temp.curValue.ToString().Length > 3)
|
{
|
var vv = Convert.ToDouble(_trait_temp.curValue);
|
_trait_temp.curValue = Convert.ToInt32(vv);
|
}
|
return _trait_temp;
|
}
|
}
|
|
FunctionAttributes _trait_swting;
|
[Newtonsoft.Json.JsonIgnore]
|
public FunctionAttributes trait_swting
|
{
|
get
|
{
|
if (_trait_swting == null)
|
{
|
_trait_swting = attributes.Find((obj) => obj.key == "swting");
|
//找不到属性需要声明一个,防止报错闪退
|
if (_trait_swting == null)
|
{
|
_trait_swting = new FunctionAttributes()
|
{
|
key = "swting",
|
value = new List<string> { "up", "down", "left", "right" },
|
max = 3,
|
min = 0,
|
};
|
}
|
if (_trait_swting.curValue.ToString() == "{}")
|
_trait_swting.curValue = "up";
|
}
|
return _trait_swting;
|
}
|
}
|
/// <summary>
|
/// 空调扫风模式列表
|
/// </summary>
|
[Newtonsoft.Json.JsonIgnore]
|
public List<string> swting
|
{
|
get
|
{
|
try
|
{
|
return trait_swting.value;
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"ac get swting error : {ex.Message}");
|
return new List<string> { "up", "down", "left", "right" };
|
}
|
}
|
}
|
FunctionAttributes _trait_IndoorTemp;
|
/// <summary>
|
/// 室内温度
|
/// </summary>
|
[Newtonsoft.Json.JsonIgnore]
|
public FunctionAttributes trait_IndoorTemp
|
{
|
get
|
{
|
if (_trait_IndoorTemp == null)
|
{
|
_trait_IndoorTemp = attributes.Find((obj) => obj.key == FunctionAttributeKey.IndoorTemp);
|
//找不到属性需要声明一个,防止报错闪退
|
if (_trait_IndoorTemp == null)
|
{
|
_trait_IndoorTemp = new FunctionAttributes()
|
{
|
key = FunctionAttributeKey.IndoorTemp,
|
value = new List<string> { },
|
max = 30,
|
min = 0,
|
};
|
}
|
if (_trait_IndoorTemp.curValue.ToString() == "{}")
|
_trait_IndoorTemp.curValue = 0;
|
}
|
//if (_trait_IndoorTemp.curValue.ToString().Length > 3)
|
{
|
var vv = Convert.ToDouble(_trait_IndoorTemp.curValue);
|
_trait_IndoorTemp.curValue = Convert.ToInt32(vv);
|
}
|
return _trait_IndoorTemp;
|
}
|
}
|
|
/// <summary>
|
/// 当前模式的icon路径
|
/// </summary>
|
[Newtonsoft.Json.JsonIgnore]
|
public string curModeImage
|
{
|
get
|
{
|
try
|
{
|
var imagePath = "FunctionIcon/AC/CoolIcon.png";
|
switch (trait_mode.curValue.ToString())
|
{
|
case "auto":
|
imagePath = "FunctionIcon/AC/AutoIcon.png";
|
break;
|
case "cool":
|
imagePath = "FunctionIcon/AC/CoolIcon.png";
|
break;
|
case "heat":
|
imagePath = "FunctionIcon/AC/HeatingIcon.png";
|
break;
|
case "dry":
|
imagePath = "FunctionIcon/AC/DehumidificationIcon.png";
|
break;
|
case "fan":
|
imagePath = "FunctionIcon/AC/AirSupplyIcon.png";
|
break;
|
default:
|
imagePath = "FunctionIcon/AC/CoolIcon.png";
|
break;
|
}
|
return imagePath;
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"ac ge curModeImage error : {ex.Message}");
|
return "FunctionIcon/AC/CoolIcon.png";
|
}
|
}
|
}
|
/// <summary>
|
/// 当前风速的icon路径
|
/// </summary>
|
[Newtonsoft.Json.JsonIgnore]
|
public string curFanImage
|
{
|
get
|
{
|
try
|
{
|
var imagePath = "FunctionIcon/AC/WindHighIcon.png";
|
switch (trait_fan.curValue.ToString())
|
{
|
case "high":
|
imagePath = "FunctionIcon/AC/WindHighIcon.png";
|
break;
|
case "medium":
|
imagePath = "FunctionIcon/AC/WindMediumIcon.png";
|
break;
|
case "low":
|
imagePath = "FunctionIcon/AC/WindLowIcon.png";
|
break;
|
case "auto":
|
imagePath = "FunctionIcon/AC/AutoIcon.png";
|
break;
|
default:
|
imagePath = "FunctionIcon/AC/WindHighIcon.png";
|
break;
|
}
|
return imagePath;
|
}catch (Exception ex)
|
{
|
MainPage.Log($"ac get curFanImage error : {ex.Message}");
|
return "FunctionIcon/AC/WindHighIcon.png";
|
}
|
}
|
}
|
|
}
|
}
|