private bool tryToConnectToCOM(string portName) { // init COM if (SerialPort1 != null) { SerialPort1.Close(); } SerialPort1 = null; try { SerialPort1 = Utils.InitSerialPort(portName); SerialPort1.DataReceived += myPort_DataReceived; DataStream.AppendText("Connected\n"); //lastSerialPortName = portName; } catch (System.UnauthorizedAccessException) { } catch (Exception e) { Console.WriteLine(e); DataStream.AppendText("Connection failed\n"); return(false); } return(true); }
private void map_Load(object sender, EventArgs e) { GMapProviders.GoogleMap.ApiKey = @"AIzaSyAZouhXULQgPGPckADOmiHqfCc_YvD5QzQ"; map.DragButton = MouseButtons.Left; map.MapProvider = GMapProviders.GoogleHybridMap; // map.Position = new PointLatLng(0, 0); map.MinZoom = 0; map.MaxZoom = 25; map.Zoom = 20; GMapOverlay markersOverlay = new GMapOverlay("markers"); map.Overlays.Add(markersOverlay); GMaps.Instance.Mode = AccessMode.CacheOnly; //cache only means offline , server only online , cache and server online but loads offline files to folder //map.CacheLocation = System.IO.Path.GetDirectoryName(Application.ExecutablePath); // ta linijka jest ok, przyda sie //https://stackoverflow.com/questions/40847505/gmap-net-explicit-load-cache <^ tu masz link to tego // ta widziałem // teraz patrze program do zapisywania cache https://github.com/williamwdu/GMap.NETChacher try { map.CacheLocation = @"E:/Visual Studios/Can-Sat-GUI-/cache"; } catch { DataStream.AppendText("Couldn't load map cache. Using online map.\n"); GMaps.Instance.Mode = AccessMode.CacheOnly; //cache only means offline , server only online , cache and server online but loads offline files to folder } }
private async void SendALineFromTextFileEverySecond() { string filepath = String.Empty; String fileExt = String.Empty; OpenFileDialog openFileDialog = new OpenFileDialog(); if (openFileDialog.ShowDialog() == DialogResult.OK) { filepath = openFileDialog.FileName; fileExt = Path.GetExtension(filepath); Console.WriteLine(filepath + " " + fileExt); try { StreamReader reader = new StreamReader(filepath); string line = ""; while ((line = reader.ReadLine()) != null && ComboBox1.GetItemText(ComboBox1.SelectedItem) == "Text File") { rxString = line + "\n"; this.Invoke(new EventHandler(UpdateWidgets)); await Task.Delay(1000); } DataStream.AppendText("EOF"); reader.Close(); } catch (Exception ex) { Console.WriteLine(ex); } } }
private async void ComPortConnetionRenewer() { while (true) { await Task.Delay(1000); if ((SerialPort1 == null || !SerialPort1.IsOpen) && ComboBox1.GetItemText(ComboBox1.SelectedItem) != "" && ComboBox1.GetItemText(ComboBox1.SelectedItem) != "Text File") { string dropdownText = ComboBox1.GetItemText(ComboBox1.SelectedItem); DataStream.AppendText("Connecting to " + dropdownText + "\n"); tryToConnectToCOM(dropdownText); } } }
private bool AutoDetectComPort() { for (int i = 2; i < 8; i++) { string portName = "COM" + i; bool connected = tryToConnectToCOM(portName); DataStream.AppendText("Connecting to " + portName + "\n"); if (connected) { ComboBox1.SelectedIndex = ComboBox1.FindStringExact(portName); return(true); } } return(true); }
private void start_pressure_Click_2(object sender, EventArgs _) { //double P, T, h; try { P0 = Convert.ToDouble(startalttxt.Text); //current preassure read by the cansat //T = Convert.ToDouble(temptxt.Text.Substring(0, temptxt.Text.Length - 2)); //current temperature read by the cansat //h = Convert.ToDouble(startalttxt.Text); //input box with current altitude } catch (Exception e) { DataStream.AppendText("Couldn't set pressure at ground station altitude (P0)\n"); Console.WriteLine(e); return; } // 321 m //P0 = Utils.SeaLevelPressure(h, P, T); // calc once at ground level DataStream.AppendText(P0 + " hPa set at ground level\n"); }
public async void UpdateWidgets(object sender, EventArgs e) { //162;-0.02;-0.12;0.88;0.06;0.12;0.00;277.36;247.41;384.70;1028.69;25.00;X;X;X;X;X;1:0:0;0.00;1.57;-7.42;-43.99 // RSSI; framenr; xaccel; yaccel; zaccel; xtilt; ytilt; ztilt; xmag; ymag; zmag; pressure; temp; lat; long; alt; speed; course; h:m:s:ms; hall DataStream.AppendText(rxString); string[] packetElems = Utils.ParsePacket(rxString); double time = Convert.ToInt32(timer.Elapsed.TotalSeconds); if (packetElems == null || packetElems.Length != 24) { Console.WriteLine("Skipped corrupted packet"); return; } rssitxt.Text = packetElems[0] + " dBm"; framenrtxt.Text = packetElems[1]; xacceltxt.Text = packetElems[2] + " G"; yacceltxt.Text = packetElems[3] + " G"; zacceltxt.Text = packetElems[4] + " G"; xtilttxt.Text = packetElems[5] + " °/s"; ytilttxt.Text = packetElems[6] + " °/s"; ztilttxt.Text = packetElems[7] + " °/s"; xmagtxt.Text = packetElems[8] + " µT"; ymagtxt.Text = packetElems[9] + " µT"; zmagtxt.Text = packetElems[10] + " µT"; psrtxt.Text = packetElems[11] + " hPa"; temptxt.Text = packetElems[12] + " C"; speedtxt.Text = packetElems[16] + "m/s"; coursetxt.Text = packetElems[17] + " °"; timetxt.Text = packetElems[18]; halltxt.Text = packetElems[19] + " Hz"; pitchtxt.Text = packetElems[20] + " °"; rolltxt.Text = packetElems[21] + " °"; yawtxt.Text = packetElems[22] + " °"; volttxt.Text = packetElems[23]; double pressure = Convert.ToDouble(packetElems[11]); double temperature = Convert.ToDouble(packetElems[12]); Upd.UpdateChart(chart2, pressure, time); if (packetElems[13] == "x" || packetElems[13] == "X") { lattxt.Text = "NO GPS"; longtxt.Text = "NO GPS"; previousAltitude = -1; } else { // lat; long; alt; speed; course lattxt.Text = packetElems[13]; longtxt.Text = packetElems[14]; double latitude = Convert.ToDouble(packetElems[13]); double Longitude = Convert.ToDouble(packetElems[14]); double Altitude; if (checkBox2.Checked) { Altitude = Utils.HypsometricFormula(P0, pressure, temperature); alttxt.Text = Altitude + " m"; } else { alttxt.Text = packetElems[15] + " m"; Altitude = Convert.ToDouble(packetElems[15]); } double speed = Convert.ToDouble(packetElems[16]); double course = Convert.ToDouble(packetElems[17]); double fallingSpeed; if (previousAltitude == -1) { fallingSpeed = 0; } else { fallingSpeed = previousAltitude - Altitude; } gauge1.Update(fallingSpeed); Upd.UpdateMap(map, latitude, Longitude, Altitude, fallingSpeed, speed, (int)course); lastPoint = new PointLatLng(latitude, Longitude); chart3D.Update(latitude, Longitude, Altitude); vertveltxt.Text = fallingSpeed.ToString() + " m/s"; previousAltitude = Altitude; Upd.UpdateChart(chart4, Altitude, time); Upd.UpdateChart(chart6, speed, time); pictureBox1.Image = Compass.DrawCompass(course / 100, 0, 80, 0, 80, pictureBox1.Size); } pitch = float.Parse(packetElems[20], CultureInfo.InvariantCulture.NumberFormat); roll = float.Parse(packetElems[21], CultureInfo.InvariantCulture.NumberFormat); yaw = float.Parse(packetElems[22], CultureInfo.InvariantCulture.NumberFormat); Upd.UpdateChart(chart1, temperature, time); // double course = (Convert.ToDouble(packetElems[17])/100); //Upd.UpdateChart(chart7, course, time); double Hall = Convert.ToDouble(packetElems[19]); double windSpeed = Utils.WindSpeed(Hall); Upd.UpdateChart(chart3, windSpeed, time); windtxt.Text = Convert.ToString(windSpeed);; double signal = Convert.ToDouble(packetElems[0]); //gauge2.Update(chart5, signal, time); double signalPercent = Utils.SignalStrengthInPercent(signal); gauge2.Update(signalPercent); // socketio string json = JsonConvert.SerializeObject(new { psrtxt = psrtxt.Text, tmptxt = temptxt.Text, txtLat = lattxt.Text, txtLong = longtxt.Text, hghttext = alttxt.Text }); try { _ = client.EmitAsync("data", json); } catch { } }