Chciałam Was zapytać o podpowiedź w rozwiązaniu następującego problemu:
stworzyłam aplikację okienkową w C# komunikującą się z Arduino (UART), poprzez apkę zadaje szereg danych wejściowych, które później za pomocą pewnego algorytmu chce wykorzystać do uzyskania jednej zmiennej wyjściowej i wyśwtetlić ponownie w aplikacji.
Proszę o poradę, w jaki sposób zapisać prostą operację np. dodawania zmiennych wpisywanych w okienkach o nazwach: numericSend + numericSend2. Poniżej przedstawiam kawałek kodu dla zobrazowania sytuacji:
using System.IO.Ports;
namespace TutorialCOM
{
public partial class TutorialCOM : Form
{
//zmienne użytkownika
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);
moj_del1 = new Delegat1(WpiszOdebrane);
}
private void DataRecievedHandler(object sender, SerialDataReceivedEventArgs e)
{
rtbTerminal.Invoke(moj_del1);
}
private void WpiszOdebrane()
{
DodajKolorowy(rtbTerminal, "Zasięg:", System.Drawing.Color.Blue);
}
//(.....)
private void butSend_Click(object sender, EventArgs e)
{
if (port.IsOpen)
{
DodajKolorowy(rtbTerminal, ((Int32)numericSend.Value).ToString() + " ", System.Drawing.Color.Black);
DodajKolorowy(rtbTerminal, ((Int32)numericSend2.Value).ToString() + " ", System.Drawing.Color.Black);
DodajKolorowy(rtbTerminal, ((Int32)numericSend3.Value).ToString() + " ", System.Drawing.Color.Black);
DodajKolorowy(rtbTerminal, ((Int32)numericSend4.Value).ToString() + " ", System.Drawing.Color.Black);
DodajKolorowy(rtbTerminal, ((Int32)numericSend7.Value).ToString() + " ", System.Drawing.Color.Black);
DodajKolorowy(rtbTerminal, ((Int32)numericSend8.Value).ToString() + " ", System.Drawing.Color.Black);
DodajKolorowy(rtbTerminal, ((Int32)numericSend5.Value).ToString() + " ", System.Drawing.Color.Black);
DodajKolorowy(rtbTerminal, ((Int32)numericSend6.Value).ToString() + " ", System.Drawing.Color.Black);
DodajKolorowy(rtbTerminal, ((Int32)numericSend9.Value).ToString() + " ", System.Drawing.Color.Black);
DodajKolorowy(rtbTerminal, ((Int32)numericSend10.Value).ToString() + " ", System.Drawing.Color.Black);
DodajKolorowy(rtbTerminal, ((Int32)numericSend11.Value).ToString() + " ", System.Drawing.Color.Black);
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");
}