using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WCS.BLL.HardWare { public class WarningLight { #region 关于协议的几个枚举 public enum LightColorEnum { 红色 = 0x01, 绿色 = 0x02, 蓝色 = 0x03, //关闭仅用于后台暂存和判断使用 不用于协议 关闭 = 0x11, } public enum LightModeEnum { 关闭 = 0x00, 常亮 = 0x01, 闪烁 = 0x02, 短亮一次 = 0x03 } public enum LightBuzzerStatus { 关闭 = 0x00, 循环鸣叫 = 0x01, 鸣叫一次 = 0x02 } #endregion public int LightId { get; set; } = 2047; public void LightOperation(LightColorEnum lightColor, LightModeEnum lightMode, LightBuzzerStatus lightBuzzerStatus, TCPClient tcpClient, byte time = 0x00) { try { var data = new byte[8] { 0x20, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00 }; data[2] = (byte)lightColor; data[3] = (byte)lightMode; data[5] = (byte)lightBuzzerStatus; //Only For Debug //data[5] = (byte)LightBuzzerStatus.关闭; data[4] = time;//灯短亮一次的时间 data[6] = time;//蜂鸣器持续鸣叫的时间 tcpClient.Send(tcpClient.GenerateMessage(LightId, data)); return; } catch (Exception ex) { } } /// /// 蓝色报警灯常亮 /// /// public void BlueLight(TCPClient tcpClient) { LightOperation(LightColorEnum.蓝色, LightModeEnum.常亮, LightBuzzerStatus.关闭, tcpClient); } /// /// 绿色报警灯常亮 /// /// public void GreenLight(TCPClient tcpClient) { LightOperation(LightColorEnum.绿色, LightModeEnum.常亮, LightBuzzerStatus.关闭, tcpClient); } /// /// 关闭报警灯 /// /// public void CloseLight(TCPClient tcpClient) { LightOperation(LightColorEnum.蓝色, LightModeEnum.关闭, LightBuzzerStatus.关闭, tcpClient); } /// /// 红色报警灯 响3秒 蓝灯结束 /// /// public void WaringLightBlueEnd(TCPClient tcpClient) { LightOperation(LightColorEnum.红色, LightModeEnum.短亮一次, LightBuzzerStatus.鸣叫一次, tcpClient, 0x22); Thread.Sleep(3300); BlueLight(tcpClient); } /// /// 红色报警灯 响3秒 红灯结束 /// /// public void WaringLightAlwaysRed(TCPClient tcpClient) { LightOperation(LightColorEnum.红色, LightModeEnum.常亮, LightBuzzerStatus.鸣叫一次, tcpClient, 0x22); } public void SuccessLightBlueEnd(TCPClient tcpClient) { LightOperation(LightColorEnum.绿色, LightModeEnum.短亮一次, LightBuzzerStatus.鸣叫一次, tcpClient, 0x03); Thread.Sleep(300); BlueLight(tcpClient); } public void SuccessLightGreenEnd(TCPClient tcpClient) { LightOperation(LightColorEnum.绿色, LightModeEnum.短亮一次, LightBuzzerStatus.鸣叫一次, tcpClient, 0x03); Thread.Sleep(300); GreenLight(tcpClient); } } }