/// <summary> /// Load supported PIds /// </summary> /// <returns></returns> private async Task LoadSupportedProtocols(OdbProtocol protocolType = OdbProtocol.Unknown, int protocolNumber = 0) { var selectedProtocol = -1; if (protocolType == OdbProtocol.Unknown) { OdbPid protocol = null; for (selectedProtocol = 0; selectedProtocol <= 9; selectedProtocol++) { protocol = OdbPids.GetPidForProtocolNumber(selectedProtocol); try { OdbResponse response = await this.socket.SendAndCheck(protocol); if (response.IsValid) { break; } } catch { reporter.ReportInfo("Protocol ATSP" + protocol.Description + " is not supported."); } } if (selectedProtocol == 10) { throw new OdbException(OdbError.CouldNotFindCompatibleProtocol); } this.socket.SelectedProtocol = protocol; } else if (protocolType == OdbProtocol.Specified && protocolNumber > 0 && protocolNumber < 10) { OdbPid protocol = OdbPids.GetPidForProtocolNumber(selectedProtocol); await this.socket.SendAndCheck(protocol); this.socket.SelectedProtocol = protocol; } else { throw new OdbException(OdbError.WrongProtocolNumber); } }
/// <summary> /// Check supported PIds /// </summary> /// <returns></returns> private async Task checkSupportedProtocols(OdbProtocol protocolType = OdbProtocol.Unknown, int protocolNumber = 0) { var selectedProtocol = -1; if (protocolType == OdbProtocol.Unknown) { for (selectedProtocol = 1; selectedProtocol <= 9; selectedProtocol++) { OdbPid protocol = OdbPids.GetPidForProtocolNumber(selectedProtocol); try { await this.socket.SendAndCheck(protocol); await this.socket.SendAndCheck(OdbPids.Mode1_PidsSupported20); break; } catch { reporter.ReportInfo("Protocol ATSP" + protocol.Description + " is not supported."); } } if (selectedProtocol == 10) { throw new OdbException(OdbError.CouldNotFindCompatibleProtocol); } this.socket.SelectedProtocol = selectedProtocol; } else if (protocolType == OdbProtocol.Specified && protocolNumber > 0 && protocolNumber < 10) { await this.socket.SendAndCheck(OdbPids.GetPidForProtocolNumber(protocolNumber)); await this.socket.SendAndCheck(OdbPids.Mode1_PidsSupported20); this.socket.SelectedProtocol = protocolNumber; } else { throw new OdbException(OdbError.WrongProtocolNumber); } }
/// <summary> /// Load supported PIds /// </summary> /// <returns></returns> private async Task LoadSupportedProtocols(OdbProtocol protocolType = OdbProtocol.Unknown, int protocolNumber = 0) { var selectedProtocol = -1; if (protocolType == OdbProtocol.Unknown) { OdbPid protocol = null; for (selectedProtocol = 0; selectedProtocol <= 9; selectedProtocol++) { protocol = OdbPids.GetPidForProtocolNumber(selectedProtocol); try { OdbResponse response = await this.socket.SendAndCheck(protocol); if (response.IsValid) break; } catch { reporter.ReportInfo("Protocol ATSP" + protocol.Description + " is not supported."); } } if (selectedProtocol == 10) { throw new OdbException(OdbError.CouldNotFindCompatibleProtocol); } this.socket.SelectedProtocol = protocol; } else if (protocolType == OdbProtocol.Specified && protocolNumber > 0 && protocolNumber < 10) { OdbPid protocol = OdbPids.GetPidForProtocolNumber(selectedProtocol); await this.socket.SendAndCheck(protocol); this.socket.SelectedProtocol = protocol; } else { throw new OdbException(OdbError.WrongProtocolNumber); } }