语音添加取消及恢复
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