/// <summary>
 /// 发送指令到设备
 /// </summary>
 /// <param name="order"></param>
 /// <returns></returns>
 public string ToSTM32(byte[] order)
 {
     if (order != null)
     {
         byte[] data = BuffersWriter.Merge(order, Encoding.UTF8.GetBytes(new char[] { '\r', '\n' }));
         data = BuffersWriter.Merge(BuffersWriter.GetBytes(data.Length + 4), data);
         try
         {
             Buffer.BlockCopy(data, 0, SendBuff, 0, data.Length);
             SendEventArgs.SetBuffer(0, data.Length);
             if (!socket.SendAsync(SendEventArgs))
             {
                 Array.Clear(SendBuff, 0, SendBuff.Length);
             }
         }
         catch (ArgumentNullException ex)
         {
             return("无法连接到硬件");
         }
         catch (Exception e)
         {
             return(e.Message);
         }
     }
     return("完成");
 }
 void send(object data)
 {
     if (data != null)
     {
         isSending = true;
         byte[] buff = (byte[])data;
         buff = BuffersWriter.Merge(BuffersWriter.GetBytes(buff.Length + 4), buff);
         Buffer.BlockCopy(buff, 0, SendBuff, 0, buff.Length);
         SendEventArgs.SetBuffer(0, buff.Length);
         if (!socket.SendAsync(SendEventArgs))
         {
             Array.Clear(SendBuff, 0, SendBuff.Length);
         }
     }
 }
 /// <summary>
 /// 红外发射
 /// </summary>
 /// <returns></returns>
 public byte[] IRSend()
 {
     return(BuffersWriter.Merge(BuffersWriter.GetBytes((int)Operations.IRSend), BuffersWriter.GetBytes(Pwd, Encoding.UTF8)));
 }
 /// <summary>
 /// 设置脉冲宽度
 /// </summary>
 /// <param name="pin">引脚号</param>
 /// <param name="value">脉冲值</param>
 /// <returns></returns>
 public byte[] SetPWM(int pin, byte value)
 {
     return(BuffersWriter.Merge(BuffersWriter.GetBytes((int)Operations.SetPWM), BuffersWriter.GetBytes(Pwd, Encoding.UTF8),
                                BuffersWriter.GetBytes((byte)pin), BuffersWriter.GetBytes(value)));
 }
 /// <summary>
 /// 获取数字端口和模拟端口状态
 /// </summary>
 /// <returns></returns>
 public byte[] GetDigitalAndAnalog()
 {
     return(BuffersWriter.Merge(BuffersWriter.GetBytes((int)Operations.GetDigitalAndAnalog), BuffersWriter.GetBytes(Pwd, Encoding.UTF8)));
 }
 /// <summary>
 /// 设置数字端口电平
 /// </summary>
 /// <param name="pin"></param>
 /// <param name="level"></param>
 /// <returns></returns>
 public byte[] SetDigitalLevel(int pin, DigitalLevel level)
 {
     return(BuffersWriter.Merge(BuffersWriter.GetBytes((int)Operations.SetDigital), BuffersWriter.GetBytes(Pwd, Encoding.UTF8),
                                BuffersWriter.GetBytes((byte)pin), BuffersWriter.GetBytes((byte)level)));
 }
 /// <summary>
 /// DHT11温湿度传感器操作
 /// </summary>
 /// <returns></returns>
 public byte[] GetDHT1x()
 {
     return(BuffersWriter.Merge(BuffersWriter.GetBytes((int)Operations.GetDHT1x), BuffersWriter.GetBytes(Pwd, Encoding.UTF8)));
 }