Example #1
0
        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));
        }
Example #2
0
        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);
        }