示例#1
0
        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;
            }
        }
示例#2
0
 private void SETTINGS_VAL_Parse(object[] parameters)
 {
     buoyAddrCbx.Invoke((MethodInvoker) delegate { BuoyAddr = (RedBASE_Addr)(int)parameters[0]; });
     State = AppState.DEV_SETTINGS_RECEIVED;
 }