private void BUT_connect_Click(object sender, EventArgs e)
{
if (comPort.IsOpen)
{
threadrun = false;
comPort.Close();
BUT_connect.Text = Strings.Connect;
try
{
basedata.Close();
basedata = null;
}
catch
{
}
}
else
{
status_line3 = null;
try
{
switch (CMB_serialport.Text)
{
case "NTRIP":
comPort = new CommsNTRIP();
CMB_baudrate.SelectedIndex = 0;
((CommsNTRIP) comPort).lat = MainV2.comPort.MAV.cs.lat;
((CommsNTRIP) comPort).lng = MainV2.comPort.MAV.cs.lng;
((CommsNTRIP) comPort).alt = MainV2.comPort.MAV.cs.altasl;
break;
case "TCP Client":
comPort = new TcpSerial();
CMB_baudrate.SelectedIndex = 0;
break;
case "UDP Host":
comPort = new UdpSerial();
CMB_baudrate.SelectedIndex = 0;
break;
case "UDP Client":
comPort = new UdpSerialConnect();
CMB_baudrate.SelectedIndex = 0;
break;
default:
comPort = new SerialPort();
comPort.PortName = CMB_serialport.Text;
break;
}
Settings.Instance["SerialInjectGPS_port"] = CMB_serialport.Text;
Settings.Instance["SerialInjectGPS_baud"] = CMB_baudrate.Text;
}
catch
{
CustomMessageBox.Show(Strings.InvalidPortName);
return;
}
try
{
comPort.BaudRate = int.Parse(CMB_baudrate.Text);
}
catch
{
CustomMessageBox.Show(Strings.InvalidBaudRate);
return;
}
try
{
comPort.ReadBufferSize = 1024*64;
comPort.Open();
try
{
basedata = new BinaryWriter(new BufferedStream(
File.Open(
Settings.Instance.LogDir + Path.DirectorySeparatorChar +
DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss") + ".gpsbase", FileMode.CreateNew,
FileAccess.ReadWrite, FileShare.None)));
}
catch (Exception ex2)
{
CustomMessageBox.Show("Error creating file to save base data into " + ex2.ToString());
}
}
catch (Exception ex)
{
CustomMessageBox.Show("Error Connecting\nif using com0com please rename the ports to COM??\n" +
ex.ToString());
return;
}
// inject init strings - m8p
if (chk_m8pautoconfig.Checked)
{
this.LogInfo("Setup M8P");
ubx_m8p.SetupM8P(comPort, basepos, int.Parse(txt_surveyinDur.Text, CultureInfo.InvariantCulture),
double.Parse(txt_surveyinAcc.Text, CultureInfo.InvariantCulture));
}
t12 = new System.Threading.Thread(new System.Threading.ThreadStart(mainloop))
{
IsBackground = true,
Name = "injectgps"
};
t12.Start();
BUT_connect.Text = Strings.Stop;
msgseen.Clear();
bytes = 0;
}
}