private void Request(bool isPost, int dstAddr, byte action, byte?parameter, byte[] data) { var p = new ProtoPacket { DstAddr = dstAddr, SrcAddr = _mesh.ShortAddress, Control = new Control() { CommandType = isPost ? (byte)CommandTypes.Post : (byte)CommandTypes.Get } }; if (parameter.HasValue) { p.Control.HasParameter = true; p.Parameter = parameter.Value; } if (data.Length > 0) { p.Control.HasData = true; p.Data = data; } p.Command = action; Send(p); }
private void Send(ProtoPacket packet) { var bp = new Packet { Lqi = 0xff, Rssi = 0xff, SrcAddr = packet.SrcAddr, DstAddr = packet.DstAddr, SrcEndPoint = EndPoint, DstEndPoint = EndPoint, Size = packet.GetRaw().Length, Frame = packet.GetRaw() }; _mesh.SendPacket(bp); }
public void SendNack(int dstAddr) { var ppk = new ProtoPacket { DstAddr = dstAddr, SrcAddr = _mesh.ShortAddress, Control = new Control(0) { CommandType = (byte)CommandTypes.Nack } }; Send(ppk); }
public ProtoPacket Parse(Packet packet) { var pkt = new ProtoPacket(); if (packet.SrcEndPoint != EndPoint || packet.DstEndPoint != EndPoint) { return(null); } pkt.SrcAddr = packet.SrcAddr; pkt.DstAddr = packet.DstAddr; pkt.FromRaw(packet.Frame); return(pkt.Version != Version ? null : pkt); }
public void RequestCustom(int dstAddr, byte[] data) { var p = new ProtoPacket { DstAddr = dstAddr, SrcAddr = _mesh.ShortAddress, Control = new Control(0) { CommandType = (byte)CommandTypes.Custom } }; if (data.Length > 0) { p.Control.HasData = true; p.Data = data; } Send(p); }
public void RequestAction(int dstAddr, byte action, byte?parameter) { var p = new ProtoPacket { DstAddr = dstAddr, SrcAddr = _mesh.ShortAddress, Control = new Control() { CommandType = (byte)CommandTypes.Action } }; if (parameter.HasValue) { p.Control.HasParameter = true; p.Parameter = parameter.Value; } p.Command = action; Send(p); }