Форум: Техническая поддержка

Тема: C#.WindowsForms.Неадекватные данные на выходе функции ProcessData().

Вы не вошли.

 Поиск | Регистрация | Вход 

11.08.2021 09:53:51
#1

Участник
Здесь с 11.08.2021
Сообщений: 6

C#.WindowsForms.Неадекватные данные на выходе функции ProcessData().

Здравствуйте.
Проблема следующая: Я решил написать приложение на C# для опроса модуля Ltr114 с использованием Windows Forms. За основу взял пример для C# с вашего сайта. Создал класс с исполняемым методом (ИМ), в котором производится запуск, опрос, и остановка модуля. Запустил метод через BackgroundWorker. Для передачи данных между потоками создал класс-хранилище и посылал его экземпляр из ИМ (как аргумент UserState) в главный поток используя метод BackgroundWorker'а - ReportProgress().
В ИМ после вызова функции ProcessData(), получаю массив обработанных данных типа double - data. Однако при попытке получить строчное представление его(data) элементов функция ToString() выдает результат - "не число".
Странно то, что если делать консольное приложение с той же логикой (буквально использовать тот же класс с ИМ и пользоваться BackgroundWorker) массив data содержит нормальные данные, строчные представления которых можно получить ф-цией ToString().

Т.к. это первый опыт написание приложения на C# для работы с модулями LTR возникают следующие вопросы:
1) Правильно ли подключена ваша библиотека ltrModulesNet и только ли она нужна?
2) Если не затруднит, ответьте здесь ошибаюсь я в написании программы или же в случае с Windows Forms действительно происходит какой-то сбой в работе ProcessData()?

Прикладываю к сообщению в архиве три проекта, сделанные в VisualStudio 2012.
1) Приложение Windows Forms с использованием BackgroundWorker;
2) Консольное приложение с использованием Thread;
3)Консольное приложение с использованием BackgroundWorker;

Ответ можете отправить на почту gug.shm@mail.ru

Заранее спасибо!

11.08.2021 09:56:00
#2

Участник
Здесь с 11.08.2021
Сообщений: 6

Re: C#.WindowsForms.Неадекватные данные на выходе функции ProcessData().

Т.к. не уверен, что проекты прикрепились - готов выслать их на почту, если предоставите.

11.08.2021 12:05:48
#3

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,087

Re: C#.WindowsForms.Неадекватные данные на выходе функции ProcessData().

Да, что-то не вижу прикрепленных проектов. Можете выслать на support@lcard.ru с указанием, что для Борисова Алексея.

12.08.2021 09:49:22
#4

Участник
Здесь с 11.08.2021
Сообщений: 6

Re: C#.WindowsForms.Неадекватные данные на выходе функции ProcessData().

Алексей L Card пишет:

Да, что-то не вижу прикрепленных проектов. Можете выслать на support@lcard.ru с указанием, что для Борисова Алексея.

Сообщение получено?

12.08.2021 20:36:53
#5

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,087

Re: C#.WindowsForms.Неадекватные данные на выходе функции ProcessData().

Да, получил проекты.
Это происходит из-за отсутствия вызова функции GetConfig(), в примере WinForms вызов GetModuleInfo после Open у Вас закомментирован, в отличие от консольного примера.

В GetConfig читаются калибровочные коэффициенты из памяти модуля, которые используются в ProcessData для получения результирующих значений, и без них она не может корректно перевести значения.

Правда соглашусь, что не очень хорошо, что библиотека не реагирует на эту ситуацию более предсказуемым образом (возвращая ошибку или автоматом читая их, если не было прочитано), но в общем без GetConfig получение значений для LTR114 корректно не будет выполняться.

13.08.2021 11:19:41
#6

Участник
Здесь с 11.08.2021
Сообщений: 6

Re: C#.WindowsForms.Неадекватные данные на выходе функции ProcessData().

Спасибо большое!

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25
Факс: +7 (495) 785-95-14

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск

L-CARD в проектах