wanghan 7 månader sedan
förälder
incheckning
fdbf5b02e1

+ 8 - 0
TeamAAS-VM/Interfaces/ILightManagerService.cs

@@ -71,6 +71,14 @@ namespace TeamAAS_VP.Interfaces
         /// <returns>操作成功返回 true,否则返回 false。</returns>
         /// <returns>操作成功返回 true,否则返回 false。</returns>
         Task<bool> SetGlobalChannelBrightnessAsync(int globalChannelId, int brightness);
         Task<bool> SetGlobalChannelBrightnessAsync(int globalChannelId, int brightness);
 
 
+        /// <summary>
+        /// 获取指定全局通道的亮度值。
+        /// </summary>
+        /// <param name="globalChannelId">目标全局通道 Id。</param>
+        /// <param name="brightness">亮度值,通常在 0 到 100 范围内(具体范围请参照实现)。</param>
+        /// <returns>操作成功返回 true,否则返回 false。</returns>
+        Task<int> GetGlobalChannelBrightnessAsync(int globalChannelId);
+
         /// <summary>
         /// <summary>
         /// 打开指定的全局通道(将其置于开启状态)。
         /// 打开指定的全局通道(将其置于开启状态)。
         /// </summary>
         /// </summary>

+ 1 - 1
TeamAAS-VM/Models/Lights/ChannelConfig.cs

@@ -58,7 +58,7 @@ namespace TeamAAS_VP.Models.Lights
             set { SetProperty(ref _GlobalIndex, value); }
             set { SetProperty(ref _GlobalIndex, value); }
         }
         }
 
 
-        private int _DefaultBrightness = 100;
+        private int _DefaultBrightness = 255;
         /// <summary>
         /// <summary>
         /// 默认亮度(百分比)。
         /// 默认亮度(百分比)。
         /// 范围通常为 0 到 100,表示通道的默认亮度设置。默认值为 100(表示最大亮度)。
         /// 范围通常为 0 到 100,表示通道的默认亮度设置。默认值为 100(表示最大亮度)。

+ 16 - 0
TeamAAS-VM/Services/LightManagerService.cs

@@ -215,6 +215,22 @@ namespace TeamAAS_VP.Services
             return result;
             return result;
         }
         }
 
 
+        /// <summary>
+        /// 获取指定全局通道的亮度值。
+        /// </summary>
+        /// <param name="globalChannelId">全局通道ID</param>
+        /// <returns>操作是否成功</returns>
+        public async Task<int> GetGlobalChannelBrightnessAsync(int globalChannelId)
+        {
+            if (!_globalChannels.TryGetValue(globalChannelId, out var channel))
+                return -1;
+
+            var result = await channel.GetBrightnessAsync();
+            // 触发状态变化事件,通知外部当前通道的开关与亮度状态
+            ChannelStatusChanged?.Invoke(this, new LightChannelEventArgs(channel, channel.IsOn, channel.Brightness));
+            return result;
+        }
+
         /// <summary>
         /// <summary>
         /// 打开指定的全局通道。
         /// 打开指定的全局通道。
         /// </summary>
         /// </summary>

+ 2 - 0
TeamAAS-VM/Services/RemoteCommandService.cs

@@ -1470,6 +1470,7 @@ namespace TeamAAS_VP.Services
                 }
                 }
                 DateTime nowtime = DateTime.Now;
                 DateTime nowtime = DateTime.Now;
                 LogHelper.WriteLogInfo("开始采集图像");
                 LogHelper.WriteLogInfo("开始采集图像");
+                Thread.Sleep(100);
                 var image = camera.Grab();
                 var image = camera.Grab();
                 if (image == null)
                 if (image == null)
                 {
                 {
@@ -2244,6 +2245,7 @@ namespace TeamAAS_VP.Services
                     {
                     {
                         LogHelper.WriteLogInfo($"设置光源通道{lightChannel.GlobalIndex}打开失败!");
                         LogHelper.WriteLogInfo($"设置光源通道{lightChannel.GlobalIndex}打开失败!");
                     }
                     }
+                    await Task.Delay(200);
                     isSucceed = await _lightManagerService.SetGlobalChannelBrightnessAsync(lightChannel.GlobalIndex, lightChannel.DefaultBrightness);
                     isSucceed = await _lightManagerService.SetGlobalChannelBrightnessAsync(lightChannel.GlobalIndex, lightChannel.DefaultBrightness);
                     if (!isSucceed)
                     if (!isSucceed)
                     {
                     {

+ 2 - 0
TeamAAS-VM/ViewModels/Product/CameraParamsViewModel.cs

@@ -460,6 +460,8 @@ namespace TeamAAS_VP.ViewModels.Product
             {
             {
                 if (!(parameter is ChannelConfig channel)) return;
                 if (!(parameter is ChannelConfig channel)) return;
                 await _lightManagerService.TurnOnGlobalChannelAsync(channel.GlobalIndex);
                 await _lightManagerService.TurnOnGlobalChannelAsync(channel.GlobalIndex);
+                int value = await _lightManagerService.GetGlobalChannelBrightnessAsync(channel.GlobalIndex);
+                channel.DefaultBrightness = value;
             }
             }
             catch (Exception ex)
             catch (Exception ex)
             {
             {

+ 1 - 1
TeamAAS-VM/Views/HomeView.xaml

@@ -433,7 +433,7 @@
                             <DataTemplate>
                             <DataTemplate>
                                 <Border BorderThickness="0"
                                 <Border BorderThickness="0"
                                         HorizontalAlignment="Left">
                                         HorizontalAlignment="Left">
-                                    <Label MaxWidth="300"
+                                    <Label MaxWidth="800"
                                            BorderThickness="0"
                                            BorderThickness="0"
                                            Background="Transparent"
                                            Background="Transparent"
                                            Margin="0"
                                            Margin="0"