// See page 639 for structures // Unconfirmed Remote Device Management Services PG 1514 public override List <byte> Encode(XElement xElem) { packet = new List <byte>(0); var field = xElem.Element("Service").Value; srvChoise = (BACnetUnconfirmedServiceChoice)System.Enum.Parse(typeof(BACnetUnconfirmedServiceChoice), field, true); packet.Add(((byte)BACnetPDU.PDU_UNCONFIRMED_SERVICE_REQUEST) << 4); packet.Add((byte)srvChoise); switch (srvChoise) { case BACnetUnconfirmedServiceChoice.I_AM: break; case BACnetUnconfirmedServiceChoice.I_HAVE: break; case BACnetUnconfirmedServiceChoice.WHO_HAS: break; case BACnetUnconfirmedServiceChoice.WHO_IS: break; case BACnetUnconfirmedServiceChoice.TIMESYNCHRONIZATION: break; default: break; } return(packet); }
new public PDU Decode(BACPacket cm) { cm.getNextByte(); srvChoise = (BACnetUnconfirmedServiceChoice)cm.getNextByte(); switch (srvChoise) { case BACnetUnconfirmedServiceChoice.I_AM: //a = new I_AM_Srv_Struct(); while (cm.hasMore() == true) { bv.Add(new BACVnetVar().Decode(cm)); } break; case BACnetUnconfirmedServiceChoice.I_HAVE: while (cm.hasMore() == true) { bv.Add(new BACVnetVar().Decode(cm)); } break; case BACnetUnconfirmedServiceChoice.WHO_HAS: while (cm.hasMore() == true) { bv.Add(new BACVnetVar().Decode(cm)); } break; case BACnetUnconfirmedServiceChoice.WHO_IS: while (cm.hasMore() == true) { bv.Add(new BACVnetVar().Decode(cm, BACVnetVar.CONTEXT_TAG.UINT)); } break; case BACnetUnconfirmedServiceChoice.TIMESYNCHRONIZATION: while (cm.hasMore() == true) { bv.Add(new BACVnetVar().Decode(cm)); } break; default: while (cm.hasMore() == true) { bv.Add(new BACVnetVar().Decode(cm)); } break; } return(this); }