0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
|
1 | |
Чтение данных из файла и их передача через порт компьютера21.05.2017, 10:15. Показов 7700. Ответов 67
Метки нет (Все метки)
Добрый день.
Есть задача: в текстовый файл в реальном времени пишется поток данных (углы наклона прибора в градусах). Необходимо считывать данные из этого файла в реальном времени и передавать их через COM- порт, с дальнейшей передачей данных на ЦАП и получения эквивалентного напряжения (из файла считалось, например, 5 градусов, дальше эти 5 градусов ушли через порт, там преобразовались в напряжение). Собственно вопросы: 1)Как это реализовать и что для этого надо? 2)Можно ли делать чтение с определенной строчки и до конца? Добавлено через 16 минут Либо вместо COM использовать USB
0
|
21.05.2017, 10:15 | |
Ответы с готовыми решениями:
67
Чтение/передача данных через USB порт Чтение данных через COM порт Передача данных через Com порт Передача данных через ИК порт |
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
21.05.2017, 12:03 | 2 |
А они в конец файла добавляются? Переполнение диска не происходит?
Надо чтобы файл открывался без блокировки разделяемого доступа. Как в torrent-клиентах. Тогда можно считывать параллельно с записью.
0
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
|
21.05.2017, 12:53 [ТС] | 3 |
Запускает программа, виртуально происходят манипуляции, автоматически создается файл с установленным именем и расширением (Data.txt) и просто сверху-вниз пишется колонка до тех пор, пока не остановится программа симуляции.
0
|
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
21.05.2017, 13:56 | 4 |
Ну так в чём проблема? Открывай его на чтение и обрабатывай.
0
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
|
21.05.2017, 14:38 [ТС] | 5 |
Проблема в том, что файл выглядит как:
данные1 | данные1 | данные3 | данные4| 1234134 | 1234134 | 1234134 | 1234134 | 1234134 | 1234134 | 1234134 | 1234134 | Мне нужно: 4 массива, чтобы 1 считывал только 1 колонку, второй только 2 и тд.
0
|
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
21.05.2017, 14:42 | 6 |
Считывание идёт строками. А распределять части строки можешь по разным массивам.
0
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
||||||
21.05.2017, 15:09 [ТС] | 7 | |||||
Еще момент: симуляция может идти сколь угодно долго, соответственно массив не должен быть переполнен. Либо надо перезаписать данные, чтобы старые пропадали, а поверх них заводились новые.
Добавлено через 24 минуты Использую эту конструкцию:
1)Кол-во строк не ограничено. 2)Старые данные стираются, поверх пишутся новые. Остались проблемы: 1)Как вытащить первые 16 символов строки в отдельный массив, как вторые 16 и тд. Колонок 4 шт
0
|
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
21.05.2017, 16:08 | 8 |
И где здесь решение? Ты же в массив не записал. И нужен ли он? Если отправка сразу идёт, то и накапливать больше одного набора незачем. Почему 16 символов? Четыре числа в строке. Ты как их передавать-то хочешь? Текстом, или там какой-то формат?
0
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
|
21.05.2017, 16:29 [ТС] | 9 |
Здесь пока только чтение из файла в массив arr. Идет построчно с перезаписью строки - новая пишется поверх старой.
Нужно: из каждой колонки вытащить цифры в свой отдельный массив, игнорируя пробелы и символ "|". Цифры должны быть как есть, то есть числовой формат, чтобы их потом можно было подать на порт, с порта сразу на ЦАП и дальше работать с напряжением. На фото исходный документ.
0
|
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
21.05.2017, 17:07 | 10 |
Ты так и не объяснил как они в порт пойдут. В бинарном виде, что ли? Как float или как double?
Если так, то используй fscanf() и четыре вещественных переменных.
0
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
|
21.05.2017, 17:22 [ТС] | 11 |
Они должны пойти как float, вот как они есть. И еще момент. Пока файл пишется, моя программа считывает данные в массив и заканчивает работу, т.е. данные в текстовик пишутся, а программа встала. Как мне сделать ее бесконечно рабочей? Чтобы данные записались в текстовик и тут же из него выдали в мою программу. В реальном времени работа, так сказать.
0
|
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
21.05.2017, 17:27 | 12 |
Цикл организуй.
С какой скоростью эти строки записываются?
0
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
|
21.05.2017, 17:46 [ТС] | 13 |
Как бы объяснить. Данные продолжают писаться, а программа застыла, то есть она прочла данные до момента открытия. Программа отработала и встала, как показано на рисунке, а данные продолжают писаться.
0
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
|
21.05.2017, 17:46 [ТС] | 14 |
Как бы объяснить. Данные продолжают писаться, а программа застыла, то есть она прочла данные до момента открытия. Программа отработала и встала:
0
|
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
21.05.2017, 18:11 | 15 |
Я же сказал - цикл.
0
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
||||||
21.05.2017, 19:33 [ТС] | 16 | |||||
Все получилось. Но появилась новая проблема. Данные в симуляции обновляются так быстро, что мое приложение не может его отображать своевременно. В связи с этим было использовано Sleep(n);. Теперь данные отображаются пачками через некоторый интервал. Вопрос: как сделать так, чтобы данные шли быстро, но и при этом их можно было рассмотреть без прерывания?
0
|
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
21.05.2017, 20:50 | 17 |
Зачем их рассматривать? С какой скорость они поступают?
0
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
||||||
22.05.2017, 15:06 [ТС] | 18 | |||||
Для наблюдления. А поступают так быстро, что консольное приложение просто не успевает их отображать. На глаз - каждые пол секунды поступают, наверное даже чаще. То есть приложение просто черный экран показывает, иногда цифра проскочит, но это нереально отображать
Добавлено через 3 часа 35 минут Данные поступают с частотой 99.9гц, Пишутся сверху-вниз, слева-направо построчно, т.е. 4 числа записалось в строку друг за другом с пробелами, строка закончилась и пошла новая. И я смог сделать забивание данных в массивы: 1 колонка - 1 массив, 2 колонка - 2 массив и тд. Но появилась проблема: после какого-то времени данные начинают спутываться и например массив 1 ловит данные 2 колонки, а массив 2 ловит данные 3 колонки и тд, т.е. данные съезжают. Как от этого избавиться.
0
|
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
||||||
22.05.2017, 16:50 | 19 | |||||
При частое 100 герц ты ничего не увидишь.
Чтобы данные не путались, попробуй так:
0
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
|
22.05.2017, 19:51 [ТС] | 20 |
Как ни странно, их видно, и достаточно хорошо)
Большое спасибо, это решило проблему! Это не важно) Следующий этап - перевод из char в float и подача float на порт.
0
|
22.05.2017, 19:51 | |
22.05.2017, 19:51 | |
Помогаю со студенческими работами здесь
20
Получение и передача данных через COM порт Передача и приём данных через COM порт Передача данных через последовательный порт Передача и приём данных через COM-порт Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта Gowin Eda и снимок. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
|
UserScript для подсветки кнопок языков программирования в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения:
/ / ==UserScript==
/ / @name CF_DefaultLangSelect
/ / . . .
|
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
|
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
|
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
|
Создание нейросети для генерации текста на Python
InfoMaster 12.01.2025
Нейросети, или искусственные нейронные сети, представляют собой модели машинного обучения, вдохновленные работой человеческого мозга. Они состоят из множества взаимосвязанных узлов, или "нейронов",. . .
|
Как создать нейросеть распознавания изображений на Python
InfoMaster 12.01.2025
Введение в распознавание изображений с помощью нейросетей
Распознавание изображений с помощью нейронных сетей стало одним из самых впечатляющих достижений в области искусственного интеллекта. Эта. . .
|
Основы искуственного интеллекта
InfoMaster 12.01.2025
Искусственный интеллект (ИИ) представляет собой одну из наиболее динамично развивающихся областей современной науки и технологий. В широком смысле под искусственным интеллектом понимается способность. . .
|
Python и нейросети
InfoMaster 12.01.2025
Искусственные нейронные сети стали неотъемлемой частью современных технологий, революционизировав множество областей - от медицинской диагностики до автономных транспортных средств. Python, благодаря. . .
|
Python в машинном обучении
InfoMaster 12.01.2025
Python стал неотъемлемой частью современного машинного обучения, завоевав позицию ведущего языка программирования в этой области. Его популярность обусловлена несколькими ключевыми факторами, которые. . .
|
Создание UI на Python с TKinter
InfoMaster 12.01.2025
TKinter — это одна из наиболее популярных библиотек для создания графических интерфейсов пользователей (GUI) в языке программирования Python. TKinter входит в стандартную библиотеку Python, что. . .
|
HTML5 в разработке мобильных приложений
InfoMaster 12.01.2025
Введение: Обзор роли HTML5 в мобильной разработке
В современном мире мобильных технологий HTML5 стал ключевым инструментом для разработки кроссплатформенных приложений. Эта технология произвела. . .
|