语音添加取消及恢复
This commit is contained in:
		
							parent
							
								
									6b1a640995
								
							
						
					
					
						commit
						e6ffeffc11
					
				| 
						 | 
				
			
			@ -1,64 +0,0 @@
 | 
			
		|||
using DM_Weight.ViewModels;
 | 
			
		||||
using FluentModbus;
 | 
			
		||||
using log4net;
 | 
			
		||||
using Polly;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Net;
 | 
			
		||||
using System.Speech.Synthesis;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
 | 
			
		||||
namespace DM_Weight.Port
 | 
			
		||||
{
 | 
			
		||||
    public class ModBusTcpClientHelper
 | 
			
		||||
    {
 | 
			
		||||
        public static ModbusTcpClient client;
 | 
			
		||||
        public static bool BoxOperate { get; set; }
 | 
			
		||||
        private readonly ILog logger = LogManager.GetLogger(typeof(CheckOrderNewWindowViewModel));
 | 
			
		||||
        public static ModbusTcpClient GetInstance()
 | 
			
		||||
        {
 | 
			
		||||
            if (client == null)
 | 
			
		||||
            {
 | 
			
		||||
                client = new ModbusTcpClient();
 | 
			
		||||
                client.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 4002), ModbusEndianness.BigEndian);
 | 
			
		||||
            }
 | 
			
		||||
            else if (!client.IsConnected)
 | 
			
		||||
            {
 | 
			
		||||
                client.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 4002), ModbusEndianness.BigEndian);
 | 
			
		||||
            }
 | 
			
		||||
            return client;
 | 
			
		||||
        }
 | 
			
		||||
        public bool OpenBoxDoor(int boxNum)
 | 
			
		||||
        {
 | 
			
		||||
            bool bFlag = false;
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                BoxOperate = true;
 | 
			
		||||
                Thread.Sleep(50);
 | 
			
		||||
                client.WriteSingleRegister(1, (ushort)boxNum, 0);
 | 
			
		||||
                logger.Info($"开门指令已发送{(ushort)boxNum}");
 | 
			
		||||
                SpeakAsync("药箱已打开,请及时关闭");
 | 
			
		||||
                bFlag = true;
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception ex)
 | 
			
		||||
            {
 | 
			
		||||
                SpeakAsync("药箱已打开,请及时关闭");
 | 
			
		||||
                logger.Info($"药箱已打开异常:{ex.Message}");
 | 
			
		||||
            }
 | 
			
		||||
            return bFlag;
 | 
			
		||||
        }
 | 
			
		||||
        public bool[] GetAllBoxState()
 | 
			
		||||
        {
 | 
			
		||||
            bool[] state = new bool[1];
 | 
			
		||||
            return state;
 | 
			
		||||
        }
 | 
			
		||||
        private static SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer();
 | 
			
		||||
        public static void SpeakAsync(string textinfo)
 | 
			
		||||
        {
 | 
			
		||||
            speechSynthesizer.SpeakAsync(textinfo);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -15,6 +15,7 @@ using System.Collections.Generic;
 | 
			
		|||
using System.Configuration;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Net;
 | 
			
		||||
using System.Speech.Synthesis;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
| 
						 | 
				
			
			@ -118,5 +119,11 @@ namespace DM_Weight.Port
 | 
			
		|||
        {
 | 
			
		||||
            iConnectFuture.Session.Write(baseMessage);
 | 
			
		||||
        }
 | 
			
		||||
        public SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer();
 | 
			
		||||
        public void SpeakAsync(string textinfo)
 | 
			
		||||
        {
 | 
			
		||||
            speechSynthesizer.Rate = 2;
 | 
			
		||||
            speechSynthesizer.SpeakAsync(textinfo);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -834,7 +834,9 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
            //bool allFalse = Array.TrueForAll(bools, b => b == false);
 | 
			
		||||
            if (_socketHelper.OpenStatus)
 | 
			
		||||
            {
 | 
			
		||||
                ModbusHelper.SpeakAsync("请关闭药箱后再打开");
 | 
			
		||||
                _socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
 | 
			
		||||
                _socketHelper.speechSynthesizer.Resume();
 | 
			
		||||
                _socketHelper.SpeakAsync("请关闭药箱后再打开");
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            //if (_socketHelper.OpenStatus)
 | 
			
		||||
| 
						 | 
				
			
			@ -857,7 +859,9 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                DrawerNo -= 1;
 | 
			
		||||
                RequestData();
 | 
			
		||||
                Status = 1;
 | 
			
		||||
                ModbusHelper.SpeakAsync($"正在打开{DrawerNo + 1}号药箱");
 | 
			
		||||
                _socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
 | 
			
		||||
                _socketHelper.speechSynthesizer.Resume();
 | 
			
		||||
                _socketHelper.SpeakAsync($"正在打开{DrawerNo + 1}号药箱");
 | 
			
		||||
                //记录开药箱日志
 | 
			
		||||
                SqlSugarHelper.Db.Insertable(machineRecord).ExecuteCommand();
 | 
			
		||||
                try
 | 
			
		||||
| 
						 | 
				
			
			@ -901,7 +905,9 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                            {
 | 
			
		||||
                                if (i == 0)
 | 
			
		||||
                                {
 | 
			
		||||
                                    ModbusHelper.SpeakAsync("请及时关闭药箱");
 | 
			
		||||
                                    _socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
 | 
			
		||||
                                    _socketHelper.speechSynthesizer.Resume();
 | 
			
		||||
                                    _socketHelper.SpeakAsync("请及时关闭药箱");
 | 
			
		||||
                                    i = 80;
 | 
			
		||||
                                }
 | 
			
		||||
                                next();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -625,7 +625,9 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
            //if (!allFalse)
 | 
			
		||||
            if (_socketHelper.OpenStatus)
 | 
			
		||||
            {
 | 
			
		||||
                ModbusHelper.SpeakAsync("请关闭药箱后再打开");
 | 
			
		||||
                _socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
 | 
			
		||||
                _socketHelper.speechSynthesizer.Resume();
 | 
			
		||||
                _socketHelper.SpeakAsync("请关闭药箱后再打开");
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
            iList = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cl => cl.MachineId == "DM5" && cl.DrawerType == this.DrawerType && cl.DrawerNo == DrawerNo)
 | 
			
		||||
| 
						 | 
				
			
			@ -657,7 +659,10 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                channelList.DrawerState = SelfContent.Substring(0, 1) == "取" ? 0 : 1;
 | 
			
		||||
                SqlSugarHelper.Db.Updateable(channelList).UpdateColumns(it => new { it.EffDate, it.DrawerState }).ExecuteCommand();
 | 
			
		||||
 | 
			
		||||
                ModbusHelper.SpeakAsync($"正在打开{DrawerNo}号药箱");
 | 
			
		||||
                //ModbusHelper.SpeakAsync($"正在打开{DrawerNo}号药箱");
 | 
			
		||||
                _socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
 | 
			
		||||
                _socketHelper.speechSynthesizer.Resume();
 | 
			
		||||
                _socketHelper.SpeakAsync($"正在打开{DrawerNo}号药箱");
 | 
			
		||||
 | 
			
		||||
                try
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			@ -733,7 +738,9 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                            {
 | 
			
		||||
                                if (i == 0)
 | 
			
		||||
                                {
 | 
			
		||||
                                    ModbusHelper.SpeakAsync("请及时关闭药箱");
 | 
			
		||||
                                    _socketHelper.speechSynthesizer.SpeakAsyncCancelAll();
 | 
			
		||||
                                    _socketHelper.speechSynthesizer.Resume();
 | 
			
		||||
                                    _socketHelper.SpeakAsync("请及时关闭药箱");
 | 
			
		||||
                                    i = 80;
 | 
			
		||||
                                }
 | 
			
		||||
                                next();
 | 
			
		||||
| 
						 | 
				
			
			@ -741,7 +748,7 @@ namespace DM_Weight.ViewModels
 | 
			
		|||
                            else
 | 
			
		||||
                            {
 | 
			
		||||
                                _socketHelper.IsMultiThread = false;
 | 
			
		||||
                                _socketHelper.dateTime=DateTime.Now;
 | 
			
		||||
                                _socketHelper.dateTime = DateTime.Now;
 | 
			
		||||
                                //_socketHelper.OpenStatus = false;
 | 
			
		||||
                                stop();
 | 
			
		||||
                            }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue