新增功能:海林传感器,调试云端接口,暂时无法通过接口读取数据 Bug修复:乐橙可视对讲历史记录
| | |
| | | <Properties StartupConfiguration="{D998E133-F0DD-4760-BE3C-461632F54DA4}|Default"> |
| | | <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.00008020-000404163432002E" /> |
| | | <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/DAL/Server/HttpUtil.cs"> |
| | | <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/Entity/Function/Function.cs"> |
| | | <Files> |
| | | <File FileName="HDL_ON/Entity/FunctionList.cs" Line="128" Column="50" /> |
| | | <File FileName="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs" Line="331" Column="4" /> |
| | | <File FileName="HDL_ON/Entity/Function/Scene.cs" /> |
| | | <File FileName="HDL_ON/DAL/DriverLayer/Control.cs" /> |
| | | <File FileName="HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs" /> |
| | | <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/FloorsManagementPageBLL.cs" Line="42" Column="30" /> |
| | | <File FileName="HDL_ON/Entity/Function/Sensor.cs" Line="253" Column="1" /> |
| | | <File FileName="HDL-ON_Android/LeChengVideoActivity.cs" Line="114" Column="1" /> |
| | | <File FileName="HDL_ON/UI/MainPage.cs" Line="28" Column="55" /> |
| | | <File FileName="HDL_ON/DAL/Server/HttpUtil.cs" Line="22" Column="87" /> |
| | | <File FileName="HDL_ON/Common/ApiUtlis.cs" Line="190" Column="57" /> |
| | | <File FileName="HDL_ON/Entity/Function/Function.cs" Line="420" Column="21" /> |
| | | </Files> |
| | | <Pads> |
| | | <Pad Id="ProjectPad"> |
| | | <State name="__root__"> |
| | | <Node name="HDL_APP_Project" expanded="True"> |
| | | <Node name="HDL_ON" expanded="True"> |
| | | <Node name="Common" expanded="True" /> |
| | | <Node name="DAL" expanded="True"> |
| | | <Node name="Server" expanded="True"> |
| | | <Node name="HttpUtil.cs" selected="True" /> |
| | | <Node name="Server" expanded="True" /> |
| | | </Node> |
| | | <Node name="Entity" expanded="True"> |
| | | <Node name="Function" expanded="True"> |
| | | <Node name="Function.cs" selected="True" /> |
| | | </Node> |
| | | </Node> |
| | | <Node name="Entity" expanded="True" /> |
| | | </Node> |
| | | <Node name="HDL-ON_iOS" expanded="True" /> |
| | | </Node> |
| | |
| | | <String>Shared.Droid.TouchID/Shared.Droid.TouchID.csproj</String> |
| | | <String>Shared.IOS/Shared.IOS.csproj</String> |
| | | </DisabledProjects> |
| | | <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|iPhone" /> |
| | | <MonoDevelop.Ide.Workspace ActiveConfiguration="Release|iPhone" /> |
| | | <MonoDevelop.Ide.ItemProperties.HDL-ON__Android PreferredExecutionTarget="Android.7374d754" /> |
| | | <MonoDevelop.Ide.DebuggingService.Breakpoints> |
| | | <BreakpointStore> |
| | | <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/Electrical/IrFanPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/Electrical/IrFanPage.cs" line="42" column="1" /> |
| | | <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs" relfile="HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs" line="384" column="1" /> |
| | | </BreakpointStore> |
| | | </MonoDevelop.Ide.DebuggingService.Breakpoints> |
| | | <MultiItemStartupConfigurations /> |
| | |
| | | |
| | | 4000=Video intercom |
| | | 4001=Call record |
| | | 4002=*Cloud photos are only kept for 30 days |
| | | 4002=*Cloud records are only kept for 30 days |
| | | 4003=Door phone call |
| | | 4004=Answered |
| | | 4005=Unlocked |
| | |
| | | |
| | | 4000=可视对讲 |
| | | 4001=通话记录 |
| | | 4002=*云端照片只保留30天 |
| | | 4002=*云端记录只保留30天 |
| | | 4003=门口机呼叫 |
| | | 4004=已接听 |
| | | 4005=已开锁 |
| | |
| | | <key>UIStatusBarStyle</key> |
| | | <string>UIStatusBarStyleLightContent</string> |
| | | <key>CFBundleShortVersionString</key> |
| | | <string>1.2.202107071</string> |
| | | <string>1.2.202107081</string> |
| | | <key>CFBundleVersion</key> |
| | | <string>1.2.07071</string> |
| | | <string>1.2.07081</string> |
| | | <key>NSLocationWhenInUseUsageDescription</key> |
| | | <string>Use geographic location to provide services such as weather</string> |
| | | <key>NSAppleMusicUsageDescription</key> |
| | |
| | | |
| | | 4000=Video intercom |
| | | 4001=Call record |
| | | 4002=*Cloud photos are only kept for 30 days |
| | | 4002=*Cloud records are only kept for 30 days |
| | | 4003=Door phone call |
| | | 4004=Answered |
| | | 4005=Unlocked |
| | |
| | | |
| | | 4000=可视对讲 |
| | | 4001=通话记录 |
| | | 4002=*云端照片只保留30天 |
| | | 4002=*云端记录只保留30天 |
| | | 4003=门口机呼叫 |
| | | 4004=已接听 |
| | | 4005=已开锁 |
| | |
| | | } |
| | | } |
| | | } |
| | | //Bug修复:一端口远程控制调光设备的调光属性时,无法控制到0,反复横跳。 |
| | | //因为On + 远程控制发送给云端使用的是link协议数据,杨涛中转给高胜处理时候逻辑上有冲突,导致无法单独控制亮度值,需要同时发送开关值与亮度值。 |
| | | if (DB_ResidenceData.Instance.GatewayType == 0) |
| | | { |
| | | if(commandDictionary.Count == 1 && commandDictionary.ContainsKey(FunctionAttributeKey.Brightness)) |
| | | { |
| | | commandDictionary.Add(FunctionAttributeKey.OnOff, commandDictionary[FunctionAttributeKey.Brightness] == "0" ? "off" : "on"); |
| | | } |
| | | } |
| | | |
| | | ///dome控制 |
| | | if (MainPage.NoLoginMode) |
| | |
| | | } |
| | | EnvironmentalPage.LoadEvent_UpdataStatus(localFunction); |
| | | break; |
| | | case SPK.SensorEnvironment: |
| | | if (localFunction.GetAttributes().Contains(FunctionAttributeKey.Temperature)) |
| | | { |
| | | HomePage.LoadEvent_RefreshEnvirIndoorTemp(); |
| | | } |
| | | if (localFunction.GetAttributes().Contains(FunctionAttributeKey.Humidity)) |
| | | { |
| | | HomePage.LoadEvent_RefreshEnvirIndoorHumi(); |
| | | } |
| | | EnvironmentalPage.LoadEvent_UpdataStatus(localFunction); |
| | | break; |
| | | case SPK.ElectricSocket: |
| | | SocketPage.UpdataState(localFunction); |
| | | break; |
| | |
| | | /// 公共域名就近解析 |
| | | /// |
| | | /// </summary> |
| | | //public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com"; |
| | | public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm |
| | | public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com"; |
| | | //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";//mmmm |
| | | /// <summary> |
| | | /// RegionMark |
| | | /// </summary> |
| | |
| | | /// <summary> |
| | | /// 获取通话记录 |
| | | /// </summary> |
| | | public const string API_POST_FL_GetCallList = "/home-wisdom/app/fl/vi/list"; |
| | | //public const string API_POST_FL_GetCallList = "/home-wisdom/app/fl/vi/list"; |
| | | public const string API_POST_FL_GetCallList = "/home-wisdom/platform/imou/listCallRecords"; |
| | | /// <summary> |
| | | /// 删除通话记录 |
| | | /// </summary> |
| | |
| | | return _trait_on_off; |
| | | } |
| | | } |
| | | /// <summary> |
| | | /// 功能的属性状态列表 |
| | | /// </summary> |
| | | public List<AttributesStatus> status = new List<AttributesStatus>(); |
| | | |
| | | |
| | | /// <summary> |
| | | /// 使用次数 |
| | |
| | | public List<AttributesStatus> status = new List<AttributesStatus>(); |
| | | } |
| | | /// <summary> |
| | | /// a协议控制动作数据 |
| | | /// 功能属性状态 |
| | | /// </summary> |
| | | public class AttributesStatus |
| | | { |
| | |
| | | /// </summary> |
| | | public object curValue = new object(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 功能属性键名列表 |
| | | /// </summary> |
| | |
| | | /// 空调、地热//app自加 |
| | | /// </summary> |
| | | public const string TempType = "temperature_type"; |
| | | |
| | | /// <summary> |
| | | /// 时间标记 |
| | | /// 地热//app自加 |
| | |
| | | /// </summary> |
| | | public const string Humidity = "humidity"; |
| | | /// <summary> |
| | | /// 温度 |
| | | /// </summary> |
| | | public const string Temperature = "temperature"; |
| | | /// <summary> |
| | | /// 室内温度 |
| | | /// </summary> |
| | | public const string IndoorTemp = "indoor_temp"; |
| | |
| | | /// <summary> |
| | | /// 创建该场景的用户ID |
| | | /// </summary> |
| | | public string userId = ""; |
| | | public string userId = UserInfo.Current.ID; |
| | | |
| | | ///// <summary> |
| | | ///// 场景背景 |
| | |
| | | var revPack = pm.AddScene(scene); |
| | | if (revPack.Code == StateCode.SUCCESS) |
| | | { |
| | | var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(revPack.Data.ToString()); |
| | | tempScene = sceneList.Find((obj) => obj.sid == scene.sid); |
| | | var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(tempScene)); |
| | | FileUtlis.Files.WriteFileByBytes(scene.savePath, ssd); |
| | | result = tempScene; |
| | | if (MainPage.NoLoginMode) |
| | | { |
| | | var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(scene)); |
| | | FileUtlis.Files.WriteFileByBytes(scene.savePath, ssd); |
| | | result = scene; |
| | | } |
| | | else |
| | | { |
| | | var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(revPack.Data.ToString()); |
| | | tempScene = sceneList.Find((obj) => obj.sid == scene.sid); |
| | | var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(tempScene)); |
| | | FileUtlis.Files.WriteFileByBytes(scene.savePath, ssd); |
| | | result = tempScene; |
| | | } |
| | | } |
| | | else |
| | | { |
| | |
| | | //etAccount.Text = "551775569@qq.com";//wcf |
| | | //etAccount.Text = "18666455392";//13375012446//13602944661//tzy 18778381374 |
| | | //etAccount.Text = "15971583093";// gs//tzy 274116637@qq.com//Sumant.Bhatia@havells.com 国外服务器测试 |
| | | etAccount.Text = "15971583093";//高胜 调光0 100 反复横跳 |
| | | } |
| | | b = !b; |
| | | etPassword.Text = "123456"; |
| | |
| | | Width = Application.GetRealWidth(32), |
| | | UnSelectedImagePath = "Public/FuncInfoSetIcon_white.png", |
| | | }; |
| | | if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare) |
| | | if (scene.userId == UserInfo.Current.ID) |
| | | { |
| | | view.AddChidren(btnSettingIcon); |
| | | } |
| | |
| | | name = enviTemp.name, |
| | | sid = enviTemp.sid, |
| | | deviceId = enviTemp.deviceId, |
| | | attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", value = tempAttr.value } }, |
| | | attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", state = tempAttr.state, curValue = tempAttr.curValue } }, |
| | | }; |
| | | humiSensorList.Add(newTemp); |
| | | } |
| | |
| | | name = enviTemp.name, |
| | | sid = enviTemp.sid, |
| | | deviceId = enviTemp.deviceId, |
| | | attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", value = tempAttr.value } }, |
| | | attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", state = tempAttr.state, curValue = tempAttr.curValue } }, |
| | | }; |
| | | tempSensorList.Add(newTemp); |
| | | } |
| | |
| | | { |
| | | list.Add(logic.name); |
| | | } |
| | | new LogicView.TipPopView().InputBox(StringId.editName, InpOrOutLogicMethod.GetLogicName(Logic.currlogic), StringId.nameNull, StringId.NameAlreadyExists, list, (logicName, view |
| | | ) => |
| | | new LogicView.TipPopView().InputBox(StringId.editName, InpOrOutLogicMethod.GetLogicName(Logic.currlogic), StringId.nameNull, StringId.NameAlreadyExists, list, (logicName, view) => |
| | | { |
| | | Logic.currlogic.name = logicName; |
| | | Logic.currlogic.sid = LogicMethod.CurrLogicMethod.NewSid(); |
| | | if (MainPage.NoLoginMode) |
| | | { |
| | | Logic.currlogic.userLogicId = Guid.NewGuid().ToString(); |
| | | Logic.LogicList.Add(Logic.currlogic); |
| | | LogicMethod.CurrLogicMethod.RemoveAllView(); |
| | | MainView.MainShow(); |
| | | return; |
| | | } |
| | | loading.Start(); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | |
| | | try |
| | | { |
| | | //发送新加逻辑命令; |
| | |
| | | IsSelected = scene.collect, |
| | | }; |
| | | view.AddChidren(btnCollection); |
| | | //2020-12-16 如果是成员隐藏收藏功能 |
| | | //if (!DB_ResidenceData.Instance.CurrentRegion.isOtherShare) |
| | | //{ |
| | | // view.AddChidren(btnCollection); |
| | | //} |
| | | btnCollection.MouseUpEventHandler = (sender, e) => { |
| | | scene.collect = btnCollection.IsSelected = !btnCollection.IsSelected; |
| | | scene.CollectScene(); |
| | |
| | | { |
| | | Y = Application.GetRealHeight(64), |
| | | Height = Application.GetRealHeight(603 - 50), |
| | | //BackgroundColor = CSS_Color.DividingLineColor, |
| | | }; |
| | | bodyView.AddChidren(contentView); |
| | | contentView.AddChidren(new Button() { Height = Application.GetRealWidth(12) }); |
| | |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Width = Application.GetRealWidth(252), |
| | | Height = Application.GetRealWidth(188 + 24), |
| | | Height = Application.GetRealWidth(184), |
| | | Radius = (uint)Application.GetRealWidth(12), |
| | | BackgroundColor = CSS_Color.MainBackgroundColor, |
| | | }; |
| | |
| | | |
| | | functionListView = new VerticalScrolViewLayout() |
| | | { |
| | | Height = 0, |
| | | Height = Application.GetRealHeight(228+48), |
| | | BackgroundColor = CSS_Color.DividingLineColor, |
| | | ScrollEnabled = false, |
| | | }; |
| | | contentView.AddChidren(functionListView); |
| | | |
| | | LoadFunctionRow(functionListView); |
| | | |
| | | Button btnLine1 = new Button() |
| | | { |
| | | //Y = sceneDelayRow.Bottom, |
| | | Height = Application.GetRealHeight(8), |
| | | BackgroundColor = CSS_Color.DividingLineColor, |
| | | }; |
| | | contentView.AddChidren(btnLine1); |
| | | //Button btnLine1 = new Button() |
| | | //{ |
| | | // //Y = sceneDelayRow.Bottom, |
| | | // Height = Application.GetRealHeight(8), |
| | | //}; |
| | | //contentView.AddChidren(btnLine1); |
| | | |
| | | Button btnLine2 = new Button() |
| | | { |
| | | //Y = sceneDelayRow.Bottom, |
| | | Height = Application.GetRealHeight(228), |
| | | BackgroundColor = CSS_Color.DividingLineColor, |
| | | }; |
| | | contentView.AddChidren(btnLine2); |
| | | //Button btnLine2 = new Button() |
| | | //{ |
| | | // //Y = sceneDelayRow.Bottom, |
| | | // Height = Application.GetRealHeight(228), |
| | | // BackgroundColor = CSS_Color.DividingLineColor, |
| | | //}; |
| | | //contentView.AddChidren(btnLine2); |
| | | #endregion |
| | | |
| | | Button btnBottomLine = new Button() |
| | |
| | | void LoadFunctionRow(VerticalScrolViewLayout functionListView) |
| | | { |
| | | functionListView.RemoveAll(); |
| | | functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count); |
| | | if (scene.functions.Count > 4) |
| | | { |
| | | functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count); |
| | | } |
| | | foreach (var scenefunction in scene.functions) |
| | | { |
| | | var row = new RowLayout() |
| | |
| | | btnDelSceneFunction.MouseUpEventHandler = (sender, e) => { |
| | | scene.functions.Remove(scenefunction); |
| | | row.RemoveFromParent(); |
| | | functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count); |
| | | if (scene.functions.Count > 4) |
| | | { |
| | | functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count); |
| | | } |
| | | }; |
| | | } |
| | | } |
| | |
| | | name = sensor.name, |
| | | sid = sensor.sid, |
| | | deviceId = sensor.deviceId, |
| | | attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", value = seTemp.value } }, |
| | | attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", state = seTemp.state, curValue = seTemp.curValue } }, |
| | | }; |
| | | switch (seTemp.key) |
| | | { |
| | |
| | | continue; |
| | | #endif |
| | | LoadSensorDiv(sensor, index); |
| | | index++; |
| | | } |
| | | index++; |
| | | |
| | | new System.Threading.Thread(() => |
| | | { |
| | |
| | | name = updateTemp.name, |
| | | sid = updateTemp.sid, |
| | | deviceId = updateTemp.deviceId, |
| | | attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", value = seTemp.value } }, |
| | | attributes = new List<FunctionAttributes> { new FunctionAttributes { key = "value", state = seTemp.state ,curValue = seTemp.curValue} }, |
| | | }; |
| | | switch (seTemp.key) |
| | | { |