From 591a89a0980fbeba06770018d5e7ae580927861a Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 09 三月 2021 10:12:30 +0800
Subject: [PATCH] 扫地机器人舍弃掉耗材管理,随机清扫,静音模式
---
HDL_ON/Entity/Function/AC.cs | 571 ++++++++++++++++++++++++++++++++-------------------------
1 files changed, 321 insertions(+), 250 deletions(-)
diff --git a/HDL_ON/Entity/Function/AC.cs b/HDL_ON/Entity/Function/AC.cs
index a88513a..9b76ee4 100644
--- a/HDL_ON/Entity/Function/AC.cs
+++ b/HDL_ON/Entity/Function/AC.cs
@@ -1,25 +1,11 @@
锘縰sing System;
-using System.Collections;
using System.Collections.Generic;
-using Newtonsoft.Json.Linq;
+using Shared;
namespace HDL_ON.Entity
{
public class AC : Function
{
- /*
- * 绌鸿皟锛歵rait: [switch, mode, fan, temperature, swing, lock]
- * 灞炴�� 鎻忚堪
- * on_off on/off
- * mode mode: auto, cool, heat, dry, fan
- * fan high, medium, low, auto
- * temperature up,down,value
- * swing up/down/left/right
- * lock boolean (Lock閿佸畾鎺у埗)
- */
- public AC()
- {
- }
/// <summary>
/// 褰撳墠娓╁害妯″紡
/// 0:鎽勬皬搴�
@@ -30,7 +16,7 @@
/// <summary>
/// 褰撳墠娓╁害妯″紡瀛楃
/// </summary>
- public string curTempTypeString
+ public string tempUnitString
{
get
{
@@ -45,257 +31,250 @@
}
}
- ///// <summary>
- ///// 褰撳墠绌鸿皟妯″紡
- ///// </summary>
- //[Newtonsoft.Json.JsonIgnore]
- //public string curMode = "cool";
-
/// <summary>
/// 褰撳墠妯″紡绱㈠紩
/// bus鎺у埗鍛戒护浣跨敤
/// </summary>
- [Newtonsoft.Json.JsonIgnore]
- public byte curModeIndex
+ public byte curModeIndex()
{
- get
+ try
{
- try
- {
- byte index = 0;
- switch (trait_mode.curValues.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
- {
+ string value = GetAttrState(FunctionAttributeKey.Mode);
+ byte index = 0;
switch (value)
{
- case 0:
- trait_mode.curValues = "cool";
+ case "auto":
+ index = 3;
break;
- case 1:
- trait_mode.curValues = "heat";
+ case "cool":
+ index = 0;
break;
- case 2:
- trait_mode.curValues = "fan";
+ case "heat":
+ index = 1;
break;
- case 3:
- trait_mode.curValues = "auto";
+ case "dry":
+ index = 4;
break;
- case 4:
- trait_mode.curValues = "dry";
+ case "fan":
+ index = 2;
break;
default:
- trait_mode.curValues = "cool";
+ index = 0;
break;
-
}
+ return index;
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log($"get curModeIndex error : {ex.Message}");
+ return 0;
}
}
+
+ /// <summary>
+ /// 璁剧疆bus鍗忚妯″紡鏍囪
+ /// </summary>
+ public void SetModeIndex(int index)
+ {
+ string value = "auto";
+ switch (index)
+ {
+ case 3:
+ value = "auto";
+ break;
+ case 0:
+ value = "cool";
+ break;
+ case 1:
+ value = "heat";
+ break;
+ case 4:
+ value = "dry";
+ break;
+ case 2:
+ value = "fan";
+ break;
+ }
+ SetAttrState(FunctionAttributeKey.Mode, value);
+ }
+
/// <summary>
/// 褰撳墠椋庨�熺储寮�
/// bus鎺у埗鍛戒护浣跨敤
/// </summary>
- [Newtonsoft.Json.JsonIgnore]
- public byte curFanIndex
+ public byte curFanIndex()
{
- get
+ try
{
- try
- {
- byte index = 0;
- switch (trait_fan.curValues.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
- {
+ string value = GetAttrState(FunctionAttributeKey.FanSpeed);
+ byte index = 0;
switch (value)
{
- case 0:
- trait_fan.curValues = "auto";
+ case "high":
+ index = 1;
break;
- case 1:
- trait_fan.curValues = "high";
+ case "medium":
+ index = 2;
break;
- case 2:
- trait_fan.curValues = "medium";
+ case "low":
+ index = 3;
break;
- case 3:
- trait_fan.curValues = "low";
+ case "auto":
+ index = 0;
break;
default:
- trait_fan.curValues = "high";
+ index = 0;
break;
}
+ return index;
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log($"get curFanIndex error : {ex.Message}");
+ return 0;
}
}
- Trait _trait_mode;
+ /// <summary>
+ /// 璁剧疆bus鍗忚椋庨�熸爣璁�
+ /// </summary>
+ public void SetFanIndex(int index)
+ {
+ string value = "high";
+ switch (index)
+ {
+ case 1:
+ value = "high";
+ break;
+ case 2:
+ value = "medium";
+ break;
+ case 3:
+ value = "low";
+ break;
+ case 0:
+ value = "auto";
+ break;
+ }
+ SetAttrState(FunctionAttributeKey.FanSpeed, value);
+ }
+
+ /* 鍘绘帀琛嶇敓灞炴�э紝閫氳繃base.GetAttrState 鏌ユ壘灞炴�т笌鐘舵��
+ FunctionAttributes _trait_mode;
+ /// <summary>
+ /// 妯″紡灞炴��
+ /// </summary>
[Newtonsoft.Json.JsonIgnore]
- public Trait trait_mode
+ public FunctionAttributes trait_mode
{
get
{
if (_trait_mode == null)
{
- _trait_mode = function.Find((obj) => obj.attri == "mode");
+ _trait_mode = attributes.Find((obj) => obj.key == "mode");
//鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
if (_trait_mode == null)
{
- _trait_mode = new Trait()
+ _trait_mode = new FunctionAttributes()
{
- attri = "mode",
+ key = "mode",
value = new List<string> { "auto", "cool", "heat", "dry", "fan" },
max = 4,
min = 0,
};
}
- _trait_mode.curValues = _trait_mode.value.Count > 0 ? _trait_mode.value[0] : "";
}
+ if (_trait_mode.curValue.ToString() == "{}")
+ _trait_mode.curValue = "cool";
return _trait_mode;
}
}
- /// <summary>
- /// 绌鸿皟妯″紡
- /// </summary>
- [Newtonsoft.Json.JsonIgnore]
- public List<string> modeList
- {
- get
- {
- try
- {
- return trait_mode.value;
- }
- catch (Exception ex)
- {
- MainPage.Log($"ac get mode error : {ex.Message}");
- return new List<string> { "auto", "cool", "heat", "dry", "fan" };
- }
- }
- }
- Trait _trait_fan;
+ FunctionAttributes _trait_fan;
[Newtonsoft.Json.JsonIgnore]
- public Trait trait_fan {
+ public FunctionAttributes trait_fan
+ {
get
{
if (_trait_fan == null)
{
- _trait_fan = function.Find((obj) => obj.attri == "fan");
+ _trait_fan = attributes.Find((obj) => obj.key == "fan");
//鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
if (_trait_fan == null)
{
- _trait_fan = new Trait()
+ _trait_fan = new FunctionAttributes()
{
- attri = "fan",
+ key = "fan",
value = new List<string> { "high", "medium", "low", "auto" },
max = 3,
min = 0,
+ curValue = "high"
};
}
- _trait_fan.curValues = _trait_fan.value.Count > 0 ? _trait_fan.value[0] : "";
}
+ if (_trait_fan.curValue.ToString() == "{}")
+ _trait_fan.curValue = "high";
return _trait_fan;
}
}
- /// <summary>
- /// 绌鸿皟椋庨�熸ā寮�
- /// </summary>
- [Newtonsoft.Json.JsonIgnore]
- public List<string> fan_List
- {
- get
- {
- try
- {
- return trait_fan.value;
- }
- catch (Exception ex)
- {
- MainPage.Log($"ac get fan error : {ex.Message}");
- return new List<string> { "high", "medium", "low", "auto" };
- }
- }
- }
+
+ FunctionAttributes _trait_temp;
/// <summary>
/// 褰撳墠绌鸿皟娓╁害
/// </summary>
[Newtonsoft.Json.JsonIgnore]
- public int curTemp = 20;
- // temperature up, down, value
- // swing up/down/left/right
+ public FunctionAttributes trait_temp
+ {
+ get
+ {
+ if (_trait_temp == null)
+ {
+ _trait_temp = attributes.Find((obj) => obj.key == "set_temp");
+ //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
+ 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;
+ }
+ double vv = 16;
+ Double.TryParse(_trait_temp.curValue.ToString(), out vv);
+ _trait_temp.curValue = Convert.ToInt32(vv);
+ return _trait_temp;
+ }
+ }
- Trait _trait_swting;
+ FunctionAttributes _trait_swting;
[Newtonsoft.Json.JsonIgnore]
- public Trait trait_swting
+ public FunctionAttributes trait_swting
{
get
{
if (_trait_swting == null)
{
- _trait_swting = function.Find((obj) => obj.attri == "swting");
+ _trait_swting = attributes.Find((obj) => obj.key == "swting");
//鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
if (_trait_swting == null)
{
- _trait_swting = new Trait()
+ _trait_swting = new FunctionAttributes()
{
- attri = "swting",
+ key = "swting",
value = new List<string> { "up", "down", "left", "right" },
max = 3,
min = 0,
};
}
- _trait_swting.curValues = _trait_swting.value.Count > 0 ? _trait_swting.value[trait_mode.min] : "";
}
+ if (_trait_swting.curValue.ToString() == "{}")
+ _trait_swting.curValue = "up";
return _trait_swting;
}
}
@@ -309,7 +288,6 @@
{
try
{
-
return trait_swting.value;
}
catch (Exception ex)
@@ -319,112 +297,205 @@
}
}
}
+ FunctionAttributes _trait_IndoorTemp;
/// <summary>
/// 瀹ゅ唴娓╁害
/// </summary>
[Newtonsoft.Json.JsonIgnore]
- public int indoorTemp = 20;
+ public FunctionAttributes trait_IndoorTemp
+ {
+ get
+ {
+ if (_trait_IndoorTemp == null)
+ {
+ _trait_IndoorTemp = attributes.Find((obj) => obj.key == FunctionAttributeKey.IndoorTemp);
+ //鎵句笉鍒板睘鎬ч渶瑕佸0鏄庝竴涓紝闃叉鎶ラ敊闂��
+ 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;
+ }
+ var vv = Convert.ToDouble(_trait_IndoorTemp.curValue);
+ _trait_IndoorTemp.curValue = Convert.ToInt32(vv);
+ return _trait_IndoorTemp;
+ }
+ }
+ */
/// <summary>
/// 褰撳墠妯″紡鐨刬con璺緞
/// </summary>
- [Newtonsoft.Json.JsonIgnore]
- public string curModeImage
+ /// <param name="lightingIcon">鑾峰彇鐨勫浘鏍囩被鍨嬶紝榛樿鏄偣浜�</param>
+ /// <returns></returns>
+ public string GetModeIconPath(bool lightingIcon = true)
{
- get
+ var value = GetAttrState(FunctionAttributeKey.Mode);
+ var imagePath = "FunctionIcon/AC/CoolIcon.png";
+ if (lightingIcon)
{
- try
+ switch (value)
{
- var imagePath = "FunctionIcon/AC/CoolIcon.png";
- switch (trait_mode.curValues.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";
+ 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;
}
}
+ else
+ {
+ imagePath = "FunctionIcon/AC/AutoIconGray.png";
+ switch (value)
+ {
+ case "auto":
+ imagePath = "FunctionIcon/AC/AutoIconGray.png";
+ break;
+ case "cool":
+ imagePath = "FunctionIcon/AC/CoolIconGray.png";
+ break;
+ case "heat":
+ imagePath = "FunctionIcon/AC/HeatingIconGray.png";
+ break;
+ case "dry":
+ imagePath = "FunctionIcon/AC/DehumidificationIconGray.png";
+ break;
+ case "fan":
+ imagePath = "FunctionIcon/AC/AirSupplyIconGray.png";
+ break;
+ }
+ }
+ return imagePath;
}
+
/// <summary>
/// 褰撳墠椋庨�熺殑icon璺緞
/// </summary>
- [Newtonsoft.Json.JsonIgnore]
- public string curFanImage
+ /// <param name="lightingIcon">鑾峰彇鐨勫浘鏍囩被鍨嬶紝榛樿鏄偣浜�</param>
+ /// <returns></returns>
+ public string GetFanIconPath(bool lightingIcon = true)
{
- get
+ string value = GetAttrState(FunctionAttributeKey.FanSpeed);
+ var imagePath = "FunctionIcon/AC/WindHighIcon.png";
+ if (lightingIcon)
{
- try
+ switch (value)
{
- var imagePath = "FunctionIcon/AC/WindHighIcon.png";
- switch (trait_fan.curValues.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";
+ 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;
}
}
+ else
+ {
+ switch (value)
+ {
+ case "high":
+ imagePath = "FunctionIcon/AC/WindHighIconGray.png";
+ break;
+ case "medium":
+ imagePath = "FunctionIcon/AC/WindMediumIconGray.png";
+ break;
+ case "low":
+ imagePath = "FunctionIcon/AC/WindLowIconGray.png";
+ break;
+ case "auto":
+ imagePath = "FunctionIcon/AC/AutoIconGray.png";
+ break;
+ }
+ }
+
+ return imagePath;
}
+
+
/// <summary>
- /// 鎷兼帴銆佽幏鍙朅鍗忚鎿嶄綔鏁版嵁
+ /// 鑾峰彇妯″紡灞炴�ф枃鏈�
/// </summary>
- public override JObject GetSendJObject(CommandType_A command)
+ /// <returns></returns>
+ public string GetModeAttrText(string value)
{
- var sendJob = new JObject();
- if (command == CommandType_A.write)
+ string text = "";
+ switch (value)
{
- sendJob = new JObject { { "Namespace", vendor_code }, { "Command", command.ToString() }, { "Type", "device" } };
- JObject data = new JObject {{ "sid", sid } };
- sendJob.Add("objects", data);
+ #region 妯″紡
+ case "auto":
+ text = Language.StringByID(StringId.Auto);
+ break;
+ case "cool":
+ text = Language.StringByID(StringId.Cool);
+ break;
+ case "heat":
+ text = Language.StringByID(StringId.Heat);
+ break;
+ case "dry":
+ text = Language.StringByID(StringId.Dry);
+ break;
+ case "fan":
+ text = Language.StringByID(StringId.AirSupply);
+ break;
+ #endregion
}
- else if (command == CommandType_A.read)
- {
- sendJob = new JObject { { "Namespace", vendor_code }, { "Command", command.ToString() }, { "Type", "device" } };
- var data = new JObject { { "sid", sid } };
- sendJob.Add("objects", data);
- }
- return sendJob;
+ return text;
}
-
+ /// <summary>
+ /// 鑾峰彇椋庨�熷睘鎬ф枃鏈�
+ /// </summary>
+ /// <returns></returns>
+ public string GetFanAttrText(string value)
+ {
+ string text = "";
+ switch (value)
+ {
+ #region 椋庨��
+ case "high":
+ text = Language.StringByID(StringId.HighWindSpeed);
+ break;
+ case "medium":
+ text = Language.StringByID(StringId.MiddleWindSpeed);
+ break;
+ case "low":
+ text = Language.StringByID(StringId.LowWindSpeed);
+ break;
+ case "auto":
+ text = Language.StringByID(StringId.Auto);
+ break;
+ #endregion
+ }
+ return text;
+ }
}
}
--
Gitblit v1.8.0