/// <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))); }