You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

274 lines
9.9 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

//using BarcodeScan;
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Threading;
//using System.Threading.Tasks;
//namespace Sys.Utilities
//{
// /// <summary>
// /// 报警灯工具类
// /// </summary>
// public class WaringLightUtil
// {
// private static ScanProvider _scanner;
// private static string _portName;
// private static int _baudRate;
// private static Thread thread;
// #region 打开
// /// <summary>
// /// 打开串口 portName 端口 baudRate 波特率
// /// </summary>
// /// <param name="portName">端口</param>
// /// <param name="baudRate">波特率</param>
// /// <returns></returns>
// public static bool Open(string portName, int baudRate)
// {
// _portName = portName;
// _baudRate = baudRate;
// return InitScanner();
// }
// private static bool InitScanner()
// {
// bool connFlag = false;
// try
// {
// // 打开串口
// _scanner = new ScanProvider(_portName, _baudRate);
// // 打开串口
// if (_scanner.Open())
// {
// connFlag = true;
// }
// else
// {
// connFlag = false;
// }
// }
// catch (Exception ex)
// {
// connFlag = false;
// }
// return connFlag;
// }
// #endregion
// /// <summary>
// /// 开启或关闭报警灯status1开启、2关闭autoClosed是否自动关闭
// /// </summary>
// /// <param name="status">1开启2关闭</param>
// /// <param name="autoClosed">是否自动关闭</param>
// //public static void AlarmLamp(int status, bool autoClosed = true)
// //{
// // try
// // {
// // if (status == 1)
// // {
// // WaringLightUtil.WriteData(1, 2);
// // Thread.Sleep(100);
// // WaringLightUtil.WriteData(3, 1);
// // Thread.Sleep(100);
// // WaringLightUtil.WriteData(4, 1);
// // if (autoClosed == true)
// // {
// // thread = new Thread(CloseAlarmLampThree)
// // {
// // IsBackground = true
// // };
// // thread.Start();
// // }
// // }
// // else
// // {
// // WaringLightUtil.WriteData(1, 1);
// // Thread.Sleep(100);
// // WaringLightUtil.WriteData(3, 2);
// // Thread.Sleep(100);
// // WaringLightUtil.WriteData(4, 2);
// // }
// // }
// // catch (Exception)
// // {
// // }
// //}
// //private static void CloseAlarmLampThree()
// //{
// // try
// // {
// // Thread.Sleep(5000);
// // WaringLightUtil.WriteData(1, 1);
// // Thread.Sleep(100);
// // WaringLightUtil.WriteData(3, 2);
// // Thread.Sleep(100);
// // WaringLightUtil.WriteData(4, 2);
// // }
// // catch(Exception)
// // {
// // }
// //}
// public static void TriggerReleaseOne()
// {
// try
// {
// WaringLightUtil.WriteData(1, 1);
// Thread.Sleep(1000);
// WaringLightUtil.WriteData(1, 2);
// }
// catch (Exception)
// {
// }
// }
// #region 发送数据
// /// <summary>
// /// 数据发送 层数layer 1绿 2黄 3红 4锋鸣 状态lampStatus 打开 1 关闭2
// /// </summary>
// /// <param name="layer">层数 1 2 3 4</param>
// /// <param name="lampStatus">状态 打开 1 关闭2</param>
// public static void WriteData(int layer, int lampStatus)
// {
// byte[] NormalDataBuff = new byte[8];
// NormalDataBuff[0] = 0x01;
// NormalDataBuff[1] = 0x05;
// NormalDataBuff[2] = 0x00;
// if (layer == 1) {
// NormalDataBuff[3] = 0X00;
// }
// if (layer == 2)
// {
// NormalDataBuff[3] = 0X01;
// }
// if (layer == 3)
// {
// NormalDataBuff[3] = 0X02;
// }
// if (layer == 4)
// {
// NormalDataBuff[3] = 0X03;
// }
// if (lampStatus == 1)
// {
// NormalDataBuff[4] = 0xFF;
// }
// else {
// NormalDataBuff[4] = 0x00;
// }
// NormalDataBuff[5] = 0x00;
// int CRCBuff = CRC16(NormalDataBuff, 0, 5);
// string bb = Convert.ToString(CRCBuff, 16).ToUpper().PadLeft(4, '0');
// NormalDataBuff[6] = Convert.ToByte(bb.Substring(0, 2), 16);//CRC 校验低位
// NormalDataBuff[7] = Convert.ToByte(bb.Substring(2, 2), 16);//CRC 校验低位
// _scanner.Write(NormalDataBuff, 0, 8);
// }
// #endregion
// #region CRC
// private static readonly byte[] _auchCRCHi = new byte[]//crc高位表
// {
// 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
// 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
// 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
// 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
// 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
// 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
// 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
// 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
// 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
// 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,
// 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
// 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
// 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
// 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,
// 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
// 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
// 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
// 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
// 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
// 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
// 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
// 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,
// 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
// 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
// 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
// 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40
// };
// private static readonly byte[] _auchCRCLo = new byte[]//crc低位表
// {
// 0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06,
// 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD,
// 0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,
// 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A,
// 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4,
// 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,
// 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3,
// 0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4,
// 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,
// 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29,
// 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED,
// 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,
// 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60,
// 0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67,
// 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F,
// 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68,
// 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E,
// 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,
// 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71,
// 0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92,
// 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,
// 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B,
// 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B,
// 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,
// 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42,
// 0x43, 0x83, 0x41, 0x81, 0x80, 0x40
// };
// public static ushort CRC16(Byte[] buffer, int Sset, int Eset)
// {
// byte crcHi = 0xff; // 高位初始化
// byte crcLo = 0xff; // 低位初始化
// for (int i = Sset; i <= Eset; i++)
// {
// int crcIndex = crcHi ^ buffer[i]; //查找crc表值
// crcHi = (byte)(crcLo ^ _auchCRCHi[crcIndex]);
// crcLo = _auchCRCLo[crcIndex];
// }
// return (ushort)(crcHi << 8 | crcLo);
// }
// }
// #endregion
//}