public static void SendImageBlockResponse(ushort address, byte status, IEzspService ezspService, ushort mfgCode = default(ushort), ushort imageType = default(ushort), uint fileVersion = default(uint), uint fileOffset = default(uint), byte dataSize = default(byte), byte[] imageData = null, ushort blockRequestDelay = default(ushort)) { var frame = new EmberApsFrame(ZclConstants.HomeAutomationProfileId, ClusterIds.OtaUpgradeCluster, 1, 1, EmberApsOption.EMBER_APS_OPTION_STANDARD, 0, 0); var buffer = new CommandBuffer(); buffer.Add((byte)(ZclConstants.ZclFrameControlDisableDefaultResponseBit | ZclConstants.ZclFrameControlClusterServerToClientBit | ZclConstants.ZclFrameControlClusterSpecificBit)); buffer.Add((byte)0x00); // Sequence buffer.Add(CommandIds.OtaUpgrade.ImageBlockResponse); buffer.Add(status); if (status == ZCLStatus.ZclStatusSuccess) { buffer.Add(mfgCode); buffer.Add(imageType); buffer.Add(fileVersion); buffer.Add(fileOffset); buffer.Add(dataSize); buffer.AddArray(imageData); } else if (status == ZCLStatus.ZclStatusWaitForData) { // Next two commands tell the device to wait 1 second before requesting more data buffer.Add((uint)0x00); // Current Time (Base of wait calculation) buffer.Add((uint)0x01); // Request Time (Offset of wait calculation) buffer.Add(blockRequestDelay); // Ensure the BlockRequestDelay is set to 0 } ezspService.SendUnicast(EmberOutgoingMessageType.EMBER_OUTGOING_DIRECT, address, frame, 0, buffer.ToArray()); }
public static void SendOnOffCommand(ushort address, byte command, IEzspService ezspService) { var frame = new EmberApsFrame(ZclConstants.HomeAutomationProfileId, ClusterIds.OnOffCluster, 1, 1, EmberApsOption.EMBER_APS_OPTION_STANDARD, 0, 0); var buffer = new CommandBuffer(); buffer.Add(ZclConstants.ZclFrameControlClusterSpecificBit); buffer.Add((byte)0xb0); buffer.Add(command); buffer.AddArray(new byte[] { }); ezspService.SendUnicast(EmberOutgoingMessageType.EMBER_OUTGOING_DIRECT, address, frame, 0, buffer.ToArray()); }
public void SetupTests() { Mock <IManufacturingStoreRepository> mockManufacturingStoreRepository = new Mock <IManufacturingStoreRepository>(); var product = new Product() { Board = new Board() { ChipType = new ChipType() { Name = TEST_CHIPTYPE_NAME } }, ModelString = TEST_MODEL_STRING, SKU = TEST_SKU }; var targetDevices = new List <TargetDevice>(); targetDevices.Add(new TargetDevice() { TestSession = new TestSession() { Product = product } }); var mockTargetDevices = MockHelper.MockDbSet(targetDevices); var euiLists = new List <EuiList>(); euiLists.Add(new EuiList() { Id = 0, EUI = TEST_EUI, TargetDevices = targetDevices }); var mockEuiLists = MockHelper.MockDbSet(euiLists); mockManufacturingStoreRepository.Setup(x => x.EuiLists).Returns(mockEuiLists); mockManufacturingStoreRepository.Setup(x => x.TargetDevices).Returns(mockTargetDevices); deviceValidationService = new DeviceValidationService(mockEzspService.Object, mockDataContextFactory.Object, mockErrorProducerService.Object); mockEzspService.SetupAllProperties(); mockDataContextFactory.SetupAllProperties(); mockDataContextFactory.Setup(x => x.CreateManufacturingStoreRepository()).Returns(mockManufacturingStoreRepository.Object); mockErrorProducerService.SetupAllProperties(); deviceValidationService.ValidProduct = product; var deviceAnnounceBuffer = new CommandBuffer(); deviceAnnounceBuffer.Add((byte)0); deviceAnnounceBuffer.Add(new EmberApsFrame(ZdoConstants.ZdoProfileId, ZdoClusterIds.DeviceAnnounce, 0, 0, EmberApsOption.EMBER_APS_OPTION_STANDARD, 0, 0)); deviceAnnounceBuffer.Add((byte)0); deviceAnnounceBuffer.Add((sbyte)0); deviceAnnounceBuffer.Add((uint)0xFFFF); deviceAnnounceBuffer.Add((byte)11); deviceAnnounceBuffer.AddArray(new byte[] { 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255 }); deviceAnnounceMessage = new EzspIncomingMessageHandlerResponse(deviceAnnounceBuffer); var ieeeAddressBuffer = new CommandBuffer(); ieeeAddressBuffer.Add((byte)0); ieeeAddressBuffer.Add(new EmberApsFrame(ZdoConstants.ZdoProfileId, ZdoClusterIds.IEEEAddressResponse, 0, 0, EmberApsOption.EMBER_APS_OPTION_STANDARD, 0, 0)); ieeeAddressBuffer.Add((byte)0); ieeeAddressBuffer.Add((sbyte)0); ieeeAddressBuffer.Add((uint)0xFFFF); ieeeAddressBuffer.Add((byte)10); ieeeAddressBuffer.AddArray(new byte[] { 0, 0, 255, 255, 255, 255, 255, 255, 255, 255 }); ieeeAddressMessage = new EzspIncomingMessageHandlerResponse(ieeeAddressBuffer); var modelStringArray = Encoding.ASCII.GetBytes(TEST_MODEL_STRING); var modelStringBuffer = new CommandBuffer(); modelStringBuffer.Add((byte)0); modelStringBuffer.Add(new EmberApsFrame(ZclConstants.HomeAutomationProfileId, ClusterIds.BasicCluster, 0, 0, EmberApsOption.EMBER_APS_OPTION_STANDARD, 0, 0)); modelStringBuffer.Add((byte)0); modelStringBuffer.Add((sbyte)0); modelStringBuffer.Add((uint)0xFFFF); modelStringBuffer.Add(((byte)(modelStringArray.Count() + 10))); modelStringBuffer.Add(ZclConstants.ZclFrameControlManufacturerSpecificBit); modelStringBuffer.Add(ZclConstants.CentraliteManufacturerId); modelStringBuffer.Add((byte)0); modelStringBuffer.Add(CommandIds.Global.ReadAttributesResponse); modelStringBuffer.Add(AttributeIds.BasicServer.ModelIdentifier); modelStringBuffer.Add(ZCLStatus.ZclStatusSuccess); modelStringBuffer.Add(ZclDataTypes.CharacterString); modelStringBuffer.Add(((byte)modelStringArray.Count())); modelStringBuffer.AddArray(modelStringArray); modelStringMessage = new EzspIncomingMessageHandlerResponse(modelStringBuffer); var firmwareVersionBuffer = new CommandBuffer(); firmwareVersionBuffer.Add((byte)0); firmwareVersionBuffer.Add(new EmberApsFrame(ZclConstants.HomeAutomationProfileId, ClusterIds.OtaUpgradeCluster, 0, 0, EmberApsOption.EMBER_APS_OPTION_STANDARD, 0, 0)); firmwareVersionBuffer.Add((byte)0); firmwareVersionBuffer.Add((sbyte)0); firmwareVersionBuffer.Add((uint)0xFFFF); firmwareVersionBuffer.Add((byte)11); firmwareVersionBuffer.Add((byte)0); firmwareVersionBuffer.Add((byte)0); firmwareVersionBuffer.Add(CommandIds.Global.ReadAttributesResponse); firmwareVersionBuffer.Add(AttributeIds.OtaServer.CurrentFileVersion); firmwareVersionBuffer.Add(ZCLStatus.ZclStatusSuccess); firmwareVersionBuffer.Add((byte)0); firmwareVersionBuffer.Add(TEST_FIRMWARE_VERSION); firmwareVersionMessage = new EzspIncomingMessageHandlerResponse(firmwareVersionBuffer); }