Итак, я уже решил отправить Arduino в мою проблему с GUI (активно получил). Но грустно сказать, что появляется еще одна проблема. Я не могу обновить свой графический интерфейс, используя функции моего графического интерфейса, такие как Disabler() - >>, которые будут отключать кнопки.SerialDataReceived Проблемы с событием
Итак, вот мой пример кода.
Для моих данных Полученного события
private void Senport_DataReceived(Object sender, SerialDataReceivedEventArgs e)
{
SerialPort Senport = (SerialPort)sender;
rdata = Senport.ReadLine();
ShowWindow();
}
Для моей Показать окно Функции
public void ShowWindow()
{
if(rdata.Contains("FEED")==true)
{
MessageBox.Show("Feeds already being dispense!","Feeding Process",MessageBoxButton.OK,MessageBoxImage.Information);
}
else if(rdata.Contains("DRINK")==true)
{
MessageBox.Show("Drinkable water already being dispense!", "Drinking Water Process",MessageBoxButton.OK,MessageBoxImage.Information);
}
else if(rdata.Contains("CLEAN")==true)
{
MessageBox.Show("Cleaning the cage is done!", "Cleaning Process",MessageBoxButton.OK,MessageBoxImage.Information);
}
else if(rdata.Contains("Fsms")==true)
{
MessageBox.Show("Feeds Dispensing is starting","Drinking Water Process",MessageBoxButton.OK,MessageBoxImage.Information);
}
else if(rdata.Contains("Dsms")==true)
{
MessageBox.Show("Water Dispensing is starting", "Drinking Water Process",MessageBoxButton.OK,MessageBoxImage.Information);
}
else if(rdata.Contains("Csms")==true)
{
MessageBox.Show("Cleaning Process is starting", "Cleaning Process",MessageBoxButton.OK,MessageBoxImage.Information);
}
}
Но я хотел бы использовать эту функцию ниже, но ошибка исключения выскочит.
public void Disabler()
{
switch(flagger)
{
case 1: FEED.IsEnabled=false; FEED2.IsEnabled=false; Clean.IsEnabled=false; break;
case 2: Clean.IsEnabled=false; FEED.IsEnabled=false; FEED2.IsEnabled=false; break;
case 3: Clean.IsEnabled=false; FEED.IsEnabled=false; FEED2.IsEnabled=false; break;
}
}
Как я могу использовать эту функцию? Кстати, ошибка говорит о том, что эта функция не находится в одном потоке. Надеюсь, ты можешь мне помочь: D Спасибо!
«Исключительная ошибка появится», какое исключение или ошибка вы видите? Какова функциональность, выполняемая методом Disbler? Где объявляются «FEED», «FEED2», «Clean» и т. Д.? –
Говорят, я могу использовать его, потому что он находится в другом потоке. Функция Disabler() - отключить кнопки для того, сколько секунд или часов. Так что я описываю это выше. –
Got it ... Как и где вы вызываете метод Disabler()? можете ли вы объяснить пример использования или функциональность, которую вы пытаетесь достичь? –