private void LogReceivePacket(ZigBeeCoordinatorContext ctx, ZigBeeDevice device, ZigBeeCommunicationsController.ZigBeeReceivePacket packet) { FiveVoltPacket fiveVoltPacket = FiveVoltPacket.Decode(packet.ReceiveData); if (fiveVoltPacket is InvalidFileVoltPacket) { InvalidFileVoltPacket invalidPacket = (InvalidFileVoltPacket)fiveVoltPacket; _log.Error("Invalid five volt packet. Reason \"" + invalidPacket.Reason + "\""); } else if (fiveVoltPacket is CapabilityFiveVoltPacket) { CapabilityFiveVoltPacket capabilityFiveVoltPacket = (CapabilityFiveVoltPacket)fiveVoltPacket; LogCapabilityFiveVoltPacket(ctx, device, capabilityFiveVoltPacket); } else if (fiveVoltPacket is CapabilityDataFiveVoltPacket) { CapabilityDataFiveVoltPacket capabilityDataFiveVoltPacket = (CapabilityDataFiveVoltPacket)fiveVoltPacket; LogCapabilityDataFiveVoltPacket(ctx, device, capabilityDataFiveVoltPacket); } else if (fiveVoltPacket is MessageFiveVoltPacket) { MessageFiveVoltPacket messageFiveVoltPacket = (MessageFiveVoltPacket)fiveVoltPacket; LogMessageFiveVoltPacket(ctx, device, messageFiveVoltPacket); } else { _log.Error("Unhandled five volt packet type [" + fiveVoltPacket.GetType() + "]"); } }
private void LogCapabilityFiveVoltPacket(ZigBeeCoordinatorContext ctx, ZigBeeDevice device, CapabilityFiveVoltPacket capabilityFiveVoltPacket) { Capability capability = Capability.Finder.FindByIdOrDefault(ctx, capabilityFiveVoltPacket.Capability); if (capability == null) { _log.Error("Could not find capability with id [" + capabilityFiveVoltPacket.Capability + "]"); return; } _log.Info("New capability found [" + capability.Name + "] at address [" + device.DeviceAddressString + "]"); device.Capabilities.Add(capability); }