/// <summary> /// Initialize a new instance of the TuningSpec class for a DVB satellite frequency. /// </summary> /// <param name="satellite">The satellite to tune to.</param> /// <param name="frequency">The frequency to tune to.</param> public TuningSpec(Satellite satellite, SatelliteFrequency frequency) { this.frequency = frequency; this.satellite = satellite; symbolRate = frequency.SymbolRate; fec = frequency.FEC; signalPolarization = frequency.Polarization; modulation = frequency.Modulation; }
/// <summary> /// Find a satelllite frequency. /// </summary> /// <param name="frequency">The frequency to be searched for.</param> /// <param name="polarization">The polariz\ation of the frequency to be searched for.</param> /// <returns>The tuning frequency or null if it cannot be located.</returns> public ISDBSatelliteFrequency FindFrequency(int frequency, SignalPolarization polarization) { foreach (TuningFrequency tuningFrequency in Frequencies) { if (tuningFrequency.Frequency == frequency) { ISDBSatelliteFrequency satelliteFrequency = tuningFrequency as ISDBSatelliteFrequency; if (satelliteFrequency != null && satelliteFrequency.Polarization.Polarization == polarization.Polarization) { return(satelliteFrequency); } } } return(null); }
internal void load(XmlReader reader) { switch (reader.Name) { case "CarrierFrequency": Frequency = Int32.Parse(reader.ReadString()); break; case "Polarisation": switch (reader.ReadString()) { case "CircularL": polarization = new SignalPolarization(SignalPolarization.CircularLeft); break; case "CircularR": polarization = new SignalPolarization(SignalPolarization.CircularRight); break; case "LinearH": polarization = new SignalPolarization(SignalPolarization.LinearHorizontal); break; case "LinearV": polarization = new SignalPolarization(SignalPolarization.LinearVertical); break; } break; case "SymbolRate": symbolRate = Int32.Parse(reader.ReadString()); break; case "InnerFecRate": switch (reader.ReadString()) { case "Rate1_2": fec = new FECRate(FECRate.FECRate12); break; case "Rate1_3": fec = new FECRate(FECRate.FECRate13); break; case "Rate1_4": fec = new FECRate(FECRate.FECRate14); break; case "Rate2_3": fec = new FECRate(FECRate.FECRate23); break; case "Rate2_5": fec = new FECRate(FECRate.FECRate25); break; case "Rate3_4": fec = new FECRate(FECRate.FECRate34); break; case "Rate3_5": fec = new FECRate(FECRate.FECRate35); break; case "Rate4_5": fec = new FECRate(FECRate.FECRate45); break; case "Rate5_11": fec = new FECRate(FECRate.FECRate511); break; case "Rate5_6": fec = new FECRate(FECRate.FECRate56); break; case "Rate6_7": fec = new FECRate(FECRate.FECRate67); break; case "Rate7_8": fec = new FECRate(FECRate.FECRate78); break; case "Rate8_9": fec = new FECRate(FECRate.FECRate89); break; case "Rate9_10": fec = new FECRate(FECRate.FECRate910); break; } break; case "CollectionType": switch (reader.ReadString()) { case "EIT": CollectionType = CollectionType.EIT; break; case "MHEG5": CollectionType = CollectionType.MHEG5; break; case "OPENTV": CollectionType = CollectionType.OpenTV; break; case "MHW1": CollectionType = CollectionType.MediaHighway1; break; case "MHW2": CollectionType = CollectionType.MediaHighway2; break; case "FREESAT": CollectionType = CollectionType.FreeSat; break; case "PSIP": CollectionType = CollectionType.PSIP; break; case "DISHNETWORK": CollectionType = CollectionType.DishNetwork; break; case "BELLTV": CollectionType = CollectionType.BellTV; break; case "SIEHFERNINFO": CollectionType = CollectionType.SiehfernInfo; break; } break; case "Pilot": switch (reader.ReadString()) { case "NotSet": pilot = Pilot.NotSet; break; case "NotDefined": pilot = Pilot.NotDefined; break; case "On": pilot = Pilot.On; break; case "Off": pilot = Pilot.Off; break; default: pilot = Pilot.NotSet; break; } break; case "Rolloff": switch (reader.ReadString()) { case "NotSet": rollOff = RollOff.NotSet; break; case "NotDefined": rollOff = RollOff.NotDefined; break; case "Twenty": rollOff = RollOff.RollOff20; break; case "TwentyFive": rollOff = RollOff.RollOff25; break; case "ThirtyFive": rollOff = RollOff.RollOff35; break; default: rollOff = RollOff.NotSet; break; } break; case "Modulation": switch (reader.ReadString()) { case "ModBPSK": modulation = Modulation.BPSK; break; case "ModOQPSK": modulation = Modulation.OQPSK; break; case "Mod8Psk": modulation = Modulation.PSK8; break; case "Mod1024Qam": modulation = Modulation.QAM1024; break; case "Mod112Qam": modulation = Modulation.QAM112; break; case "Mod128Qam": modulation = Modulation.QAM128; break; case "Mod16Qam": modulation = Modulation.QAM16; break; case "Mod160Qam": modulation = Modulation.QAM160; break; case "Mod192Qam": modulation = Modulation.QAM192; break; case "Mod224Qam": modulation = Modulation.QAM224; break; case "Mod256Qam": modulation = Modulation.QAM256; break; case "Mod32Qam": modulation = Modulation.QAM32; break; case "Mod320Qam": modulation = Modulation.QAM320; break; case "Mod384Qam": modulation = Modulation.QAM384; break; case "Mod448Qam": modulation = Modulation.QAM448; break; case "Mod512Qam": modulation = Modulation.QAM512; break; case "Mod64Qam": modulation = Modulation.QAM64; break; case "Mod640Qam": modulation = Modulation.QAM640; break; case "Mod768Qam": modulation = Modulation.QAM768; break; case "Mod80Qam": modulation = Modulation.QAM80; break; case "Mod896Qam": modulation = Modulation.QAM896; break; case "Mod96Qam": modulation = Modulation.QAM96; break; case "ModQPSK": modulation = Modulation.QPSK; break; } break; case "OpenTVCode": OpenTVCode = reader.ReadString(); break; default: break; } }
/// <summary> /// Find a satelllite frequency. /// </summary> /// <param name="frequency">The frequency to be searched for.</param> /// <param name="polarization">The polariz\ation of the frequency to be searched for.</param> /// <returns>The tuning frequency or null if it cannot be located.</returns> public SatelliteFrequency FindFrequency(int frequency, SignalPolarization polarization) { foreach (TuningFrequency tuningFrequency in Frequencies) { if (tuningFrequency.Frequency == frequency) { SatelliteFrequency satelliteFrequency = tuningFrequency as SatelliteFrequency; if (satelliteFrequency != null && satelliteFrequency.Polarization.Polarization == polarization.Polarization) return (satelliteFrequency); } } return (null); }
/// <summary> /// Find a provider given the broadcast parameters. /// </summary> /// <param name="frequency">The frequency of the provider.</param> /// <param name="symbolRate">The symbol rate of the provider.</param> /// <param name="fecRate">The FEC rate of the provider.</param> /// <param name="polarization">The polarization of the provider.</param> /// <returns>The provider or null if it cannot be located.</returns> public static Satellite FindProvider(int frequency, int symbolRate, FECRate fecRate, SignalPolarization polarization) { foreach (Satellite provider in Providers) { foreach (SatelliteFrequency satelliteFrequency in provider.Frequencies) { if (provider.Longitude == 1600) { int count = 0; count++; } if (satelliteFrequency.Frequency == frequency && satelliteFrequency.SymbolRate == symbolRate && satelliteFrequency.FEC.Rate == fecRate.Rate && satelliteFrequency.Polarization.Polarization == polarization.Polarization) return (provider); } } return (null); }
private int processSatelliteFrequency(string[] parameters) { if (parameters.Length != 5 && parameters.Length != 8) { Logger.Instance.Write("INI file format error: A Frequency line is wrong."); return (errorCodeFormatError); } try { int frequency = Int32.Parse(parameters[0].Trim()); int symbolRate = Int32.Parse(parameters[1].Trim()); FECRate fecRate = new FECRate(parameters[2]); SignalPolarization polarization = new SignalPolarization(parameters[3].Trim()[0]); Pilot pilot = Pilot.NotSet; RollOff rollOff = RollOff.NotSet; Modulation modulation = Modulation.QPSK; int nextParameter = 4; if (parameters.Length == 8) { pilot = (Pilot)Enum.Parse(typeof(Pilot), parameters[4]); rollOff = (RollOff)Enum.Parse(typeof(RollOff), parameters[5]); modulation = (Modulation)Enum.Parse(typeof(Modulation), parameters[6]); nextParameter = 7; } if (currentFrequency == null) currentFrequency = new SatelliteFrequency(); SatelliteFrequency satelliteFrequency = currentFrequency as SatelliteFrequency; satelliteFrequency.Frequency = frequency; satelliteFrequency.SymbolRate = symbolRate; satelliteFrequency.FEC = fecRate; satelliteFrequency.Polarization = polarization; satelliteFrequency.Pilot = pilot; satelliteFrequency.RollOff = rollOff; satelliteFrequency.Modulation = modulation; int errorCode = getCollectionType(parameters[nextParameter].Trim().ToUpperInvariant(), satelliteFrequency); if (errorCode != errorCodeNoError) return (errorCode); satelliteFrequency.SatelliteDish = currentDish; if (currentFrequency.Provider == null) currentFrequency.Provider = currentSatellite; TuningFrequency.FrequencyCollection.Add(satelliteFrequency); } catch (FormatException) { Logger.Instance.Write("INI file format error: A Frequency line is wrong."); return (errorCodeFormatError); } catch (ArithmeticException) { Logger.Instance.Write("INI file format error: A Frequency line is wrong."); return (errorCodeFormatError); } return (errorCodeNoError); }
private int processISDBSatelliteFrequency(string[] parameters) { if (parameters.Length != 5) { Logger.Instance.Write("INI file format error: A Frequency line is wrong."); return (errorCodeFormatError); } try { int frequency = Int32.Parse(parameters[0].Trim()); int symbolRate = Int32.Parse(parameters[1].Trim()); FECRate fecRate = new FECRate(parameters[2]); SignalPolarization polarization = new SignalPolarization(parameters[3].Trim()[0]); if (currentFrequency == null) currentFrequency = new ISDBSatelliteFrequency(); ISDBSatelliteFrequency satelliteFrequency = currentFrequency as ISDBSatelliteFrequency; satelliteFrequency.Frequency = frequency; satelliteFrequency.SymbolRate = symbolRate; satelliteFrequency.FEC = fecRate; satelliteFrequency.Polarization = polarization; int errorCode = getCollectionType(parameters[4].Trim().ToUpperInvariant(), satelliteFrequency); if (errorCode != errorCodeNoError) return (errorCode); satelliteFrequency.SatelliteDish = currentDish; if (currentFrequency.Provider == null) currentFrequency.Provider = currentSatellite; TuningFrequency.FrequencyCollection.Add(satelliteFrequency); } catch (FormatException) { Logger.Instance.Write("INI file format error: A Frequency line is wrong."); return (errorCodeFormatError); } catch (ArithmeticException) { Logger.Instance.Write("INI file format error: A Frequency line is wrong."); return (errorCodeFormatError); } return (errorCodeNoError); }
/// <summary> /// Find a provider given the broadcast parameters. /// </summary> /// <param name="frequency">The frequency of the provider.</param> /// <param name="symbolRate">The symbol rate of the provider.</param> /// <param name="fecRate">The FEC rate of the provider.</param> /// <param name="polarization">The polarization of the provider.</param> /// <returns>The provider or null if it cannot be located.</returns> public static ISDBSatelliteProvider FindProvider(int frequency, int symbolRate, FECRate fecRate, SignalPolarization polarization) { foreach (ISDBSatelliteProvider provider in Providers) { foreach (ISDBSatelliteFrequency satelliteFrequency in provider.Frequencies) { if (provider.Longitude == 1600) { int count = 0; count++; } if (satelliteFrequency.Frequency == frequency && satelliteFrequency.SymbolRate == symbolRate && satelliteFrequency.FEC.Rate == fecRate.Rate && satelliteFrequency.Polarization.Polarization == polarization.Polarization) { return(provider); } } } return(null); }
internal void load(XmlReader reader) { switch (reader.Name) { case "CarrierFrequency": Frequency = Int32.Parse(reader.ReadString()); break; case "Polarisation": switch (reader.ReadString()) { case "CircularL": polarization = new SignalPolarization(SignalPolarization.CircularLeft); break; case "CircularR": polarization = new SignalPolarization(SignalPolarization.CircularRight); break; case "LinearH": polarization = new SignalPolarization(SignalPolarization.LinearHorizontal); break; case "LinearV": polarization = new SignalPolarization(SignalPolarization.LinearVertical); break; } break; case "SymbolRate": symbolRate = Int32.Parse(reader.ReadString()); break; case "InnerFecRate": switch (reader.ReadString()) { case "Rate1_2": fec = new FECRate(FECRate.FECRate12); break; case "Rate1_3": fec = new FECRate(FECRate.FECRate13); break; case "Rate1_4": fec = new FECRate(FECRate.FECRate14); break; case "Rate2_3": fec = new FECRate(FECRate.FECRate23); break; case "Rate2_5": fec = new FECRate(FECRate.FECRate25); break; case "Rate3_4": fec = new FECRate(FECRate.FECRate34); break; case "Rate3_5": fec = new FECRate(FECRate.FECRate35); break; case "Rate4_5": fec = new FECRate(FECRate.FECRate45); break; case "Rate5_11": fec = new FECRate(FECRate.FECRate511); break; case "Rate5_6": fec = new FECRate(FECRate.FECRate56); break; case "Rate6_7": fec = new FECRate(FECRate.FECRate67); break; case "Rate7_8": fec = new FECRate(FECRate.FECRate78); break; case "Rate8_9": fec = new FECRate(FECRate.FECRate89); break; case "Rate9_10": fec = new FECRate(FECRate.FECRate910); break; } break; case "CollectionType": switch (reader.ReadString()) { case "EIT": CollectionType = CollectionType.EIT; break; case "MHEG5": CollectionType = CollectionType.MHEG5; break; case "OPENTV": CollectionType = CollectionType.OpenTV; break; case "MHW1": CollectionType = CollectionType.MediaHighway1; break; case "MHW2": CollectionType = CollectionType.MediaHighway2; break; case "FREESAT": CollectionType = CollectionType.FreeSat; break; case "PSIP": CollectionType = CollectionType.PSIP; break; case "DISHNETWORK": CollectionType = CollectionType.DishNetwork; break; case "BELLTV": CollectionType = CollectionType.BellTV; break; case "SIEHFERNINFO": CollectionType = CollectionType.SiehfernInfo; break; } break; case "OpenTVCode": OpenTVCode = reader.ReadString(); break; default: break; } }