protected virtual ISignalResponse ParseE1(string response) { string searchFor = "type=\"checkbox\" value=\""; string sLock = response.Substring(response.IndexOf(searchFor, StringComparison.Ordinal) + searchFor.Length); sLock = sLock.Substring(0, sLock.IndexOf("\"", StringComparison.Ordinal)); bool locked = (sLock.ToLower() == "on"); string sSync = response.Substring(response.IndexOf(searchFor, StringComparison.Ordinal) + searchFor.Length); sSync = sSync.Substring(sSync.IndexOf(searchFor, StringComparison.Ordinal) + searchFor.Length); sSync = sSync.Substring(0, sSync.IndexOf("\"", StringComparison.Ordinal)); bool sync = (sSync.ToLower() == "on"); searchFor = "<td align=\"center\">"; response = response.Substring(response.IndexOf(searchFor, StringComparison.Ordinal) + searchFor.Length); string snr = response.Substring(0, response.IndexOf("%", StringComparison.Ordinal)); response = response.Substring(response.IndexOf(searchFor, StringComparison.Ordinal) + searchFor.Length); string acg = response.Substring(0, response.IndexOf("%", StringComparison.Ordinal)); response = response.Substring(response.IndexOf(searchFor, StringComparison.Ordinal) + searchFor.Length); string ber = response.Substring(0, response.IndexOf("<", StringComparison.Ordinal)); IE1Signal signal = InitializeSignal(snr, acg, ber, locked, sync); if (signal == null) { throw new ParsingException("Failed to parse Enigma1 signal!"); } return(_factory.SignalResponse(signal)); }
private IE1Signal InitializeSignal(string snr, string acg, string ber, bool locked, bool sync) { IE1Signal signal = _factory.E1Signal(); if (snr.Length == 0) { signal.Snr = -1; signal.Acg = -1; signal.Ber = -1; return(signal); } signal.Lock = locked; signal.Sync = sync; signal.Acg = int.Parse(acg); signal.Snr = int.Parse(snr); signal.Ber = int.Parse(ber); return(signal); }