Poniżej zamieszczam fragment kodu, do którego mam następujące pytanie:
chciałabym wyświetlić wyliczone dane "result", stosuję do tego: MessageBox.Show("Estymowany zasięg lotu silnikowego wynosi: " + result + " m"+"\n" + "Przewidywana długość lotu: " + Tsilmin + " min"). Jednak wyskakuje mi nie jedno okienko, a kilkanaście z tym wynikiem lub komunikat z System.Windows.Forms.MessageBox.Show("Aby wysłać bajt musisz ustanowić połączenie"). Mógłby mi ktoś pomóc?
Również nie do końca rozumiem linijki: port.Write(tosend, 0, 1) w metodzie butSend_Click.
I jeszcze jedno pytanie jeżeli chciałabym wyświetlić dane w terminalu w aplikacji okienkowej (rtbTerminal) za pomocą metody WpiszOdebrane, jak powinny wyglądać komendy?? Próbowałam coś takiego: DodajKolorowy(rtbTerminal, "Zasięg:"+ result.ToString(), System.Drawing.Color.Blue); Ale result nie ejst zdefiniowany dla tej metody i nie działa :(
Dodatkowo jak wyświetlić dane tylko z jednego handlera, którego nazwa została wybrana w combox?
Bardzo dziękuję Wam za pomoc!
namespace TutorialCOM
{
public partial class TutorialCOM : Form
{
System.IO.Ports.SerialPort port;
delegate void Delegat1();
Delegat1 moj_del1;
public TutorialCOM()
{
InitializeComponent();
port = new SerialPort();
port.ReadTimeout = 500;
port.WriteTimeout = 500;
Opcje.Enter += new EventHandler(Opcje_Enter);
port.DataReceived += new SerialDataReceivedEventHandler(DataRecievedHandler);
port.DataReceived += new SerialDataReceivedEventHandler(DataRecievedHandler1);
port.DataReceived += new SerialDataReceivedEventHandler(DataRecievedHandler2);
moj_del1 = new Delegat1(WpiszOdebrane);
comboBox1.Items.Add("Statek powietrzny z silnikiem spalinowym");
comboBox1.Items.Add("Statek powietrzny z silnikiem elektrycznym");
comboBox1.Items.Add("Szybowiec");
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedItem.ToString() == "Statek powietrzny z silnikiem spalinowym")
{
port.DataReceived += new SerialDataReceivedEventHandler(DataRecievedHandler);
}
else if (comboBox1.SelectedItem.ToString() == "Statek powietrzny z silnikiem elektrycznym")
{
port.DataReceived += new SerialDataReceivedEventHandler(DataRecievedHandler1);
}
else if (comboBox1.SelectedItem.ToString() == "Szybowiec")
{
port.DataReceived += new SerialDataReceivedEventHandler(DataRecievedHandler2);
}
}
private void DataRecievedHandler(object sender, SerialDataReceivedEventArgs e)
{
//.....
//(ALGORYTM OBLICZAJACY
//wyniki
double S;
S = Math.Sqrt((Sxwynik * Sxwynik) + (Sywynik * Sywynik));
string result = S.ToString();
MessageBox.Show("Estymowany zasięg lotu silnikowego wynosi: " + result + " m"+"\n" + "Przewidywana długość lotu: " + Tsilmin + " min");
}
private void DataRecievedHandler1(object sender, SerialDataReceivedEventArgs e)
{
//.....
//ALGORYTM OBLICZAJACY
//wyniki
double S;
S = Math.Sqrt((Sxwynik * Sxwynik) + (Sywynik * Sywynik));
string result = S.ToString();
MessageBox.Show("Estymowany zasięg lotu akumulatorowego wynosi: " + result + " m\n" + "Przewidywana długość lotu: " + Telmin + " min");
}
private void DataRecievedHandler2(object sender, SerialDataReceivedEventArgs e)
{
//.....
//(ALGORYTM OBLICZAJACY
//wyniki
double S;
S = Math.Sqrt((Sxwynik * Sxwynik) + (Sywynik * Sywynik));
string result = S.ToString();
MessageBox.Show("Estymowany zasięg lotu ślizgowego wynosi: " + result + " m\n" + "Przewidywana długość lotu:" + Tslizgmin + " min");
}
private void WpiszOdebrane()
{
// DodajKolorowy(rtbTerminal, "Zasięg:"+ moj_del1.ToString(), System.Drawing.Color.Blue);
//DodajKolorowy(rtbTerminal, ((Int32)numericSend.Value).ToString() + " ", System.Drawing.Color.Black);
}
private void butSend_Click(object sender, EventArgs e)
{
if (port.IsOpen)
{
Byte[] tosend = { (Byte)numericSend.Value, (Byte)numericSend2.Value, (Byte)numericSend3.Value, (Byte)numericSend4.Value, (Byte)numericSend7.Value, (Byte)numericSend8.Value, (Byte)numericSend5.Value, (Byte)numericSend6.Value, (Byte)numericSend9.Value, (Byte)numericSend10.Value, (Byte)numericSend11.Value };
port.Write(tosend, 0, 1);
}
else System.Windows.Forms.MessageBox.Show("Aby wysłać bajt musisz ustanowić połączenie");
}
}