Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 314
1

Функция считывания информации

10.01.2020, 16:57. Показов 519. Ответов 6
Метки нет (Все метки)

Добрый день. С помощью программы необходимо считать информацию о результатах работы прибора. Запускаю программу и какое-то время происходит пока прибор работает и по окончанию нужно забрать эти данные с прибора. Для этого запускаю функцию, которая заберет эти данные. Но возникла трудность, измерение всегда происходит разное время. Я примерно знаю, что измерение точно будет проходить N минут. И запускаю таймер, чтобы через N минут запустить функцию по считыванию результатов с прибора. Всё отлично, если измерение прошло раньше, а вот если измерение еще не закончилось, то всё зависает, до того момента пока измерение не завершится. Подскажите, пожалуйста, как можно запустить функцию, чтобы сразу после измерения получить результаты работы.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2020, 16:57
Ответы с готовыми решениями:

Есть ли в С++ функция для считывания информации с файла с подробной настройкой?
Есть ли в С++ функция для считывания информации с файла с подробной настройкой?Мне нужно будет...

Считывания информации с класса и ее вывод
static class Book1 extends BookBuilder { void buildTitle() { book.setTitle("Война и...

Демон для считывания информации с процессора
Здравствуйте, пишу демон считывания информации с процессора. По другому метаданные. Проблема...

Использование CURL для считывания информации из дивов
Хочу попробовать написать самостоятельно скрипт, ибо очень нужен, который будет считывать...

6
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 314
13.01.2020, 16:53  [ТС] 2
Думаю сложно написал я, то есть измерение происходит разное время, и по окончанию измерения мне надо запустить функцию?
Пытался сделать таймер, который заранее запустит таймер с функцией считывания, но т.к. она срабатывает раньше, чем прибор выполнил работу, то вместо результата, получаю я ошибку. Подскажите, как можно запустить эту функцию и получить данные. Самое плохое, что прибор не говорит (не посылает команду, что измерение окончено).

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
        void StartTimer() 
        {
            Task.Factory.StartNew(() =>
            {
                while (ts.Seconds != -1)
                {
                    Thread.Sleep(1000);
                    ts = ts.Subtract(new TimeSpan(0, 0, 1));
                }
 
                if (ts.Minutes == -0 && ts.Seconds == -1)
                {
                    var method = new MethodInvoker(() =>
                    {
                        timer2.Enabled = true;
                    });
 
                    if (InvokeRequired)
                        BeginInvoke(method);
                    else
                        method();
                }
            });
        }
0
345 / 207 / 125
Регистрация: 18.03.2018
Сообщений: 727
13.01.2020, 21:04 3
MAKC13, а данные как считываются??? откуда берется информация с прибора??
0
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 314
13.01.2020, 21:26  [ТС] 4
Voronkin, прибор производит измерение и результат этих изменений необходимо получить. Запускается измерение путем нажатия кнопки на приборе. Имеется протокол передачи данных с прибора, но сложность в том, что данные можно только самому с прибора. Прибор самостоятельно не передаёт в компьютер никакие команды.
0
345 / 207 / 125
Регистрация: 18.03.2018
Сообщений: 727
13.01.2020, 21:31 5
тогда я не совсем понимаю, как Вы хотите получить данные и зачем Вам тогда таймер. поясните ситуацию. Прибор отработал, данные (как я понимаю на приборе).
Цитата Сообщение от MAKC13 Посмотреть сообщение
но т.к. она срабатывает раньше, чем прибор выполнил работу, то вместо результата, получаю я ошибку.
. А если таймер срабатывает позже, что дальше происходит?? Я хочу понять, как прибор и программа взаимодействуют.
0
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 314
13.01.2020, 22:32  [ТС] 6
Voronkin, я может сам в голове построил себе не верный алгоритм, но ситуация такая. Имеется прибор, который производит измерения и протокол передачи данных. Прибор согласно протоколу не может оповещать компьютер о том, что произведено новое измерение. Вообще прибор сам ничего не передаёт. С помощью программы можно только залезть в память программы и забрать последние данные. Я думал сделать так: в программе нажимать кнопку измерить и считать с прибора последние измерения, далее делать измерения с помощью прибора, а далее каким-то образом считать автоматом новые измерения. Сейчас получается, если таймер срабатывает раньше, то при попытке получения результатов происходит ошибка
0
345 / 207 / 125
Регистрация: 18.03.2018
Сообщений: 727
13.01.2020, 22:35 7
тогда сделай проверку через try. Допустим в таймере пропиши попытку получить данные, через каждые 10-20 секунд. так ты сможешь обойти ошибку. если данные получены, то сработает try, в который помести код, который должен выполняться при получении данных.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.01.2020, 22:35

Считывания информации из файла для массива от записи
В общем ситуация такая: Есть массив от записи, в полях которой есть еще массивы. Хочу из файла...

Микроконтроллер для считывания информации из блока управления котла
Здравствуйте! Современные беспроводные термостаты стоят дорого (от 10 до 15 тыс. рублей), и поэтому...

Пропускает операторы считывания информации после первой итерации
Доброго времени суток всем. Все кому лень читать предистории можете смело пропускать следующие...

Функция считывания
ребят подскажите функцию, которая считывает данные из файла (координаты многоугольника), и...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru