public void Open(MacConIndPayload macConInd) { PMID = macConInd.PMID; Reassembler = new NwkReassembler(); if (macConInd.Ho) { var previous = _tracker.Find(PMID); if (previous != null) { Reassembler.CopyFrom(previous.Reassembler); } } IsConnected = true; }
private static DnmPayload CreateMac(DnmType type, ReadOnlyMemory <byte> data, MacConnection connection) { switch (type) { case DnmType.MacConInd: var macConInd = new MacConIndPayload(data); connection.Open(macConInd); return(macConInd); case DnmType.MacDisInd: connection.Close(); return(new MacDisIndPayload(data)); case DnmType.MacDisReq: connection.Close(); return(new EmptyDnmPayload(data)); case DnmType.MacEncKeyReq: return(new MacEncKeyReqPayload(data)); case DnmType.MacEncEksInd: return(new MacEncEksIndPayload(data)); case DnmType.MacInfoInd: return(new MacInfoIndPayload(data)); case DnmType.HoInProgressInd: return(new MacHoInProgressIndPayload(data)); case DnmType.HoInProgressRes: return(new MacHoInProgressResPayload(data)); case DnmType.HoFailedInd: return(new MacHoFailedIndPayload(data)); default: return(new UnknownDnmPayload(data)); } }