diff --git a/DM_Weight/App.config b/DM_Weight/App.config index 6dbd23f..37d69bf 100644 --- a/DM_Weight/App.config +++ b/DM_Weight/App.config @@ -20,7 +20,7 @@ - + diff --git a/DM_Weight/Port/PortUtil.cs b/DM_Weight/Port/PortUtil.cs index 77875a0..9545e42 100644 --- a/DM_Weight/Port/PortUtil.cs +++ b/DM_Weight/Port/PortUtil.cs @@ -1041,6 +1041,7 @@ namespace DM_Weight.Port Array.Resize(ref contentBuf, contentBuf.Length + 1); } byte[] buffer = new byte[] { 0xaa, (byte)channel, 1, (byte)type, 0, 0, 0, 0xee }; + logger.Info($"buffer:{Convert.ToHexString(buffer)}"); canBusSerial.Write(buffer, 0, 8); //await Task.Delay(20); Thread.Sleep(20); @@ -1050,6 +1051,7 @@ namespace DM_Weight.Port buffer[5] = contentBuf[i]; buffer[6] = contentBuf[i + 1]; canBusSerial.Write(buffer, 0, 8); + logger.Info($"buffer:{Convert.ToHexString(buffer)}"); //await Task.Delay(20); Thread.Sleep(20); } @@ -1089,6 +1091,7 @@ namespace DM_Weight.Port canBusSerial.DiscardInBuffer(); int channel = ((drawerNo > 8 ? (drawerNo - 8) * 2 : (drawerNo * 2 - 1)) - 1) * this.labelCount + 10 + colNo; byte[] buffer = new byte[] { 0xaa, (byte)channel, 2, 0, 0, 0, 0, 0xee }; + logger.Info($"刷新显示内容buffer:{Convert.ToHexString(buffer)}"); canBusSerial.Write(buffer, 0, 8); } catch (Exception ex) @@ -1145,14 +1148,14 @@ namespace DM_Weight.Port buffer[6] = (byte)(quantity & 0xff); logger.Info($"写入数量buffer:{Convert.ToHexString(buffer)}"); canBusSerial.Write(buffer, 0, 8); - Task task = GetBufferByPort(canBusSerial, 8); - if (task.Status == TaskStatus.Created) - { - task.Start(); + //Task task = GetBufferByPort(canBusSerial, 8); + //if (task.Status == TaskStatus.Created) + //{ + // task.Start(); - } - byte[] bytes = task.Result; - logger.Info($"写入数量返回:" + Convert.ToHexString(bytes)); + //} + //byte[] bytes = task.Result; + //logger.Info($"写入数量返回:" + Convert.ToHexString(bytes)); } catch (Exception ex) { diff --git a/DM_Weight/ViewModels/BindingChannelNewDialogViewModel.cs b/DM_Weight/ViewModels/BindingChannelNewDialogViewModel.cs index acb7f06..c0af7f4 100644 --- a/DM_Weight/ViewModels/BindingChannelNewDialogViewModel.cs +++ b/DM_Weight/ViewModels/BindingChannelNewDialogViewModel.cs @@ -19,6 +19,8 @@ using DM_Weight.util; using log4net; using System.Threading; using System.Reflection.Metadata.Ecma335; +using System.Windows.Threading; +using System.Windows; namespace DM_Weight.ViewModels { @@ -518,81 +520,78 @@ namespace DM_Weight.ViewModels /// public DelegateCommand ResetLabelCommand { - get => new DelegateCommand(() => + get => new DelegateCommand(ResetLabelMethod, () => Status == false); + } + private void ResetLabelMethod() + { + if (Channels != null) { - - var SelectChannels = Channels.FindAll(item => item.IsSelected); - var c = SelectChannels.Count; - if (c > 0) - { - List tasks = new List(); - SelectChannels.ForEach(async item => + Task t = new Task(() => + { + var SelectChannels = Channels.FindAll(item => item.IsSelected && item.BoardType == 5); + var c = SelectChannels.Count; + if (c > 0) { - //var channelStock = SqlSugarHelper.Db.Queryable().Where(cs => cs.Chnguid == item.Id).ToList(); - - if (item.BoardType == 5) + Status = true; + SelectChannels.ForEach(item => { - - Status = true; if (item.DrugId == null) { // 清除显示屏库位信息 _portUtil.ClearContent(item.DrawerNo, item.ColNo); - //await Task.Delay(200000); - //Thread.Sleep(200); - tasks.Add(TaskSleep()); + Thread.Sleep(200); _portUtil.ShowContent(item.DrawerNo, item.ColNo); + Thread.Sleep(200); } else { - DrugInfo drugSelected = item.Drug; + DrugInfo drugSelected = item.Drug ?? new DrugInfo(); _portUtil.WindowName = "BindingChannelDialog"; // 向显示屏写入库位信息 - _portUtil.WriteChannelInfo(1, drugSelected.DrugName, item.DrawerNo, item.ColNo); - //await Task.Delay(200000000); - //Thread.Sleep(200); - tasks.Add(TaskSleep()); - _portUtil.WriteChannelInfo(2, drugSelected.DrugSpec, item.DrawerNo, item.ColNo); - //await Task.Delay(200); - //Thread.Sleep(200); - tasks.Add(TaskSleep()); - _portUtil.WriteChannelInfo(8, drugSelected.Manufactory.Length > 10 ? drugSelected.Manufactory.Substring(0, 10) : drugSelected.Manufactory, item.DrawerNo, item.ColNo); - //await Task.Delay(200); - //Thread.Sleep(200); - tasks.Add(TaskSleep()); + _portUtil.WriteChannelInfo(1, drugSelected.DrugName ?? "", item.DrawerNo, item.ColNo); + Thread.Sleep(200); + _portUtil.WriteChannelInfo(2, drugSelected.DrugSpec ?? "", item.DrawerNo, item.ColNo); + Thread.Sleep(200); + _portUtil.WriteChannelInfo(8, drugSelected.Manufactory == null ? "" : drugSelected.Manufactory.Length > 10 ? drugSelected.Manufactory.Substring(0, 10) : drugSelected.Manufactory, item.DrawerNo, item.ColNo); + Thread.Sleep(200); _portUtil.ShowContent(item.DrawerNo, item.ColNo); - //_portUtil.WriteChannelInfo(6, DrugManuNo.EffDate==null?"": DrugManuNo.EffDate, item.DrawerNo, item.ColNo); - //await Task.Delay(200); - //Thread.Sleep(200); - tasks.Add(TaskSleep()); + Thread.Sleep(200); _portUtil.WriteQuantity(item.DrawerNo, item.ColNo, item.totalCount); - //await Task.Delay(200); } - } - }); - Task.WhenAll(tasks); + }); + } + else + { + Application.Current.Dispatcher.Invoke(() => + { + SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c")); + SnackbarMessageQueue.Enqueue("未选择库位或所选库位无标签"); + }); + } + }); + t.Start(); + t.ContinueWith(task => + { if (Status.Equals(true)) { - SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#00e676")); - SnackbarMessageQueue.Enqueue("操作完成!"); Status = false; - } - GetChannelsByDrawerNo(); - } - else - { + Application.Current.Dispatcher.Invoke(() => + { - SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#b71c1c")); - SnackbarMessageQueue.Enqueue("请选择库位"); - return; - } - }, () => Status == false); - } - static async Task TaskSleep() - { - await Task.Delay(200); + SnackbarBackground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#00e676")); + SnackbarMessageQueue.Enqueue("操作完成!"); + GetChannelsByDrawerNo(); + }); + } + }); + } } + //static Task TaskSleep() + //{ + // //await Task.Delay(200); + // Thread.Sleep(200); + //} public DelegateCommand BtnCloseCommand { get => new DelegateCommand(() => diff --git a/DM_Weight/Views/Dialog/BindingChannelNewDialog.xaml b/DM_Weight/Views/Dialog/BindingChannelNewDialog.xaml index 04f041f..6e1f72c 100644 --- a/DM_Weight/Views/Dialog/BindingChannelNewDialog.xaml +++ b/DM_Weight/Views/Dialog/BindingChannelNewDialog.xaml @@ -250,7 +250,7 @@ InfoTextIsEnabel="True" /> diff --git a/DM_Weight/Views/HomeWindow.xaml b/DM_Weight/Views/HomeWindow.xaml index 40ca609..56d8980 100644 --- a/DM_Weight/Views/HomeWindow.xaml +++ b/DM_Weight/Views/HomeWindow.xaml @@ -26,7 +26,9 @@ - + + +