/// <summary> /// Reads a virtual pin. /// </summary> /// <param name="vp">The virtual pin to read.</param> public void ReadVirtualPin(VirtualPin vp) { if (Connected) { txMessageId++; List <byte> txMessage = new List <byte>() { ( byte )Command.HARDWARE_SYNC }; txMessage.Add(( byte )(txMessageId >> 8)); txMessage.Add(( byte )(txMessageId)); txMessage.Add(( byte )'v'); txMessage.Add(( byte )'r'); txMessage.Add(0x00); txMessage.AddRange(ASCIIEncoding.ASCII.GetBytes(vp.Pin.ToString())); int msgLength = txMessage.Count - 3; txMessage.Insert(3, ( byte )((msgLength) >> 8)); txMessage.Insert(4, ( byte )((msgLength))); WriteToTcpStream(txMessage); } }
/// <summary> /// This is the widget set property sender /// </summary> /// <param name="vp">The virtual pin with properties to send.</param> public void SetProperty(VirtualPin vp) { if (Connected) { txMessageId++; List <byte> txMessage = new List <byte>(); int startCount = 0; foreach (Tuple <object, object> p in vp.Property) { startCount = txMessage.Count; txMessage.Add((byte)Command.SET_WIDGET_PROPERTY); txMessage.Add(( byte )(txMessageId >> 8)); txMessage.Add(( byte )(txMessageId)); txMessage.AddRange(ASCIIEncoding.ASCII.GetBytes(vp.Pin.ToString())); txMessage.Add(0x00); txMessage.AddRange(ASCIIEncoding.ASCII.GetBytes(p.Item1.ToString())); txMessage.Add(0x00); txMessage.AddRange(ASCIIEncoding.ASCII.GetBytes(p.Item2.ToString())); int msgLength = (txMessage.Count - startCount) - 3; txMessage.Insert(startCount + 3, ( byte )((msgLength) >> 8)); txMessage.Insert(startCount + 4, ( byte )((msgLength))); } WriteToTcpStream(txMessage); } }
/// <summary> /// This is the virtual pin sender. /// </summary> /// <param name="vp">The virtual pin to send.</param> public void SendVirtualPin(VirtualPin vp) { if (Connected) { txMessageId++; List <byte> txMessage = new List <byte>() { (byte)Command.HARDWARE }; txMessage.Add(( byte )(txMessageId >> 8)); txMessage.Add(( byte )(txMessageId)); PrepareVirtualWrite(vp, txMessage); WriteToTcpStream(txMessage); } }
internal void BridgeVirtualWrite(int b, VirtualPin vp) { if (Connected) { txMessageId++; List <byte> txMessage = new List <byte>() { ( byte )Command.BRIDGE }; txMessage.Add(( byte )(txMessageId >> 8)); txMessage.Add(( byte )(txMessageId)); txMessage.AddRange(ASCIIEncoding.ASCII.GetBytes(b.ToString())); txMessage.Add(( byte )(0x00)); PrepareVirtualWrite(vp, txMessage); WriteToTcpStream(txMessage); } }
public static void PrepareVirtualWrite(VirtualPin vp, List <byte> txMessage) { txMessage.Add(( byte )'v'); txMessage.Add(( byte )'w'); txMessage.Add(0x00); txMessage.AddRange(ASCIIEncoding.ASCII.GetBytes(vp.Pin.ToString())); txMessage.Add(0x00); foreach (object o in vp.Value) { txMessage.AddRange(ASCIIEncoding.ASCII.GetBytes(o.ToString().Replace(',', '.'))); txMessage.Add(0x00); } txMessage.RemoveAt(txMessage.Count - 1); int msgLength = txMessage.Count - 3; txMessage.Insert(3, ( byte )((msgLength) >> 8)); txMessage.Insert(4, ( byte )((msgLength))); }
public void VirtualWrite(VirtualPin vp) { refBlynk.BridgeVirtualWrite(Pin, vp); }