Есть устройство (весы), которое на Com-порт кидает со скоростью 10 раз в секунду значение (текстовая строчка). Мне нужно написать приложение позволяющее слушать Com-порт и выводить эту строчку на экран.
При запуске, программа должна сразу читать данные из порта. Вроде ничего сложного. Вывожу значение в простой Label. Если запускаю приложение, то всё ок, если мне требуется остановить порт, а затем запустить, то столкнулся с тем, что Label не успевает отрисовывать, либо наоборот слишком быстро идет обновление. Сделал таким образом:
public void Service_Start()
{
try
{
serial.PortName = "COM1";
serial.BaudRate = 9600;
serial.Handshake = System.IO.Ports.Handshake.None;
serial.Parity = Parity.None;
serial.DataBits = 8;
serial.StopBits = StopBits.One;
serial.ReadTimeout = 200;
serial.Open();
serial.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(Recieve);
}
catch (Exception)
{
MessageBox.Show("Не удается найти Com Port. Пожалуйста проверьте настройки подключения");
}
}
private delegate void UpTDelegate(string text);
private void Recieve(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
recieved_data = serial.ReadExisting();
Dispatcher.Invoke(DispatcherPriority.Send, new UpTDelegate(WriteData), recieved_data);
}
private void WriteData(string text)
{
lbl_receive.Content = "Вес: " + text;
}
lbl_receive
- это как раз Label
в который нужно выводить инфу постоянно
Можете подсказать?
Пытаюсь сделать почтовый клиентВозникла проблема с xaml
В этом фрагменте вылетает ошибка
Я создал проект в WPF C#Я использовал DataGrid
Доброго времени суток, ГосподаМне нужно написать небольшое приложение, которое будет представлять примерно вот такой интерфейс: На рисунке...