public static NtripStream Parse(string line) { var item = new NtripStream(); string[] fields = line.Split(';'); string first = fields[0].ToUpper(); if (first != "STR") { throw new NotSupportedException("字符串错误"); } int i = 1; item.Mountpoint = fields[i++]; item.Identifier = fields[i++]; item.Format = fields[i++]; item.FormatDetails = fields[i++]; item.Carrier = fields[i++]; item.NavSystem = fields[i++]; item.Network = fields[i++]; item.Country = fields[i++]; item.Latitude = fields[i++]; item.Longitude = fields[i++]; item.Nmea = fields[i++]; item.Solution = fields[i++]; item.Generator = fields[i++]; item.ComprEncryp = fields[i++]; item.Authentication = fields[i++]; item.Fee = fields[i++]; item.Bitrate = fields[i++]; item.Misc = fields[i++]; return(item); }
public static NtripSourceTable Load(string path) { var manager = new NtripSourceTable(); using (StreamReader reader = new StreamReader(path, Encoding.Default)) { string line = null; while ((line = reader.ReadLine()) != null) { if (IsSourceLine(line)) { INtripSourceItem item; var first3Char = line.Substring(0, 3); var type = SourceTypeHelper.GetSourceType(first3Char); switch (type) { case SourceType.Stream: var NtripStreamItem = NtripStream.Parse(line); NtripStreamItem.CasterName = Path.GetFileNameWithoutExtension(path).Replace("-table", ""); item = NtripStreamItem; break; case SourceType.Caster: item = NtripCasterItem.Parse(line); break; case SourceType.Network: item = NtripNetwork.Parse(line); break; default: item = NtripCasterItem.Parse(line); break; } manager.GetOrCreate(item.SourceType).Add(item); } } } return(manager); }