using GpsClient2.NmeaMessages; using System; namespace GpsClient2 { public class NmeaParser { /// /// Parses a string to the NmeaMessage class. /// /// The nmea string that need to be parsed. /// Returns an NmeaMessage class. If it cannot parse it will return null. public NmeaMessage Parse(string message) { if (!message.StartsWith("$")) { return null; } var messageParts = message.RemoveAfter("*").Split(','); var classType = NmeaConstants.GetClassType(messageParts[0].TrimStart('$')); var newInstance = (NmeaMessage)Activator.CreateInstance(classType); newInstance.Parse(messageParts); return newInstance; } } }