public MainForm() { InitializeComponent(); var portNames = SerialPort.GetPortNames(); if (portNames.Length > 0) { #region Other buoyAddrCbx.Items.AddRange(Enum.GetNames(typeof(RedBASE_Addr))); BuoyAddr = RedBASE_Addr.REDBASE_ADDR_INVALID; #endregion #region NMEA NMEAParser.AddManufacturerToProprietarySentencesBase(ManufacturerCodes.TNT); NMEAParser.AddProprietarySentenceDescription(ManufacturerCodes.TNT, "0", "x"); // ACK $PTNT0,errCode NMEAParser.AddProprietarySentenceDescription(ManufacturerCodes.TNT, "4", "x,x"); // LOC_DATA_GET $PTNT4,dataID,reserved NMEAParser.AddProprietarySentenceDescription(ManufacturerCodes.TNT, "5", "x,x"); // LOC_DATA_VAL $PTNT5,dataID,dataVal NMEAParser.AddProprietarySentenceDescription(ManufacturerCodes.TNT, "!", "c--c,x,c--c,x,x,c--c"); // DEV_INFO $PTNT!,sys_moniker,sys_ver,dev_type,core_moniker,core_ver,dev_serial_num NMEAParser.AddProprietarySentenceDescription(ManufacturerCodes.TNT, "7", "x"); // SETTINGS_GET $PTNT7,reserved NMEAParser.AddProprietarySentenceDescription(ManufacturerCodes.TNT, "8", "x,x"); // SETTINGS_SET $PTNT8,buoyAddr,isInverted NMEAParser.AddProprietarySentenceDescription(ManufacturerCodes.TNT, "9", "x,x"); // SETTINGS_VAL $PTNT9,buoyAddr,isInverted #endregion #region timer timer = new PrecisionTimer(); timer.Period = 1000; timer.Mode = Mode.Periodic; timer.Tick += new EventHandler(timer_Tick); timer.Started += new EventHandler(timer_Started); timer.Stopped += new EventHandler(timer_Stopped); #endregion #region port port = new NMEASerialPort(new SerialPortSettings("COM1", BaudRate.baudRate9600, Parity.None, DataBits.dataBits8, StopBits.One, Handshake.None)); port.NewNMEAMessage += new EventHandler <NewNMEAMessageEventArgs>(port_NewNMEAMessage); port.PortError += new EventHandler <SerialErrorReceivedEventArgs>(port_Error); port.IsRawModeOnly = false; #endregion portNameCbx.Items.AddRange(portNames); portNameCbx.SelectedIndex = 0; State = AppState.PORT_CLOSED; } else { State = AppState.PORT_ABSENT; } }
private void SETTINGS_VAL_Parse(object[] parameters) { buoyAddrCbx.Invoke((MethodInvoker) delegate { BuoyAddr = (RedBASE_Addr)(int)parameters[0]; }); State = AppState.DEV_SETTINGS_RECEIVED; }