Récupérer données avec un backgrounder
Bonjour,
J'aurais souhaité savoir comment il était possible de récupérer les données de ma carte arduino en direct.
Je sais actuellement qu'il est possible de faire ça avec un backgrounder. Et je pense que c'est la méthode la plus appropriée. :D
Voici mon programme :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| public partial class MainWindow : Window
{
SerialPort mySerialPort = new SerialPort("COM12", 115200);
public MainWindow()
{
worker.DoWork += worker_DoWork;
worker.RunWorkerCompleted += worker_RunWorkerCompleted;
InitializeComponent();
}
private readonly BackgroundWorker worker = new BackgroundWorker
{
WorkerReportsProgress = true
};
private void btnStart_Click(object sender, RoutedEventArgs e)
{
try
{
mySerialPort.BaudRate = 115200;
mySerialPort.Open();
labelScore.Content = "Connected";
worker.RunWorkerAsync();
}
catch (Exception)
{
MessageBox.Show("Please give a valid port number or check your connection");
}
}
private void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
if (e.UserState != null)
{
labelScore.Content = data;
}
}
public string data;
private void worker_DoWork(object sender, DoWorkEventArgs e)
{
data = mySerialPort.ReadLine();
}
private void worker_RunWorkerCompleted(object sender,
RunWorkerCompletedEventArgs e)
{
}
} |
Mais bon voilà, je veux changer mon label en direct dès qu'une donnée est renvoyer dans l'arduino.
ça fonctionne pour le premier coup mais ensuite quand je renvoie des données avec l'arduino, mon label ne s'actualise pas...
Merci de votre aide :)