wxr
2024-07-12 c2f74dd7b1df9829385c8fa7fcff860f6a5aae1f
Merge branch 'Wxr-UnuitTest' into Dev_v2.4.8_google
3个文件已添加
4个文件已删除
1 文件已重命名
18个文件已修改
485 ■■■■■ 已修改文件
DLL/Aliyun.Api.LogService.dll 补丁 | 查看 | 原始文档 | blame | 历史
DLL/Android/HdlEzvizDroid.dll 补丁 | 查看 | 原始文档 | blame | 历史
DLL/IOS/HDL.Shared.IOS.ScanQRCode.dll 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/12422688.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1792828.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/26881242.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/8281792.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Assets.xcassets/preview_stopplay_btn .imageset/Contents.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/HDL-ON_iOS.csproj 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Info.plist 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/AliyunLog/AliyunLogClient.cs 160 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/AliyunLog/AliyunLogInvokeAsync.cs 173 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/DriverLayer/Control.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/DriverLayer/Control_Udp.cs 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/HttpUtil.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/Function/Sensor.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/HDL_ON.projitems 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/MainPage.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI0-Stan/Logic/HdlMessageLogic.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/1-HomePage/HomePage.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
SiriIntents/Server/HttpUtil.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SiriIntents/SiriIntents.csproj 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
SiriIntentsUI/SiriIntentsUI.csproj 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/Aliyun.Api.LogService.dll
Binary files differ
DLL/Android/HdlEzvizDroid.dll
Binary files differ
DLL/IOS/HDL.Shared.IOS.ScanQRCode.dll
Binary files differ
HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/12422688.png
Binary files differ
HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/1792828.png
Binary files differ
HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/26881242.png
Binary files differ
HDL-ON_iOS/Assets.xcassets/LaunchImage.launchimage/8281792.png
Binary files differ
HDL-ON_iOS/Assets.xcassets/preview_stopplay_btn .imageset/Contents.json
@@ -11,7 +11,6 @@
      "scale" : "2x"
    },
    {
      "filename" : "preview_stopplay_btn @3x.png",
      "idiom" : "universal",
      "scale" : "3x"
    }
HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -30,6 +30,7 @@
        <CodesignProvision>OnPro2307291-Dev</CodesignProvision>
        <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
        <MtouchI18n>cjk</MtouchI18n>
        <MtouchSdkVersion>17.5</MtouchSdkVersion>
    </PropertyGroup>
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
        <DebugType>none</DebugType>
@@ -55,12 +56,13 @@
        <CodesignKey>Apple Development: xuebiao huang (4P32GXQWWK)</CodesignKey>
        <MtouchDebug>true</MtouchDebug>
        <MtouchI18n>cjk</MtouchI18n>
        <MtouchLink>None</MtouchLink>
        <MtouchLink>SdkOnly</MtouchLink>
        <MtouchExtraArgs>-gcc_flags="-dead_strip -ObjC"</MtouchExtraArgs>
        <MtouchEnableSGenConc>false</MtouchEnableSGenConc>
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<CodesignProvision>OnPro2307291-Dev</CodesignProvision>
<CodesignProvision>0002-OnPro-240704-1-Dev</CodesignProvision>
<MtouchSdkVersion>17.5</MtouchSdkVersion>
    </PropertyGroup>
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' ">
        <DebugType>none</DebugType>
@@ -75,7 +77,8 @@
        <MtouchExtraArgs>-gcc_flags="-dead_strip -ObjC"</MtouchExtraArgs>
        <MtouchI18n>cjk</MtouchI18n>
        <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
        <CodesignProvision>OnPro240130-1-Hoc</CodesignProvision>
        <CodesignProvision>Automatic</CodesignProvision>
        <MtouchSdkVersion>17.5</MtouchSdkVersion>
    </PropertyGroup>
    <ItemGroup>
        <Reference Include="System" />
@@ -119,6 +122,9 @@
        <Reference Include="Shared.IOS">
          <HintPath>..\DLL\Shared.IOS.dll</HintPath>
        </Reference>
        <Reference Include="Aliyun.Api.LogService">
          <HintPath>..\DLL\Aliyun.Api.LogService.dll</HintPath>
        </Reference>
    </ItemGroup>
    <ItemGroup>
      <PackageReference Include="Newtonsoft.Json">
@@ -141,6 +147,18 @@
      </PackageReference>
      <PackageReference Include="Xamarin.iOS.SwiftRuntimeSupport">
        <Version>0.2.1</Version>
      </PackageReference>
      <PackageReference Include="Google.Protobuf">
        <Version>3.5.1</Version>
      </PackageReference>
      <PackageReference Include="Microsoft.AspNet.WebApi.Client">
        <Version>5.2.4</Version>
      </PackageReference>
      <PackageReference Include="Iconic.Zlib.Netstandard">
        <Version>1.0.0</Version>
      </PackageReference>
      <PackageReference Include="lz4net">
        <Version>1.0.15.93</Version>
      </PackageReference>
    </ItemGroup>
    <ItemGroup>
@@ -440,10 +458,6 @@
        <ImageAsset Include="Assets.xcassets\wifi_bg.imageset\wifi_bg.png" />
        <ImageAsset Include="Assets.xcassets\device_bg.imageset\Contents.json" />
        <ImageAsset Include="Assets.xcassets\device_bg.imageset\device_bg.png" />
        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\12422688.png" />
        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\8281792.png" />
        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\26881242.png" />
        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\1792828.png" />
        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\11252436.png" />
        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\24361125.png" />
        <ImageAsset Include="Assets.xcassets\LaunchImage.launchimage\640960.png" />
HDL-ON_iOS/Info.plist
@@ -11,7 +11,7 @@
    <key>CFBundleName</key>
    <string>On Pro</string>
    <key>CFBundleShortVersionString</key>
    <string>2.4.5</string>
    <string>2.4.8</string>
    <key>CFBundleURLTypes</key>
    <array>
        <dict>
@@ -36,7 +36,7 @@
        </dict>
    </array>
    <key>CFBundleVersion</key>
    <string>2.4.5</string>
    <string>2.4.8</string>
    <key>LSApplicationQueriesSchemes</key>
    <array>
        <string>weixinULAPI</string>
HDL_ON/Common/AliyunLog/AliyunLogClient.cs
New file
@@ -0,0 +1,160 @@
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Aliyun.Api.LogService;
using Aliyun.Api.LogService.Domain.Log;
using Aliyun.Api.LogService.Domain.LogStore.Index;
using Aliyun.Api.LogService.Infrastructure.Protocol;
namespace HDL_ON.Common.AliyunLog
{
    public class AliyunLogClient
    {
        // 日志服务的服务接入点。此处以杭州为例,其它地域请根据实际情况填写。
        private static string endpoint = "cn-hangzhou.log.aliyuncs.com";
        // 本示例从环境变量中获取AccessKey ID和AccessKey Secret。
        private static string accessKeyId = "LTAI5tLzDxrtsFyi3xtK3YWt";
        private static string accessKeySecret = "eX31JZrRAvC2wZWPiZU0SYhlfAUMoT";
        // Project名称。
        private static string project = "hdl-onpro-log";
        // Logstore名称。
        private static string logstore = "log";
        // 创建日志服务Client。
        private static ILogServiceClient client = BuildSimpleClient();
        public static ILogServiceClient BuildSimpleClient()
            => LogServiceClientBuilders.HttpBuilder
                .Endpoint(endpoint, project)
                .Credential(accessKeyId, accessKeySecret)
                .Build();
        public AliyunLogClient()
        {
        }
        //// 构建最简单的`ILogServiceClient`。
        //public static ILogServiceClient BuildSimpleClient()
        //    => LogServiceClientBuilders.HttpBuilder
        //        // 服务入口<endpoint>及项目名<projectName>
        //        .Endpoint(endpoint, project)
        //        // 访问密钥信息
        //        .Credential(accessKeyId, accessKeySecret)
        //        .Build();
        //static async Task Main(string[] args)
        //{
        //    // 创建Project。
        //    var proRes = await client.CreateProjectAsync(project, "des");
        //    check(proRes);
        //    Console.WriteLine("Create project success");
        //    Thread.Sleep(120 * 1000);
        //    // 创建Logstore。
        //    var storeRes = await client.CreateLogStoreAsync(logstore, 3, 2);
        //    check(storeRes);
        //    Console.WriteLine("Create logstore success");
        //    Thread.Sleep(10 * 1000);
        //    // 为Logstore创建索引。
        //    var indRes = await client.CreateIndexAsync(logstore, new IndexLineInfo(new[] { ' ', ',' }));
        //    check(indRes);
        //    Console.WriteLine("Create Index success");
        //    Thread.Sleep(60 * 1000);
        //    // 向Logstore写入数据。
        //    await PostLogs();
        //    Console.WriteLine("Post logs success");
        //    Thread.Sleep(3000);
        //    // 查询日志。
        //    await GetLogs();
        //}
        //public static async Task GetLogs()
        //{
        //    var logsRes = await client.GetLogsAsync(logstore, DateTimeOffset.UtcNow.AddMinutes(-1),
        //        DateTimeOffset.UtcNow,
        //        "test", "", 100, 0);
        //    check(logsRes);
        //    foreach (var log in logsRes.Result.Logs)
        //    {
        //        foreach (var key in log.Keys)
        //        {
        //            log.TryGetValue(key, out var value);
        //            Console.WriteLine(key + " : " + value);
        //        }
        //        Console.WriteLine("======");
        //    }
        //}
        /// <summary>
        /// 日志推送
        /// </summary>
        /// <param name="topic">推送标题</param>
        /// <param name="msg">推送信息</param>
        /// <returns></returns>
        public static async Task PostLogs(string topic, string msg)
        {
            if (client == null)
            {
                client = BuildSimpleClient();
            }
            try
            {
                var pushObj = new LogGroupInfo
                {
                    Topic = topic,
#if __ANDROID__
                    Source = "Android",
#else
                    Source = "IOS",
#endif
                    LogTags = new Dictionary<string, string>
                    {
                        {"tag1", DateTime.Now.ToLongTimeString()},
                    },
                    Logs = new List<LogInfo>
                    {
                        new LogInfo
                        {
                            Time = DateTimeOffset.Now,
                            Contents = new Dictionary<string, string>
                            {
                                {"id", DateTime.Now.Ticks.ToString()},
                                {"homeid", Entity.DB_ResidenceData.Instance.CurrentRegion.id},
                                {"userid", UserInfo.Current.ID},
                                {"userName", UserInfo.Current.userName},
                                {"server", DAL.Server.HttpUtil.GlobalRequestHttpsHost},
                                {"message", msg},
                            }
                        }
                    }
                };
                var response = await client.PostLogStoreLogsAsync(logstore, pushObj);
                check(response);
            }
            catch (Exception ex)
            {
                MainPage.Log(ex.Message);
            }
        }
        public static void check(IResponse res)
        {
            if (!res.IsSuccess)
            {
                MainPage.Log("日志推送不成功.");
                //throw new ApplicationException(res.Error.ErrorMessage);
            }
        }
    }
}
HDL_ON/Common/AliyunLog/AliyunLogInvokeAsync.cs
New file
@@ -0,0 +1,173 @@
using System;
using System.Linq;
using System.Threading.Tasks;
using Aliyun.Api.LogService;
using Aliyun.Api.LogService.Domain;
using Aliyun.Api.LogService.Domain.Log;
using Aliyun.Api.LogService.Infrastructure.Protocol;
namespace HDL_ON.Common.AliyunLog
{
    public class AliyunLogInvokeAsync
    {
        public AliyunLogInvokeAsync()
        {
        }
        /// <summary>
        /// 执行请求方法。
        /// </summary>
        public static async Task<GetLogsResult> Invoke(ILogServiceClient client)
        {
            var response = await client.GetLogsAsync
            (
                // 「必填参数」会在 Request 构造器中列出,并且不可set;
                new GetLogsRequest("example-logstore", (Int32)DateTimeOffset.UtcNow.AddDays(-1).ToUnixTimeSeconds(), (Int32)DateTimeOffset.UtcNow.ToUnixTimeSeconds())
                {
                    // 「可选参数」不会在 Request 构造器中列出,可通过setter设置。
                    Offset = 1,
                    Line = 100,
                }
            );
            var result = response
                // 此方法会确保返回的响应失败时候抛出`LogServiceException`。
                .EnsureSuccess()
                // 此处获取Result是安全的。
                .Result;
            Console.WriteLine($"RequestId:{response.RequestId}");
            Console.WriteLine($"日志总数:{result.Count}");
            Console.WriteLine($"首条日志:{result.Logs.FirstOrDefault()}");
            return result;
        }
        /// <summary>
        /// 在调用时可使用扩展方法,扩展方法会将简单的请求对象的属性展开到方法入参中。
        /// 使用扩展方法 `using Aliyun.Api.Log;` 即可。
        /// </summary>
        public static async Task<GetLogsResult> InvokeUsingExtension(ILogServiceClient client)
        {
            var response = await client.GetLogsAsync
            (
                // 「必填参数」作为方法的普通必须参数
                "example-logstore",
                DateTimeOffset.UtcNow.AddDays(-1),
                DateTimeOffset.UtcNow,
                // 「可选参数」作为方法的可选参数,可通过命名参数方式指定
                offset: 1,
                line: 10
            );
            var result = response
                // 此方法会确保返回的响应失败时候抛出`LogServiceException`。
                .EnsureSuccess()
                // 此处获取Result是安全的。
                .Result;
            Console.WriteLine($"RequestId:{response.RequestId}");
            Console.WriteLine($"日志总数:{result.Count}");
            Console.WriteLine($"首条日志:{result.Logs.FirstOrDefault()}");
            return result;
        }
        /// <summary>
        /// 处理服务器返回(包含在Response中)的错误。
        /// </summary>
        public static async Task<GetLogsResult> InvokeWithErrorHandling(ILogServiceClient client)
        {
            var response = await client.GetLogsAsync
            (
                // 「必填参数」作为方法的普通必须参数
                "example-logstore",
                DateTimeOffset.UtcNow.AddDays(-1),
                DateTimeOffset.UtcNow,
                // 「可选参数」作为方法的可选参数,可通过命名参数方式指定
                offset: 1,
                line: 10
            );
            GetLogsResult result;
            // 尝试处理可处理的错误。
            if (!response.IsSuccess)
            {
                // 错误码
                var errorCode = response.Error.ErrorCode;
                // 错误消息
                var errorMessage = response.Error.ErrorMessage;
                Console.WriteLine($"RequestId:{response.RequestId}");
                Console.WriteLine($"错误码:{errorCode}");
                Console.WriteLine($"错误信息:{errorMessage}");
                // `ErrorCode`类可支持与自身实例或字符串进行对比。
                if (errorCode == ErrorCode.SignatureNotMatch /* SDK中预定义的错误码 */)
                {
                    // 在这里处理业务可处理的错误。。。。。。
                    Console.WriteLine("Signature not match, {0}.", errorMessage);
                }
                else if (errorCode == "ParameterInvalid" /* 业务相关特殊的SDK中未定义的错误码 */)
                {
                    // 在这里处理业务可处理的错误。。。。。。
                    Console.WriteLine("Parameter invalid, {0}.", errorMessage);
                }
                // 任何处理不到的错误请务必抛出异常中断原流程,避免外部获取到 null 的结果!
                throw new Exception("这里可以是系统的业务异常。" + response.Error /* 最好带上服务返回的错误信息以便调试 */);
            }
            else
            {
                // 此处获取Result是安全的。
                result = response.Result;
            }
            Console.WriteLine($"RequestId:{response.RequestId}");
            Console.WriteLine($"日志总数:{result.Count}");
            Console.WriteLine($"首条日志:{result.Logs.FirstOrDefault()}");
            return result;
        }
        /// <summary>
        /// 处理以异常形式抛出的错误。
        /// </summary>
        public static async Task<GetLogsResult> InvokeWithExceptionHandling(ILogServiceClient client)
        {
            try
            {
                return await Invoke(client);
            }
            catch (LogServiceException e)
            {
                // 错误码
                var errorCode = e.ErrorCode;
                // 错误消息
                var errorMessage = e.ErrorMessage;
                Console.WriteLine($"RequestId:{e.RequestId}");
                Console.WriteLine($"错误码:{errorCode}");
                Console.WriteLine($"错误信息:{errorMessage}");
                // `ErrorCode`类可支持与自身实例或字符串进行对比。
                if (errorCode == ErrorCode.SignatureNotMatch /* SDK中预定义的错误码 */)
                {
                    // 在这里处理业务可处理的错误。。。。。。
                    Console.WriteLine("Signature not match, {0}.", errorMessage);
                }
                else if (errorCode == "ParameterInvalid" /* 业务相关特殊的SDK中未定义的错误码 */)
                {
                    // 在这里处理业务可处理的错误。。。。。。
                    Console.WriteLine("Parameter invalid, {0}.", errorMessage);
                }
                // 任何处理不到的错误请务必抛出异常中断原流程,避免外部获取到 null 的结果!
                throw new Exception("这里可以是系统的业务异常。", e /* 在自定义的异常中最好带上服务返回的异常以便调试 */);
            }
        }
    }
}
HDL_ON/DAL/DriverLayer/Control.cs
@@ -1617,6 +1617,17 @@
                            case SPK.MusicStandard:
                                //UI.Music.MusicMain.mMusicMain.RefreshView(updateTemp);
                                Console.WriteLine("音乐播放器显示状态=======" + revString);
                                foreach (var music in UI.Music.A31MusicModel.A31MusicModelList)//每次收到数据都要更新一下时间
                                {
                                    if (music.functionMusic.sid == localFunction.sid)
                                    {
                                        music.LastDateTime = DateTime.Now;
                                    }
                                }
                                if (UI.Music.A31MusicModel.Current != null)
                                {
                                    UI.Music.A31MusicModel.Current.LastDateTime = DateTime.Now;
                                }
                                //wjc
                                break;
                            case SPK.Inverter:
HDL_ON/DAL/DriverLayer/Control_Udp.cs
@@ -393,26 +393,26 @@
                                }
                            }
                            break;
                        case SPK.OtherCommon://2024-02-01 15:19:28  刚加的,不发布,客服遇到的问题
                            //foreach (var attr in f.status)
                            //{
                            //    if (attr.key == FunctionAttributeKey.OnOff)
                            //    {
                            //        byte onOffValue = 0;
                            //        switch (attr.value)
                            //        {
                            //            case "on":
                            //                onOffValue = 0;
                            //                break;
                            //            case "off":
                            //                onOffValue = 255;
                            //                break;
                            //        }
                            //        ControlBytesSend(Command.SetCommonSwitch, f.localFunction.bus.SubnetID, f.localFunction.bus.DeviceID,
                            //            new byte[] { f.localFunction.bus.LoopId, onOffValue });
                            //        break;
                            //    }
                            //}
                        case SPK.OtherCommon://2024-02-01 15:19:28
                            foreach (var attr in f.status)
                            {
                                if (attr.key == FunctionAttributeKey.OnOff)
                                {
                                    byte onOffValue = 0;
                                    switch (attr.value)
                                    {
                                        case "on":
                                            onOffValue = 0;
                                            break;
                                        case "off":
                                            onOffValue = 255;
                                            break;
                                    }
                                    ControlBytesSend(Command.SetCommonSwitch, f.localFunction.bus.SubnetID, f.localFunction.bus.DeviceID,
                                        new byte[] { f.localFunction.bus.LoopId, onOffValue });
                                    break;
                                }
                            }
                            break;
                    }
                }
HDL_ON/DAL/Server/HttpUtil.cs
@@ -19,13 +19,13 @@
        /// 公共域名就近解析
        /// </summary>
        public const string GlobalRequestHttpsHost = "https://nearest.hdlcontrol.com";
        const string APP_KEY = "HDL-HOME-APP";
        const string SECRET_KEY = "CPL345bn28gHnvi9G4tYbq3cTYkiHC";
        public const string APP_KEY = "HDL-HOME-APP";
        public const string SECRET_KEY = "CPL345bn28gHnvi9G4tYbq3cTYkiHC";
        //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";
        //const string APP_KEY = "HDL-HOME-APP-TEST";
        //const string SECRET_KEY = "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss";
        //public const string APP_KEY = "HDL-HOME-APP-TEST";
        //public const string SECRET_KEY = "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss";
        //public const string GlobalRequestHttpsHost = "http://59.41.255.150:7777";//mmmm
HDL_ON/Entity/Function/Sensor.cs
@@ -505,6 +505,10 @@
                    else
                        level = 3;
                    break;
                default:
                    level = 1;
                    break;
            }
            return level;
        }
HDL_ON/HDL_ON.projitems
@@ -541,6 +541,8 @@
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Automation\Constant.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneAutomationListChoosePage.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\3-Intelligence\Scene\SceneTargetTypeChoosePage.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Common\AliyunLog\AliyunLogClient.cs" />
    <Compile Include="$(MSBuildThisFileDirectory)Common\AliyunLog\AliyunLogInvokeAsync.cs" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="$(MSBuildThisFileDirectory)Entity\Device\" />
HDL_ON/UI/MainPage.cs
@@ -26,7 +26,7 @@
        /// <summary>
        /// 版本号
        /// </summary>
        public static string VersionString = "2.4.5";
        public static string VersionString = "2.4.8";
        ///// <summary>
        ///// 客户端类型
        ///// </summary>
@@ -649,6 +649,14 @@
#if DEBUG
            Console.WriteLine($"{tag}-->{msg}");
#endif
            if (tag == "error")
            {
                new System.Threading.Thread(async () =>
                {
                    await Common.AliyunLog.AliyunLogClient.PostLogs("自定义Error日志", msg);
                })
                { IsBackground = true }.Start();
            }
        }
HDL_ON/UI/UI0-Public/PublicAssmeblyBLL.cs
@@ -168,7 +168,7 @@
                        break;
                    case SPK.MusicStandard:
                    case SPK.AvMusic:
                        Music.A31MusicModel.Current = new Music.A31MusicModel { functionMusic = function };//当前播放器
                        Music.A31MusicModel.Current = new Music.A31MusicModel { functionMusic = function ,LastDateTime = DateTime.Now};//当前播放器
                        var a31PlayMusicPage = new Music.A31PlayMusicPage();
                        MainPage.BasePageView.AddChidren(a31PlayMusicPage);
                        a31PlayMusicPage.Show();
HDL_ON/UI/UI0-Stan/Logic/HdlMessageLogic.cs
@@ -90,6 +90,13 @@
                form.SetTextContent(msg);
            }, "ok");
            //上报日志服务器
            new System.Threading.Thread(async () =>
            {
                await Common.AliyunLog.AliyunLogClient.PostLogs("App程序错误", ex.Message + "\r\n" + ex.StackTrace);
            })
            { IsBackground = true }.Start();
        }
        /// <summary>
@@ -105,6 +112,12 @@
                form.SetTextContent(msg);
            }, "ok");
            //上报日志服务器
            new System.Threading.Thread(async () =>
            {
                await Common.AliyunLog.AliyunLogClient.PostLogs("App程序错误", msg);
            })
            { IsBackground = true }.Start();
        }
HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -553,6 +553,17 @@
                LoadContentView();
                #endregion
#if DEBUG
                btnResidenceName.MouseUpEventHandler = (envent, ee) => {
                    MainPage.Log("sss");
                    new System.Threading.Thread(async() =>
                    {
                        await Common.AliyunLog.AliyunLogClient.PostLogs("告警测试", "测试信息测试信息测试信息测试信息测试信息测试信息测试信息测试信息测试信息测试信息测试信息测试信息测试信息");
                    })
                    { IsBackground = true }.Start();
                };
#endif
            }
            catch (Exception ex)
            {
HDL_ON/UI/UI2/3-Intelligence/IntelligencePage.cs
@@ -727,7 +727,7 @@
        {
            btnAddIcon.MouseUpEventHandler = (sender, e) =>
            {
                if (btnSecurityTitle.IsSelected)
                if (btnSecurityTitle != null && btnSecurityTitle.IsSelected)
                {
                    return;
                }
HDL_ON/UI/UI2/FuntionControlView/Music/A31PlayMusicPage.cs
@@ -465,7 +465,7 @@
                            if (A31MusicModel.Current.functionMusic.GetAttrState(KeyProperty.on_off) == ValueProperty.on)
                            {
                                //音乐在播放时,再计算播放时间(现在时间=原来时间+1秒)
                                playSecond += (int)(DateTime.Now - A31MusicModel.Current.LastDateTime).TotalSeconds;
                                //playSecond += (int)(DateTime.Now - A31MusicModel.Current.LastDateTime).TotalSeconds;
                                playSecond += 1;//表示加上等待的时间1s
                                ///歌曲记录暂时时间写入缓存;
                                A31MusicModel.Current.functionMusic.SetAttrState(KeyProperty.playing_time, playSecond);
SiriIntents/Server/HttpUtil.cs
@@ -22,8 +22,8 @@
        //public const string GlobalRequestHttpsHost = "https://test-gz.hdlcontrol.com";
        //const string APP_KEY = "HDL-HOME-APP-TEST";
        //const string SECRET_KEY = "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss";
        //public const string APP_KEY = "HDL-HOME-APP-TEST";
        //public const string SECRET_KEY = "WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss";
        //public const string GlobalRequestHttpsHost = "http://59.41.255.150:7777";//mmmm
SiriIntents/SiriIntents.csproj
@@ -37,7 +37,7 @@
    <DefineConstants></DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <CodesignKey>Apple Development: xuebiao huang (4P32GXQWWK)</CodesignKey>
    <CodesignKey>Apple Distribution: HDL Automation Co., Ltd (BVTA78PRYA)</CodesignKey>
    <MtouchUseLlvm>true</MtouchUseLlvm>
    <MtouchFloat32>true</MtouchFloat32>
    <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
@@ -45,7 +45,7 @@
    <MtouchArch>ARM64</MtouchArch>
    <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
    <MtouchVerbosity></MtouchVerbosity>
    <CodesignProvision>OnProSiri230729-1-Dev</CodesignProvision>
    <CodesignProvision>0002-OnProSiri-240703-1-Hoc</CodesignProvision>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
    <DebugType>pdbonly</DebugType>
SiriIntentsUI/SiriIntentsUI.csproj
@@ -38,7 +38,7 @@
    <DefineConstants></DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <CodesignKey>Apple Development: xuebiao huang (4P32GXQWWK)</CodesignKey>
    <CodesignKey>Apple Distribution: HDL Automation Co., Ltd (BVTA78PRYA)</CodesignKey>
    <MtouchUseLlvm>true</MtouchUseLlvm>
    <MtouchFloat32>true</MtouchFloat32>
    <CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
@@ -47,7 +47,7 @@
    <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
    <MtouchVerbosity></MtouchVerbosity>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    <CodesignProvision>OnProSiriUI230729-1-Dev</CodesignProvision>
    <CodesignProvision>0002-OnProSiriUI-240703-1-Hoc</CodesignProvision>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
    <DebugType>pdbonly</DebugType>
@@ -85,7 +85,7 @@
    <MtouchHttpClientHandler>NSUrlSessionHandler</MtouchHttpClientHandler>
    <MtouchVerbosity></MtouchVerbosity>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    <CodesignProvision>OnProSiriUI230729-1-Dev</CodesignProvision>
    <CodesignProvision>0002-OnProSiriUI-240704-1-Dev</CodesignProvision>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />