protected override void OnCallbackInternal(DataReceivedUnit ou) { if (ou.DataFrame.Payload != null && ou.DataFrame.Payload.Length > 1) { SpecificResult.RetStatus = ou.DataFrame.Payload[1]; } }
private void OnHandled(DataReceivedUnit ou) { if (_listenCallback != null && ou.DataFrame != null && ou.DataFrame.Payload != null) { _listenCallback(ou.DataFrame.Payload); } }
private void OnReceived(DataReceivedUnit ou) { var payload = ou.DataFrame.Payload; SpecificResult.RetValue = payload[0]; SetStateCompleted(ou); }
private void OnReceived(DataReceivedUnit ou) { byte[] ret = ou.DataFrame.Payload; SpecificResult.PriorityRoute = new byte[ret.Length - 1]; Array.Copy(ret, 1, SpecificResult.PriorityRoute, 0, SpecificResult.PriorityRoute.Length); SetStateCompleted(ou); }
protected override void OnHandledInternal(DataReceivedUnit ou) { ou.SetNextActionItems(); byte[] command = ReceivedAchData.Command; var scheme = (SecuritySchemes)ReceivedAchData.SecurityScheme; bool isSuportedScheme = IsSupportedScheme(_network, command, scheme); if (command != null && command.Length > 1 && isSuportedScheme) { if (command[1] == COMMAND_CLASS_BASIC.BASIC_GET.ID) { ApiOperation sendData = null; var data = new COMMAND_CLASS_BASIC.BASIC_REPORT() { value = Value }; sendData = new SendDataExOperation(ReceivedAchData.DestNodeId, ReceivedAchData.SrcNodeId, data, TxOptions, TxSecOptions, scheme, TxOptions2); ou.SetNextActionItems(sendData); } else if (command[1] == COMMAND_CLASS_BASIC.BASIC_SET.ID) { var basicSetCommand = (COMMAND_CLASS_BASIC.BASIC_SET)command; Value = basicSetCommand.value; } } }
private void OnRetValue(DataReceivedUnit ou) { FailedNodeRetValues = (FailedNodeRetValues)ou.DataFrame.Payload[0]; if (FailedNodeRetValues != FailedNodeRetValues.ZW_FAILED_NODE_REMOVE_STARTED) { SetStateFailed(ou); } }
private void OnReceived(DataReceivedUnit ou) { var payload = ou.DataFrame.Payload; SpecificResult.TxTimeChannel0 = payload[0]; SpecificResult.TxTimeChannel1 = payload[1]; SpecificResult.TxTimeChannel2 = payload[2]; SetStateCompleted(ou); }
private void OnReceived(DataReceivedUnit ou) { SpecificResult.ReceivedData = ou.DataFrame.Payload; if (TextEncoding != null) { SpecificResult.ReceivedText = TextEncoding.GetString(SpecificResult.ReceivedData); } SetStateCompleted(ou); }
private void OnNodeIdDone(DataReceivedUnit ou) { if (ou.DataFrame.Payload.Length > 2) { SpecificResult.NodeId = ou.DataFrame.Payload[2]; } AssignStatus = (AssignStatuses)ou.DataFrame.Payload[1]; AssignStatusCallback(AssignStatus); }
private void OnDone(DataReceivedUnit ou) { LearnStatus = (NodeStatuses)ou.DataFrame.Payload[1]; NodeStatusCallback(LearnStatus); if (ou.DataFrame.Payload.Length > 2) { SpecificResult.NodeId = ou.DataFrame.Payload[2]; } base.SetStateCompleting(ou); }
private void OnAssignComplete(DataReceivedUnit ou) { if (ou.DataFrame.Payload.Length > 2) { SpecificResult.NodeId = ou.DataFrame.Payload[2]; } AssignStatus = (AssignStatuses)ou.DataFrame.Payload[1]; AssignStatusCallback(AssignStatus); _isAssignCompleteReceived = true; }
private void OnReceived(DataReceivedUnit ou) { byte[] ret = ou.DataFrame.Payload; SpecificResult.NodeId = ret[0]; SpecificResult.RetVal = (ret[1] == 0x01) ? true : false; SpecificResult.PriorityRoute = new byte[ret.Length - 3]; SpecificResult.RouteSpeed = ret[ret.Length - 1]; Array.Copy(ret, 2, SpecificResult.PriorityRoute, 0, SpecificResult.PriorityRoute.Length); SetStateCompleted(ou); }
protected override void OnHandledInternal(DataReceivedUnit ou) { ou.SetNextActionItems(); byte nodeId = ReceivedAchData.SrcNodeId; byte[] command = ReceivedAchData.Command; var scheme = (SecuritySchemes)ReceivedAchData.SecurityScheme; bool isSuportedScheme = IsSupportedScheme(_network, command, scheme); if (command != null && command.Length > 1 && isSuportedScheme) { if (command[1] == COMMAND_CLASS_POWERLEVEL.POWERLEVEL_GET.ID) { _powerLevelGet.NewToken(); _sendPowerLevelReport.NewToken(); _sendPowerLevelReport.NodeId = nodeId; _sendPowerLevelReport.SecurityScheme = scheme; ou.SetNextActionItems(_powerLevelGet); } if (command[1] == COMMAND_CLASS_POWERLEVEL.POWERLEVEL_SET.ID) { COMMAND_CLASS_POWERLEVEL.POWERLEVEL_SET cmd = command; _powerLevelSet.NewToken(); _powerLevelSet.PowerLevel = cmd.powerLevel; ou.SetNextActionItems(_powerLevelSet); } else if (command[1] == COMMAND_CLASS_POWERLEVEL.POWERLEVEL_TEST_NODE_SET.ID) { COMMAND_CLASS_POWERLEVEL.POWERLEVEL_TEST_NODE_SET cmd = command; _sendTest.NewToken(); _sendTest.NodeId = cmd.testNodeid; _sendTest.PowerLevel = cmd.powerLevel; _testFromNodeId = nodeId; _testFrameCount = Tools.GetInt32(cmd.testFrameCount); _testIteration = 0; _failIterations = 0; ou.SetNextActionItems(_sendTest); } else if (command[1] == COMMAND_CLASS_POWERLEVEL.POWERLEVEL_TEST_NODE_GET.ID) { COMMAND_CLASS_POWERLEVEL.POWERLEVEL_TEST_NODE_GET cmd = command; _sendPowerLevelTestNodeReport.NewToken(); _sendPowerLevelTestNodeReport.NodeId = nodeId; _sendPowerLevelTestNodeReport.SecurityScheme = scheme; _sendPowerLevelTestNodeReport.Data = new COMMAND_CLASS_POWERLEVEL.POWERLEVEL_TEST_NODE_REPORT() { statusOfOperation = _failIterations == 0 ? (byte)0x01 : (byte)0x00, testFrameCount = new byte[] { (byte)(_testIteration << 8), (byte)_testIteration }, testNodeid = _sendTest.NodeId }; ou.SetNextActionItems(_sendPowerLevelTestNodeReport); } } }
protected void ParseHandler(DataReceivedUnit ou) { byte[] res = ou.DataFrame.Payload; SequenceNumber = res[0]; NodeStatus = (NodeStatuses)res[1]; if (NodeStatus == NodeStatuses.AddingRemovingController || NodeStatus == NodeStatuses.AddingRemovingSlave) { if (NodeStatus == NodeStatuses.AddingRemovingSlave) { SpecificResult.IsSlave = true; //set isController bit } if (res.Length > 2) { SpecificResult.Id = res[2]; } byte nodeInfoLength = 0; if (res.Length > 3) { nodeInfoLength = res[3]; } if (nodeInfoLength > 3) { SpecificResult.CommandClasses = new byte[nodeInfoLength - 3]; } for (int i = 0; i < nodeInfoLength; i++) { byte value = res[4 + i]; switch (i) { case 0: SpecificResult.Basic = value; break; case 1: SpecificResult.Generic = value; break; case 2: SpecificResult.Specific = value; break; default: SpecificResult.CommandClasses[i - 3] = value; break; } } } NodeStatusCallback(NodeStatus); }
private void OnHandled(DataReceivedUnit ou) { if (!isHandled) { isHandled = true; //if (OnHandledCallback != null) //{ // OnHandledCallback(ou); //} } }
private void OnHandledAA(DataReceivedUnit ou) { if (ExtensionS2TypeSpecified) { try { if (ou.DataFrame.Extensions != null) { if (_extensionS2Types != null && _extensionS2Types.Length > 0) { if (ou.DataFrame.Extensions.ExtensionsList.Any() && ou.DataFrame.Extensions.EncryptedExtensionsList.Any()) { var ext = ou.DataFrame.Extensions.ExtensionsList.Union(ou.DataFrame.Extensions.EncryptedExtensionsList); if (ext.Where(x => _extensionS2Types.Contains(x.properties1.type)).Count() == _extensionS2Types.Length) { OnHandledInternal(ou); } } else if (ou.DataFrame.Extensions.ExtensionsList.Any()) { var ext = ou.DataFrame.Extensions.ExtensionsList; if (ext.Where(x => _extensionS2Types.Contains(x.properties1.type)).Count() == _extensionS2Types.Length) { OnHandledInternal(ou); } } else if (ou.DataFrame.Extensions.EncryptedExtensionsList.Any()) { var ext = ou.DataFrame.Extensions.EncryptedExtensionsList; if (ext.Where(x => _extensionS2Types.Contains(x.properties1.type)).Count() == _extensionS2Types.Length) { OnHandledInternal(ou); } } } else { if (!ou.DataFrame.Extensions.ExtensionsList.Any() && !ou.DataFrame.Extensions.EncryptedExtensionsList.Any()) { OnHandledInternal(ou); } } } } catch (Exception ex) { "{0}"._EXLOG(ex.Message); } } else { OnHandledInternal(ou); } }
private void OnCallback(DataReceivedUnit ou) { FailedNodeStatus = (FailedNodeStatuses)ou.DataFrame.Payload[1]; if (FailedNodeStatus == FailedNodeStatuses.ZW_FAILED_NODE_REMOVED) { SetStateCompleted(ou); } else { SetStateFailed(ou); } }
private void OnRetDataReceived(DataReceivedUnit ou) { SpecificResult.ByteArray = ou.DataFrame.Payload; if (ou.DataFrame.Payload[0] == _testInterfaceCmd[0]) { if (ou.DataFrame.Payload.Length >= 2) { SpecificResult.ByteArray = new byte[ou.DataFrame.Payload.Length - 2]; Array.Copy(ou.DataFrame.Payload, 1, SpecificResult.ByteArray, 0, SpecificResult.ByteArray.Length); } } SetStateCompleted(ou); }
protected override void OnHandledInternal(DataReceivedUnit ou) { SpecificResult.Options = ReceivedAchData.Options; SpecificResult.SrcNodeId = ReceivedAchData.SrcNodeId; SpecificResult.DestNodeId = ReceivedAchData.DestNodeId; SpecificResult.Command = ReceivedAchData.Command; SpecificResult.Rssi = ReceivedAchData.Rssi; SpecificResult.SecurityScheme = (SecuritySchemes)ReceivedAchData.SecurityScheme; SpecificResult.Extensions = ReceivedAchData.Extensions; SpecificResult.SubstituteStatus = (ou.DataFrame.SubstituteIncomingFlags & SubstituteIncomingFlags.Security) > 0 ? SubstituteStatuses.Done : SubstituteStatuses.Failed; SetStateCompleted(ou); }
private void OnReceived(DataReceivedUnit ou) { byte[] ret = ou.DataFrame.Payload; SpecificResult.RetVal = ret[0]; _maxAttempts--; if (SpecificResult.RetVal > 0 || _maxAttempts <= 0) { SetStateCompleted(ou); } else { } }
protected void OnHandler(DataReceivedUnit ou) { OutputParameters = ou.DataFrame.Payload; SpecificResult.ByteArray = OutputParameters; if (SpecificResult.ByteValue > 0) { SetStateCompleted(ou); } else { SetStateFailed(ou); } }
private void OnBridgeHandled(DataReceivedUnit ou) { ReceivedAchData.TimeStamp = DateTime.Now; ReceivedAchData.CommandType = CommandTypes.CmdApplicationCommandHandler_Bridge; ReceivedAchData.SubstituteIncomingFlags = ou.DataFrame.SubstituteIncomingFlags; int cmdLength = ou.DataFrame.CmdLength; if (IsFillReceived) { FillReceived(ou.DataFrame.Payload, 1, 2, 3, cmdLength); ReceivedAchData.Extensions = ou.DataFrame.Extensions; } OnHandledAA(ou); }
protected override void OnHandledInternal(DataReceivedUnit ou) { if (_filterNodeId > 0) { if (ReceivedAchData.SrcNodeId == _filterNodeId || (_filterSucNodeId > 0 && ReceivedAchData.SrcNodeId == _filterSucNodeId)) { } else { ou.DataFrame.IsHandled = true; "DENIED FilterNodeId: {0}"._DLOG(ReceivedAchData.SrcNodeId); } } }
protected override void OnHandledInternal(DataReceivedUnit ou) { ou.SetNextActionItems(); byte nodeId = ReceivedAchData.SrcNodeId; byte[] command = ReceivedAchData.Command; var scheme = (SecuritySchemes)ReceivedAchData.SecurityScheme; bool isSuportedScheme = IsSupportedScheme(_network, command, scheme); if (isSuportedScheme && command != null && command.Length > 1) { if (command[1] == COMMAND_CLASS_WAKE_UP_V2.WAKE_UP_INTERVAL_CAPABILITIES_GET.ID) { var cmd = (COMMAND_CLASS_WAKE_UP_V2.WAKE_UP_INTERVAL_CAPABILITIES_GET)command; var rpt = new COMMAND_CLASS_WAKE_UP_V2.WAKE_UP_INTERVAL_CAPABILITIES_REPORT() { minimumWakeUpIntervalSeconds = new byte[] { 0x00, 0x00, 0x3C }, maximumWakeUpIntervalSeconds = new byte[] { 0x01, 0x51, 0x80 }, defaultWakeUpIntervalSeconds = new byte[] { 0x00, 0x01, 0x2C }, wakeUpIntervalStepSeconds = new byte[] { 0x00, 0x00, 0x3C } }; var sendData = new SendDataExOperation(nodeId, rpt, TxOptions, scheme); ou.SetNextActionItems(sendData); } else if (command[1] == COMMAND_CLASS_WAKE_UP_V2.WAKE_UP_INTERVAL_GET.ID) { var cmd = (COMMAND_CLASS_WAKE_UP_V2.WAKE_UP_INTERVAL_GET)command; var rpt = new COMMAND_CLASS_WAKE_UP_V2.WAKE_UP_INTERVAL_REPORT() { seconds = _wakeupDelay }; var sendData = new SendDataExOperation(nodeId, rpt, TxOptions, scheme); ou.SetNextActionItems(sendData); } else if (command[1] == COMMAND_CLASS_WAKE_UP_V2.WAKE_UP_INTERVAL_SET.ID) { var cmd = (COMMAND_CLASS_WAKE_UP_V2.WAKE_UP_INTERVAL_SET)command; _wakeupDelay = cmd.seconds; } else if (command[1] == COMMAND_CLASS_WAKE_UP_V2.WAKE_UP_NO_MORE_INFORMATION.ID) { _disableRFReceiveOperation.NewToken(); ou.SetNextActionItems(_disableRFReceiveOperation); } } }
protected virtual void OnCallback(DataReceivedUnit ou) { OnCallbackInternal(ou); if (ou.DataFrame.Payload != null && ou.DataFrame.Payload.Length > 1) { //TransmitStatuses ts = (TransmitStatuses)ou.DataFrame.Payload[1]; //if (isHandled && (ts == TransmitStatuses.CompleteOk || ts == TransmitStatuses.CompleteNoAcknowledge || ts == TransmitStatuses.CompleteOk)) // SetStateCompleted(ou); //else // SetStateFailed(ou); SetStateCompleted(ou); } else { SetStateFailed(ou); } }
private void OnReceived(DataReceivedUnit unit) { var payload = ((ApiHandler)unit.ActionHandler).DataFrame.Payload; _homeId = new byte[] { payload[3], payload[4], payload[5], payload[6] }; var dsk = _dskNeededCallback(_homeId); if (!_isRunning && dsk != null && dsk.Item2 != null && dsk.Item2.Length >= 16) { SetRunning(); byte[] dskPart = new byte[8]; Array.Copy(dsk.Item2, 8, dskPart, 0, 8); IAddRemoveNode addNode = null; if (dsk.Item1 > 0) { //addNode = new ReplaceFailedNodeOperation(dsk.First, _setNodeStatusSignal, _timeoutMs, dskPart) { SequenceNumber = SequenceNumber, DskValue = dsk.Item2 }; addNode = new AddNodeOperation((Modes.NodeOptionNetworkWide | Modes.NodeHomeId), _setNodeStatusSignal, _timeoutMs, dskPart) { SequenceNumber = SequenceNumber, DskValue = dsk.Item2, GrantSchemesValue = dsk.Item3 }; } else { addNode = new AddNodeOperation((Modes.NodeOptionNetworkWide | Modes.NodeHomeId), _setNodeStatusSignal, _timeoutMs, dskPart) { SequenceNumber = SequenceNumber, DskValue = dsk.Item2, GrantSchemesValue = dsk.Item3 }; } var action = new InclusionTask(_network, addNode, true); action.CompletedCallback = (x) => { var act = x as ActionBase; if (act != null) { ReleaseRunning(); _busyCallback(false, dsk.Item2, act.Result); } }; unit.SetNextActionItems(new ActionSerialGroup(action, new SetSmartStartAction(true))); _busyCallback(true, null, null); } else { unit.SetNextActionItems(new SetSmartStartAction(true)); } }
private void OnPModeHandled(DataReceivedUnit ou) { ReceivedAchData.TimeStamp = DateTime.Now; ReceivedAchData.CommandType = CommandTypes.CmdApplicationCommandHandlerPMode; ReceivedAchData.SubstituteIncomingFlags = ou.DataFrame.SubstituteIncomingFlags; int cmdLength = ou.DataFrame.CmdLength; if (IsFillReceived) { FillReceived(ou.DataFrame.Payload, 0, 1, 2, cmdLength); ReceivedAchData.Extensions = ou.DataFrame.Extensions; } if (DestNodeId == 0 || DestNodeId == ReceivedAchData.DestNodeId) { OnHandledAA(ou); } }
private void OnCallback(DataReceivedUnit ou) { FailedNodeStatus = (FailedNodeStatuses)ou.DataFrame.Payload[1]; if (FailedNodeStatus != FailedNodeStatuses.ZW_FAILED_NODE_REPLACE && FailedNodeStatus != FailedNodeStatuses.ZW_FAILED_NODE_REPLACE_DONE) { base.SetStateFailed(ou); } if (FailedNodeStatus == FailedNodeStatuses.ZW_FAILED_NODE_REPLACE_DONE) { SpecificResult.Id = mReplacedNodeId; if (NodeStatusCallback != null) { NodeStatusCallback(NodeStatuses.Done); } base.SetStateCompleted(ou); } }
protected override void OnHandledInternal(DataReceivedUnit ou) { ou.SetNextActionItems(); byte nodeId = ReceivedAchData.SrcNodeId; byte[] command = ReceivedAchData.Command; var scheme = (SecuritySchemes)ReceivedAchData.SecurityScheme; bool isSuportedScheme = IsSupportedScheme(_network, command, scheme); if (command != null && command.Length > 1 && isSuportedScheme) { switch (command[1]) { case (COMMAND_CLASS_FIRMWARE_UPDATE_MD_V5.FIRMWARE_MD_GET.ID): { ou.SetNextActionItems(SendFwuMdReport(nodeId, scheme)); } break; case (COMMAND_CLASS_FIRMWARE_UPDATE_MD_V5.FIRMWARE_UPDATE_MD_REQUEST_GET.ID): { ou.SetNextActionItems(HandleCmdClassFirmwareUpdateMdReqGet(nodeId, command, scheme)); if (_pStatus == 0xFF) { _firmwareOffset = 0; ou.AddNextActionItems(SendFwuMdGet(nodeId, START_REPORT_NUMBER, scheme)); _firmwareUpdateNvmInit.NewToken(); ou.AddNextActionItems(_firmwareUpdateNvmInit); _firmwareUpdateNvmSetNewImageFalse.NewToken(); ou.AddNextActionItems(_firmwareUpdateNvmSetNewImageFalse); } } break; case (COMMAND_CLASS_FIRMWARE_UPDATE_MD_V5.FIRMWARE_UPDATE_MD_REPORT.ID): { HandleCmdClassFirmwareUpdateMdReport(ou, nodeId, command, scheme); } break; default: break; } } }
protected override void OnCallback(DataReceivedUnit ou) { if (ou.DataFrame.Payload != null && ou.DataFrame.Payload.Length > 1) { SpecificResult.RetVal = (SetSucReturnValues)ou.DataFrame.Payload[1]; if (isHandled && (SpecificResult.RetVal == SetSucReturnValues.SucSetSucceeded)) { SetStateCompleted(ou); } else { SetStateFailed(ou); } } else { SetStateFailed(ou); } }