public void IsEqual() { IeeeAddress address1 = new IeeeAddress("17880100dc880b"); IeeeAddress address2 = new IeeeAddress("17880100dc880b"); Assert.True(address1.Equals(address2)); }
private async Task Initialise() { byte?currentState = (byte?)await _iasZoneCluster.GetAttribute(ZclIasZoneCluster.ATTR_ZONESTATE).ReadValue(long.MaxValue); if (currentState.HasValue) { ZoneStateEnum currentStateEnum = (ZoneStateEnum)currentState; Log.Debug("{Address}: IAS CIE state is currently {StateEnum}[{State}]", _iasZoneCluster.GetZigBeeAddress(), currentStateEnum, currentState); if (currentStateEnum == ZoneStateEnum.ENROLLED) { Log.Debug("{Address}: IAS CIE is already enrolled", _iasZoneCluster.GetZigBeeAddress()); return; } } else { Log.Debug("{Address}: IAS CIE failed to get state", _iasZoneCluster.GetZigBeeAddress()); } ZclAttribute cieAddressAttribute = _iasZoneCluster.GetAttribute(ZclIasZoneCluster.ATTR_IASCIEADDRESS); IeeeAddress currentIeeeAddress = (IeeeAddress)await cieAddressAttribute.ReadValue(0); Log.Debug("{Address}: IAS CIE address is currently {Address2}", _iasZoneCluster.GetZigBeeAddress(), currentIeeeAddress); if (!_ieeeAddress.Equals(currentIeeeAddress)) { // Set the CIE address in the remote device. This is where the device will send its reports. await cieAddressAttribute.WriteValue(_ieeeAddress); currentIeeeAddress = (IeeeAddress)await cieAddressAttribute.ReadValue(0); if (_ieeeAddress.Equals(currentIeeeAddress)) { Log.Debug("{Address}: IAS CIE address is confirmed {Address2}", _iasZoneCluster.GetZigBeeAddress(), currentIeeeAddress); } else { Log.Warning("{Address}: IAS CIE address is NOT confirmed {Address2}", _iasZoneCluster.GetZigBeeAddress(), currentIeeeAddress); } } byte?currentZone = (byte?)await _iasZoneCluster.GetAttribute(ZclIasZoneCluster.ATTR_ZONEID).ReadValue(0); if (currentZone == null) { Log.Debug("{Address}: IAS CIE zone ID request failed", _iasZoneCluster.GetZigBeeAddress()); } else { Log.Debug("{Address}: IAS CIE zone ID is currently {ZoneId}", _iasZoneCluster.GetZigBeeAddress(), currentZone); } ZoneType = (ushort?)await _iasZoneCluster.GetAttribute(ZclIasZoneCluster.ATTR_ZONETYPE).ReadValue(long.MaxValue); if (ZoneType == null) { Log.Debug("{Address}: IAS CIE zone type request failed", _iasZoneCluster.GetZigBeeAddress()); } else { Log.Debug("{Address}: IAS CIE zone type is {ZoneTypeEnum} ({ZoneTypeValue})", _iasZoneCluster.GetZigBeeAddress(), ((ZoneTypeEnum)ZoneType), ZoneType.Value.ToString("X2")); } // Start the auto-enroll timer _autoEnrollmentCancellationToken = new CancellationTokenSource(); _ = Task.Run(RunAutoEnrollmentTask, _autoEnrollmentCancellationToken.Token); }