示例#1
0
        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() + "]");
            }
        }
示例#2
0
        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);
        }