Синхронизация
Синхронизация
Уважаемые форумчане, подскажите пожалуйста, где можно прочитать про функции синхронизации labview?
Я думаю, что мне проще будет сначала с ними познакомиться поближе, а потом задавать вопросы на эту тему =)
Я думаю, что мне проще будет сначала с ними познакомиться поближе, а потом задавать вопросы на эту тему =)
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Синхронизация
О какой синхронизации идёт речь? О синхронизации параллельных потоков?
http://labviewportal.org/ru/programmiro ... mendannymi
http://labviewportal.org/ru/programmiro ... mendannymi
Re: Синхронизация
Да, мне нужно синхронизовать сбор данных параллельных потоков.
Допустим так: у меня есть один поток, данные которого пишутся в файл. Одно значение приходит раз в 2 мс примерно.
Другой поток может собирать данные примерно с этой же скоростью или со скоростью в 100 раз большей, я могу выставить практически любую скорость сбора данных. Но ключевым моментом является то, что значение со второго потока должно попадать в файл в тот же момент, когда и значение с первого потока. Или с задержкой в 1мс(опционально).
Допустим так: у меня есть один поток, данные которого пишутся в файл. Одно значение приходит раз в 2 мс примерно.
Другой поток может собирать данные примерно с этой же скоростью или со скоростью в 100 раз большей, я могу выставить практически любую скорость сбора данных. Но ключевым моментом является то, что значение со второго потока должно попадать в файл в тот же момент, когда и значение с первого потока. Или с задержкой в 1мс(опционально).
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Синхронизация
А ну да, для этого как раз то и нужно. Тебе нужно три потока, два из них собирают данные с различной частотой и передают их в третий например через очередь. А третий значит считывает (свою) очередь, в которую приходят данные то с одного, то с другого. Одни данные он временно сохраняет в сдвиговом регистре, а как только приходят другие он обьединяет сохранённые данные из сдвигового регистра с пришедшими, делает из них одну строку и добавляет в лог файл.
Re: Синхронизация
Я в восторге, спасибо большое))
Правда у меня один из циклов For, но переделать оказалось совсем несложно.
А вот в примере, где очередь из разных типов данных не могу избавиться от ошибки "no case for some selector values", подскажите пожалуйста как решить.
Правда у меня один из циклов For, но переделать оказалось совсем несложно.
А вот в примере, где очередь из разных типов данных не могу избавиться от ошибки "no case for some selector values", подскажите пожалуйста как решить.
-
taras_33
- professional
- Сообщения: 392
- Зарегистрирован: 31 окт 2009, 18:25
- Награды: 1
- Версия LabVIEW: 2019
- Поблагодарили: 13 раз
- Контактная информация:
Re: Синхронизация
Сделай один из кейсов по умолчанию (default), если на селектор придет команда, для которой нет кейса, тогда и будет выполнятся кейс, который ты сделал по умолчанию, заодно и ошибка твоя пропадетno case for some selector values
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning!
So far, the Universe is winning!
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Синхронизация
Да я пока хочу разобраться, как вот это делать)eg писал(а):Тебе нужно три потока, два из них собирают данные с различной частотой и передают их в третий например через очередь. А третий значит считывает (свою) очередь, в которую приходят данные то с одного, то с другого. Одни данные он временно сохраняет в сдвиговом регистре, а как только приходят другие он обьединяет сохранённые данные из сдвигового регистра с пришедшими, делает из них одну строку и добавляет в лог файл.
-
Eugen Graf
- guru
- Сообщения: 6502
- Зарегистрирован: 13 ноя 2007, 02:20
- Награды: 4
- Версия LabVIEW: 2009
- Откуда: Saarbrücken
- Контактная информация:
Re: Синхронизация
Пройди примеры по пунктам, займёт не так много времени, запусти в дибаг режиме, пойми что к чему. Потом разберись с сдвиг. регистром (что то на подобии временного буфера), потом попробуй реализовать вышепредложеное. Возникнут вопросы - спрашивай, для этого наш портал и существует.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение