private void Parcheggia() { try { timer_refresh.Stop(); if (Messaggi.YesNo("ATTENZIONE!! In fase di parcheggio non è possibile agire sulla cupola e sulla montatura. Continuare?") == DialogResult.Yes) { label_azimut.Text = "---"; label_altezza.Text = "---"; label_posizione_montatura.Text = "---"; label_posizione_cupola.Text = "---"; RiceviDatiMONT(":KA#:KA#"); ARDU.WriteLine("Q"); richTextBoxCommunication.Text += Environment.NewLine + "Send Q to Arduino. N.:17"; Funzioni.Wait(90000, progressBar); Messaggi.Show("Parcheggio avvenuto con successo"); } else { Messaggi.ShowWarning("La montatura non è parcheggiata"); } timer_refresh.Start(); evento_parcheggia = false; } catch (Exception ex) { Messaggi.ShowException("Errore al parcheggia", ex); } }
private void Button_parcheggia_Click(object sender, EventArgs e) { evento_muovi = false; evento_insegui = false; evento_parcheggia = true; ARDU.WriteLine("Q"); richTextBoxCommunication.Text += Environment.NewLine + "Send Q to Arduino. N.:5"; Funzioni.Wait(30000, progressBar); Messaggi.Show("Parcheggio cupola avvenuto con successo"); }
private void AccendiMontatura() { try { if (Funzioni.GetStatus("MONTATURA").Equals("OFF")) { ARDU.WriteLine("A"); if (Messaggi.YesNo("Ricerca satelliti in corso, non sarà possibile agire sul programma...") == DialogResult.Yes) { Funzioni.Wait(90000, progressBar); } else { return; } Funzioni.SetStatus("MONTATURA", "ON"); button_accendi_pannello.Visible = false; Messaggi.ShowWarning("ATTENZIONE!! Settare la porta seriale della montatura da tastierino.\n\t- Menù\n\t- Impostazioni\n\t- Porta GPS\n\t- Seriale\n\t- OK"); ARDU.WriteLine("VG"); richTextBoxCommunication.Text += Environment.NewLine + "Send VG to Arduino. N.:9"; button_accendi.Text = "Spegni montatura"; button_accendi.BackColor = Color.Green; button_muovi.Visible = true; button_cupola.Visible = true; button_piu.Visible = true; button_insegui.Visible = true; button_meno.Visible = true; button_parcheggia.Visible = true; } else if (Funzioni.GetStatus("MONTATURA").Equals("ON")) { if (Messaggi.YesNo("ATTENZIONE!! Settare la porta GPS della montatura da tastierino.\n\t- Menù\n\t- Impostazioni\n\t- Porta GPS\n\t- GPS\n\t- OK\n\nE' stato fatto?") == DialogResult.Yes) { ARDU.WriteLine("A"); richTextBoxCommunication.Text += Environment.NewLine + "Send A to Arduino. N.:10"; Messaggi.Show("Spegnimento montatura, non sarà possibile agire sul programma..."); Funzioni.Wait(20000, progressBar); ARDU.WriteLine("g"); richTextBoxCommunication.Text += Environment.NewLine + "Send g to Arduino. N.:11"; Funzioni.SetStatus("MONTATURA", "OFF"); button_accendi_pannello.Visible = true; button_accendi.Text = "Accendi montatura"; button_accendi.BackColor = Color.Red; } } } catch (Exception ex) { Messaggi.ShowException("Errore all'accensione della montatura", ex); } }
private void Button_meno_Click(object sender, EventArgs e) { try { ARDU.WriteLine("s"); richTextBoxCommunication.Text += Environment.NewLine + "Send s to Arduino. N.:8"; } catch (Exception ex) { Messaggi.ShowException("Errore al Button_meno_Click", ex); } }
private void SpegniPannello() { string messaggioPannello = String.Empty; try { if (Funzioni.GetStatus("PANNELLO").Equals("ON")) { messaggioPannello = "lo spegnimento"; } else if (Funzioni.GetStatus("PANNELLO").Equals("OFF")) { messaggioPannello = "l'accensione"; } if (Messaggi.YesNo("ATTENZIONE!! Hai richiesto " + messaggioPannello + " del pannello, procedere?") == DialogResult.Yes) { ARDU.WriteLine("x"); richTextBoxCommunication.Text += Environment.NewLine + "Send x to Arduino. N.:19"; Funzioni.Wait(5000, progressBar); if (Funzioni.GetStatus("PANNELLO").Equals("ON")) { Funzioni.SetStatus("PANNELLO", "OFF"); button_accendi_pannello.Text = "Accendi pannello"; button_accendi_pannello.BackColor = Color.Red; } else if (Funzioni.GetStatus("PANNELLO").Equals("OFF")) { Funzioni.SetStatus("PANNELLO", "ON"); button_accendi_pannello.Text = "Spegni pannello"; button_accendi_pannello.BackColor = Color.Green; } button_accendi.Visible = true; } } catch (Exception ex) { Messaggi.ShowException("Errore in accensione pannello", ex); } }
private void Ti_sconnetto_alla_chiusura(object sender, EventArgs e) { try { if (Funzioni.GetStatus("MONTATURA").Equals("ON")) { if (Messaggi.YesNo("E' stata richiesta la chiusura del programma. Non è sicuro procedere se la montatura non è stata spenta correttamente. Spegnere?") == DialogResult.Yes) { AccendiMontatura(); Funzioni.SetStatus("MONTATURA", "OFF"); } } if (Funzioni.GetStatus("PANNELLO").Equals("ON")) { if (Messaggi.YesNo("E' stata richiesta la chiusura del programma. Non è sicuro procedere se la montatura non è stata spenta correttamente. Spegnere?") == DialogResult.Yes) { SpegniPannello(); Funzioni.SetStatus("PANNELLO", "OFF"); } } if (ARDU.IsOpen) { ARDU.WriteLine("g"); richTextBoxCommunication.Text += Environment.NewLine + "Send g to Arduino. N.:1"; ARDU.Close(); } if (MONT.IsOpen) { MONT.Close(); } Application.Exit(); } catch (Exception ex) { Messaggi.ShowException("Errore Ti_sconnetto_alla_chiusura", ex); } }
private string RiceviDatiARDU(string invio_dati) { string dati_ricevuti = String.Empty; ARDU.WriteLine(invio_dati); int nProve = 100, nTest = 0; try { while (String.IsNullOrWhiteSpace(dati_ricevuti) && String.IsNullOrEmpty(dati_ricevuti) && nTest < nProve) { dati_ricevuti = ARDU.ReadExisting(); nTest++; } return(dati_ricevuti); } catch (Exception ex) { Messaggi.ShowException("Errore in ricevi_dati_ARDU", ex); return("---"); } }
private void Button_cupola_Click(object sender, EventArgs e) { try { if (button_cupola.Text.Equals("Apri portellone")) { ARDU.WriteLine("C"); richTextBoxCommunication.Text += Environment.NewLine + "Send C to Arduino. N.:3"; button_cupola.Text = "Chiudi portellone"; } else if (button_cupola.Text.Equals("Chiudi portellone")) { ARDU.WriteLine("c"); richTextBoxCommunication.Text += Environment.NewLine + "Send c to Arduino. N.:4"; button_cupola.Text = "Apri portellone"; } } catch (Exception ex) { Messaggi.ShowException("Errore in button_cupola_Click", ex); } }
private void ControlloPioggia() { try { string piove = RiceviDatiARDU("E"); if (piove.Equals("P")) { MessageBox.Show("ATTENZIONE!! Piove", "Cupola Remota"); label_pioggia.Text = "Piove"; ARDU.WriteLine("Q"); richTextBoxCommunication.Text += Environment.NewLine + "Send Q to Arduino. N.:6"; MONT.WriteLine(":KA#:KA#"); timer_refresh.Stop(); } else if (piove.Equals("NP")) { label_pioggia.Text = "Non piove"; } } catch (Exception ex) { Messaggi.ShowException("Errore al ControlloPioggia", ex); } }
private void Insegui() { try { double azimut = 0, altezza = 0; string datiRicevuti = RiceviDatiMONT(":GZ#:GZ#") + RiceviDatiMONT(":GA#:GA#"); if (datiRicevuti.Length == 14 && //22 Double.TryParse(datiRicevuti.Substring(0, 3), out double azg) && Double.TryParse(datiRicevuti.Substring(4, 2), out double azp) && Double.TryParse(datiRicevuti.Substring(7, 3), out double alg) && Double.TryParse(datiRicevuti.Substring(11, 2), out double alp)) { azimut = azg + azp / 60; altezza = alg + alp / 60; } label_risposta_da_montatura.Text = datiRicevuti; label_altezza.Text = Math.Round(altezza, 2).ToString(); string azimutString = String.Empty; double posizioneMontatura = Funzioni.P_M(azimut, ref azimutString); label_azimut.Text = azimutString; label_posizione_montatura.Text = Convert.ToInt32(posizioneMontatura).ToString(); int posizioneCupola = 0; string arduP = RiceviDatiARDU("P").Split('-')[0]; //piedi cupola solo la prima cifra if (!arduP.Equals(String.Empty) && Int32.TryParse(arduP, out posizioneCupola)) { label_posizione_cupola.Text = posizioneCupola.ToString(); } if (posizioneMontatura > posizioneCupola + 2 * Funzioni.GENERAL_OFFSET) { ARDU.WriteLine("VD"); richTextBoxCommunication.Text += Environment.NewLine + "Send VD to Arduino. N.:12"; } else if (posizioneMontatura < posizioneCupola + 2 * Funzioni.GENERAL_OFFSET && posizioneMontatura > posizioneCupola + Funzioni.GENERAL_OFFSET) { ARDU.WriteLine("vD"); richTextBoxCommunication.Text += Environment.NewLine + "Send vD to Arduino. N.:13"; } else if (posizioneMontatura < posizioneCupola - 2 * Funzioni.GENERAL_OFFSET) { ARDU.WriteLine("VS"); richTextBoxCommunication.Text += Environment.NewLine + "Send VS to Arduino. N.:14"; } else if (posizioneMontatura > posizioneCupola - 2 * Funzioni.GENERAL_OFFSET && posizioneMontatura < posizioneCupola - Funzioni.GENERAL_OFFSET) { ARDU.WriteLine("vS"); richTextBoxCommunication.Text += Environment.NewLine + "Send vS to Arduino. N.:15"; } else if (posizioneMontatura > posizioneCupola - Funzioni.GENERAL_OFFSET && posizioneMontatura < posizioneCupola + Funzioni.GENERAL_OFFSET) { ARDU.WriteLine("F"); richTextBoxCommunication.Text += Environment.NewLine + "Send F to Arduino. N.:16"; } } catch (Exception ex) { Messaggi.ShowException("Errore in insegui", ex); } }
private void Button_connetti_Click(object sender, EventArgs e) { try { if (button_connetti.Text.Equals("Connetti")) { if (!Object.Equals(ComboBox_porta_montatura.SelectedItem, null) && !Object.Equals(ComboBox_porta_arduino.SelectedItem, null) && !Object.Equals(ComboBox_all_nto.SelectedItem, null)) { MONT.Close(); MONT.PortName = ComboBox_porta_montatura.SelectedItem.ToString(); MONT.BaudRate = 9600; MONT.DataBits = 8; MONT.Parity = Parity.None; MONT.StopBits = StopBits.One; MONT.Handshake = Handshake.None; MONT.Encoding = System.Text.Encoding.Default; //molto importante!!! MONT.ReadTimeout = 10000; MONT.Open(); ARDU.Close(); ARDU.PortName = ComboBox_porta_arduino.SelectedItem.ToString(); ARDU.BaudRate = 9600; ARDU.DataBits = 8; ARDU.Parity = Parity.None; ARDU.StopBits = StopBits.One; ARDU.Handshake = Handshake.None; ARDU.Encoding = System.Text.Encoding.Default; //molto importante!!! ARDU.ReadTimeout = 10000; ARDU.Open(); timer_refresh.Enabled = true; timer_refresh.Start(); button_connetti.Text = "Disconnetti"; if (Funzioni.GetStatus("MONTATURA").Equals("OFF")) { button_accendi_pannello.Visible = true; } if (Funzioni.GetStatus("MONTATURA").Equals("ON")) { ARDU.WriteLine("G"); } if (Funzioni.GetStatus("PANNELLO").Equals("OFF")) { button_accendi_pannello.Visible = true; } if (Funzioni.GetStatus("PANNELLO").Equals("ON")) { button_accendi_pannello.Visible = true; } if (ComboBox_all_nto.SelectedIndex == (int)Funzioni.Allineamenti.AstroPhysics) { Funzioni.currentAllignment = Funzioni.Allineamenti.AstroPhysics; } else if (ComboBox_all_nto.SelectedIndex == (int)Funzioni.Allineamenti.RitcheyChrétien) { Funzioni.currentAllignment = Funzioni.Allineamenti.RitcheyChrétien; } Funzioni.SYSTEM_IS_CONNECTED = !Funzioni.SYSTEM_IS_CONNECTED; } else { MessageBox.Show("Selezionare una porta o un allineamento adeguato", "Cupola Remota"); } } else if (button_connetti.Text.Equals("Disconnetti")) { ARDU.WriteLine("g"); richTextBoxCommunication.Text += Environment.NewLine + "Send g to Arduino. N.:2"; MONT.Close(); ARDU.Close(); timer_refresh.Stop(); button_connetti.Text = "Connetti"; } } catch (Exception ex) { Messaggi.ShowException("Errore in button_connetti_Click", ex); } }