Files
wcs/WCS.BLL/HardWare/IWarningLightBase.cs

123 lines
3.8 KiB
C#

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)
{
}
}
/// <summary>
/// 蓝色报警灯常亮
/// </summary>
/// <param name="tcpClient"></param>
public void BlueLight(TCPClient tcpClient)
{
LightOperation(LightColorEnum., LightModeEnum., LightBuzzerStatus., tcpClient);
}
/// <summary>
/// 绿色报警灯常亮
/// </summary>
/// <param name="tcpClient"></param>
public void GreenLight(TCPClient tcpClient)
{
LightOperation(LightColorEnum.绿, LightModeEnum., LightBuzzerStatus., tcpClient);
}
/// <summary>
/// 关闭报警灯
/// </summary>
/// <param name="tcpClient"></param>
public void CloseLight(TCPClient tcpClient)
{
LightOperation(LightColorEnum., LightModeEnum., LightBuzzerStatus., tcpClient);
}
/// <summary>
/// 红色报警灯 响3秒 蓝灯结束
/// </summary>
/// <param name="tcpClient"></param>
public void WaringLightBlueEnd(TCPClient tcpClient)
{
LightOperation(LightColorEnum., LightModeEnum., LightBuzzerStatus., tcpClient, 0x22);
Thread.Sleep(3300);
BlueLight(tcpClient);
}
/// <summary>
/// 红色报警灯 响3秒 红灯结束
/// </summary>
/// <param name="tcpClient"></param>
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);
}
}
}