internal static ReceiverResponse ConvertToResponse( IReceiverCommandDefinition commandDefinition, IRawResponseData data, string parameter) { var response = new ReceiverResponse { ResponseTime = data.TimeStamp, WaitingForResponseTimedOut = false, ResponseToCommand = commandDefinition.CommandName.ToString() }; if (commandDefinition.ResponseParameterType == typeof(OnOff)) { response.ResponseValue = parameter == "0"; } if (commandDefinition.ResponseParameterType == typeof(IRangeValue)) { response.ResponseValue = ResponseConverterHelper.Convert(commandDefinition.CommandName, parameter); } if (commandDefinition.ResponseParameterType == typeof(InputType)) { if (int.TryParse(parameter, out var inputTypeNumber)) { response.ResponseValue = (InputType)inputTypeNumber; } else { response.ResponseValue = InputType.Unknown; } } if (commandDefinition.ResponseParameterType == typeof(ListeningMode)) { if (int.TryParse(parameter, out var listeningModeNumber)) { response.ResponseValue = (ListeningMode)listeningModeNumber; } else { response.ResponseValue = ListeningMode.Unknown; } } return(response); }
internal static string MatchResponse(IReceiverCommandDefinition commandDefinition, IRawResponseData response) { var responseWithOutWildcard = SplitNameFromParameter(commandDefinition.ResponseTemplate, response.Data); return(responseWithOutWildcard.response == responseWithOutWildcard.template ? responseWithOutWildcard.parameter : null); }