![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
arkonst |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 31.10.2007 Репутация: 1 Всего: 1 |
Здравствуйте коллеги.
Подскажите пожалуйста, как реализовать вывод на форму информации записанной в регистрах устройства, подключенного к последовательному порту компьютера. На данный момент я могу при помощи готового кода реализовать чтение только одного регистра и вывод его на форму. При попытке вывести хотя бы два, при запуске приложения возникает ошибка потоков. Для вывода одного использую этот код: #region GUI Объявление делегатов public delegate void GUIDelegate(string paramString); public delegate void GUIClear(); public delegate void GUIStatus(string paramString); #endregion #region Функции делегатов public void DoGUIClear() { if (this.InvokeRequired) { GUIClear delegateMethod = new GUIClear(this.DoGUIClear); this.Invoke(delegateMethod); } else this.Indication1.Items.Clear(); } public void DoGUIStatus(string paramString) { if (this.InvokeRequired) { GUIStatus delegateMethod = new GUIStatus(this.DoGUIStatus); this.Invoke(delegateMethod, new object[] { paramString }); } else this.lblStatus.Text = paramString; } public void DoGUIUpdate(string paramString) { if (this.InvokeRequired) { GUIDelegate delegateMethod = new GUIDelegate(this.DoGUIUpdate); this.Invoke(delegateMethod, new object[] { paramString }); } else this.Indication1.Items.Add(paramString); } #endregion Сначала думал что достаточным будит добавить в этом коде строчки например: this.Indication2.Items.Add(paramString) однако нет)) Как быть пока не знаю…может кто чем сможет помоч. Заранее спасибо. |
|||
|
||||
arkonst |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 31.10.2007 Репутация: 1 Всего: 1 |
Забыл еще привести кусок кода...
#region Poll Function private void PollFunction() { //Обновление GUI: DoGUIClear(); pollCount++; //Количество опрашиваемых регистров. short[] values = new short[1]; ushort pollStart; ushort pollLength; pollStart = 6; pollLength = 1; //Чтение регистров и перевод в нужный формат: try { while (!mb.SendFc3(1, pollStart, pollLength, ref values)) ; } catch (Exception err) { DoGUIStatus("Error in modbus read: " + err.Message); } int i = 0; string itemString; //Вывод на форму. itemString = values[i].ToString(); DoGUIUpdate(itemString); } #endregion Тут как раз и происходит чтение регистра, а код выше используется для вывода на форму. |
|||
|
||||
CYBERDREAM |
|
|||
![]() I think, there4 I am ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1096 Регистрация: 31.10.2006 Где: CyberLand Репутация: 11 Всего: 28 |
запихни лучше код в соответсвующие теги, читабельнее будет
-------------------- Ищем .Net, Java, Javascript разработчиков, Кипр, Лимассол. (знание английского необязательно) Telegram, skype: kuchuk.artiom |
|||
|
||||
archeg |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 6.1.2007 Где: Киев Репутация: 11 Всего: 27 |
и напиши что за вылетает ![]() -------------------- ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru) Дядька всегда можно спросить в аське, если не задалбывать - не откажет ![]() И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои ;) |
|||
|
||||
arkonst |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 31.10.2007 Репутация: 1 Всего: 1 |
Недопустимая операция в нескольких потоках: попытка доступа к элементу управления 'Indication2' не из того потока, в котором он был создан.
|
|||
|
||||
AnTON_G |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 26.10.2007 Репутация: нет Всего: нет |
||||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |