Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
14 / 14 / 2
Регистрация: 11.11.2010
Сообщений: 78

SerialPort и потоки - оправдано ли их использование

20.02.2012, 15:21. Показов 3140. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всё очень просто, для тех, у кого это не первый раз, помогите понять, как и где и вобще зачем использовать поток при работе с ВинФорм и СериалПорт? Прочел уйму примеров, тыкал-перетыкивал куски кода, извелся...
Ну не получается создать поток, прочесть данные с COM порта и вернуть данные в TextBox на форме.

C#
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
using System;
using System.Windows.Forms;
using System.Threading;
using System.IO.Ports;
 
namespace Serial
{
    public partial class MainForm : Form
    {
        private string SendData;
 
        public MainForm()
        {
            InitializeComponent();
            SP.Open();
            SP.NewLine = "\r"; // данные приходят #1233C0\r
        }
 
        private void SP_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            SendData = SP.ReadLine();
            WriteData(SendData);
        }
 
 
        private void WriteData(string data)
        {
            MainText.Text +=  data;
        }
 
    }
}
Не знаю, важно это или нет, но это обычный картосчтитыватель для унификации пользователя. Т.е. эти данные должны выводиться при каждом поднесении карты.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.02.2012, 15:21
Ответы с готовыми решениями:

Потоки в VB .NET - в каком случае их использование оправдано?
Прошу подсказать по потокам. Смысл потоков узнал только сегодня, наткнувшись на пример winkode Код примера: Imports...

Потоки SerialPort
Накидал на форму элементов, всё работает кроме функции, срабатывающей при получении данных с порта т.е. System::Void...

serialPort, форма и потоки
Допустим, на форме имеется label и к проекту прикручен стандртный компонент "serialPort" По приему байта пытаемся изменить текст...

3
 Аватар для mikhail_g
192 / 147 / 27
Регистрация: 02.05.2011
Сообщений: 467
20.02.2012, 20:41
Вы пользовались готовым компонентом?

Проверьте настройки СОМ порта - BaudRate, parity, StopBits, Databits, handshake. Все это должно совпадать с настройками на вашем ПК в диспетчере устройств. Ещё возможной причиной может быть отсутсвие параметра ReadTimeOut - отвечает за интервал времени, в течение которого должно произойти считывание байт.

Добавлено через 1 минуту
Попробуйте читать данные методом Read - он возвращает кол-во прочитанных байт, а так же сам массив байт заданного размера.
0
14 / 14 / 2
Регистрация: 11.11.2010
Сообщений: 78
21.02.2012, 09:50  [ТС]
Проблемы с приемом и анализом данных нет, исключение вызывает попытка доступа к TextBox на форме из другого потока.
Цитата Сообщение от ВоффкаNew Посмотреть сообщение
C#
1
2
3
4
private void WriteData(string data)
 {
 MainText.Text += data;
 }
Впринципе проблему решил используя делегаты и потоки, но просто интересно, есть ли вариант проще?
0
22 / 21 / 8
Регистрация: 17.02.2011
Сообщений: 399
22.02.2012, 09:46
Мне кажется, таким образом второй поток уже открыт, так что без вариантов. Если меня поправят в чем я не прав буду только благодарен, сам намучался.
Есть вариант без события, по MSDN, но там вообще открывается второй поток, стартует, а основной поток ждет join пока не завершится второй.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.02.2012, 09:46
Помогаю со студенческими работами здесь

Когда использование конструктора оправдано?
Всем доброго дня. Вникаю в PHP, да и в целом в программирование. Подскажите в чем разница между двумя нижеприведенными конструкциями: ...

Оправдано ли использование БД? Если да, то насколько?
Понравился форум, решил спросить. Есть у меня текстовые данные 20 -40мб (может и больше). С текстом будут производиться операции поиска и...

На сколько оправдано использование конструкции try - catch
Все привет. Вот разбираюсь с кодом,который не так давно написал. И с ужасом обнаружил большое количество try - catch в методах, которые в...

Насколько оправдано в данном случае использование макросов?
Вопрос в шапке, код(проверен на std=C89): #ifdef _REENTERANT #include <pthread.h> pthread_mutex_t lm=PTHREAD_MUTEX_INITIALIZER;...

Оправдано ли использование лотус для веб-приложений
Господа, хочется обменятся мнениями. Прошу проголосовав обосновать выбор. Как по вашему оправдано ли использование лотуса для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru