![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| arkonst |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 31.10.2007 Репутация: 1 Всего: 1 |
Всем привет!
Подскажите пожалуйста, как понять эту запись: while (!mb.SendFc3(Convert.ToByte(txtSlaveID.Text), pollStart, pollLength, ref values)) ; тут в общем то код мне понятен, не понятно для чего там стоит "!" перед mb??? Извеняюсь за тупой вопрос, я конечно понимаю что он символизирует NOT(НЕ) но не могу понять зачем он тут.Для лучшей читабельности ниже привожу полный код. //Read registers and display data in desired format: try { while (!mb.SendFc3(Convert.ToByte(txtSlaveID.Text), pollStart, pollLength, ref values)) ; } catch(Exception err) { DoGUIStatus("Error in modbus read: " + err.Message); } Заранее спасибо за ответ. |
|||
|
||||
| QryStaL |
|
|||
![]() Intellectual feast ![]() ![]() Профиль Группа: Участник Сообщений: 914 Регистрация: 30.11.2005 Репутация: 14 Всего: 32 |
Этот код эквивалентен следующему:
-------------------- I don't need a reason being who I am... |
|||
|
||||
| Wizard_Memfis |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 193 Регистрация: 12.2.2007 Где: г. Донецк, Украин а Репутация: 1 Всего: 4 |
Я так понимаю, что вопрос несколько в другом: функция возвращает bool?Если да , QryStaL уже сказал!А вот если нет, то действительно не понятно!!!Он не ругается на это?
--------------------
www.binary-studio.com |
|||
|
||||
| thomas |
|
|||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 6 Всего: 65 |
Всем привет
А мне не понятно, зачем вообще нужен этот while если у него нет сигнатуры.
Как гриться, на фига козе баян? -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
|||
|
||||
| 1stain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 30.7.2007 Где: Киев - Харьков Репутация: 8 Всего: 40 |
видимо функция проверяет порт на наличие данных. Пока данных нет - крутиццо пустой цикл. Как только данные пришли - из цикла выходим.
з.ы. глянул сюда Simple Modbus Protocol in C# / .NET 2.0 имхо сделано слегка коряво: насколько я понял, цикл будет крутиццо в случае обрыва связи с устройством до бесконечности... п-моему, лучше сделать примерно так:
Это сообщение отредактировал(а) 1stain - 15.11.2007, 11:41 -------------------- Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein) ![]() |
|||
|
||||
| thomas |
|
|||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 6 Всего: 65 |
1stain,
возможно -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
|||
|
||||
| FREEDEV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 6.3.2007 Где: Украина->Одесс а Репутация: 1 Всего: 3 |
thomas, Да вроде бы все корректно .
while циклиться пока SendFc3 не вернет false, если в процессе цикла произойдет исключение – вываливаемся в Exception, выполняем DoGUIStatus. Добавлено через 57 секунд оп, уже решилось --------------------
Microsoft Windows Visla © |
|||
|
||||
| 1stain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 30.7.2007 Где: Киев - Харьков Репутация: 8 Всего: 40 |
по данному поводу вопрос к ТС: ты читал мсходники того, что используешь? исключения обрабатываются внутри функции SendFc3, а информацию об ошибке несет modbusStatus таким образом, перехват исключений здесь не надобен -------------------- Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein) ![]() |
|||
|
||||
| FREEDEV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 6.3.2007 Где: Украина->Одесс а Репутация: 1 Всего: 3 |
1stain, я вообще не в курсе работы этой функции, просто выдвинул предположение.
ну, тогда исключения от Convert.ToByte(txtSlaveID.Text) кто обработает --------------------
Microsoft Windows Visla © |
|||
|
||||
| 1stain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 486 Регистрация: 30.7.2007 Где: Киев - Харьков Репутация: 8 Всего: 40 |
FREEDEV, я тоже ввобще-то не в курсе работы этой функции
по-моему не стоит перехватывать все исключения, без исключения перехват Exception от Convert.ToByte(txtSlaveID.Text) и вывод его message в этом контексте DoGUIStatus("Error in modbus read: " + err.Message); мало чем поможет в плане понятия причины ошибки чтения данных, только собъет с толку. -------------------- Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein) ![]() |
|||
|
||||
| FREEDEV |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 6.3.2007 Где: Украина->Одесс а Репутация: 1 Всего: 3 |
это да, но ятак понимаю что код уже написан кем-то, остается разбираться зачем оно так --------------------
Microsoft Windows Visla © |
|||
|
||||
| arkonst |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 54 Регистрация: 31.10.2007 Репутация: 1 Всего: 1 |
Привет всем!
Смотрю тут такое обсуждение организовалось)) Проясню некоторые моменты...код этот уже готовый и работает вроде нормально...я его вырезал и вставлял в свою программу.... если нужен исходник то прикрепляю Присоединённый файл ( Кол-во скачиваний: 5 )
ModbusPollCS.zip 37,47 Kb |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |