|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
|
Чтение данных из файла и их передача через порт компьютера21.05.2017, 10:15. Показов 8285. Ответов 67
Метки нет (Все метки)
Добрый день.
Есть задача: в текстовый файл в реальном времени пишется поток данных (углы наклона прибора в градусах). Необходимо считывать данные из этого файла в реальном времени и передавать их через COM- порт, с дальнейшей передачей данных на ЦАП и получения эквивалентного напряжения (из файла считалось, например, 5 градусов, дальше эти 5 градусов ушли через порт, там преобразовались в напряжение). Собственно вопросы: 1)Как это реализовать и что для этого надо? 2)Можно ли делать чтение с определенной строчки и до конца? Добавлено через 16 минут Либо вместо COM использовать USB
0
|
|
| 21.05.2017, 10:15 | |
|
Ответы с готовыми решениями:
67
Чтение/передача данных через USB порт
Передача данных через Com порт |
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 21.05.2017, 12:03 | |
|
А они в конец файла добавляются? Переполнение диска не происходит?
Надо чтобы файл открывался без блокировки разделяемого доступа. Как в torrent-клиентах. Тогда можно считывать параллельно с записью.
0
|
|
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
|
| 21.05.2017, 12:53 [ТС] | |
|
Запускает программа, виртуально происходят манипуляции, автоматически создается файл с установленным именем и расширением (Data.txt) и просто сверху-вниз пишется колонка до тех пор, пока не остановится программа симуляции.
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 21.05.2017, 13:56 | |
|
Ну так в чём проблема? Открывай его на чтение и обрабатывай.
0
|
|
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
|
| 21.05.2017, 14:38 [ТС] | |
|
Проблема в том, что файл выглядит как:
данные1 | данные1 | данные3 | данные4| 1234134 | 1234134 | 1234134 | 1234134 | 1234134 | 1234134 | 1234134 | 1234134 | Мне нужно: 4 массива, чтобы 1 считывал только 1 колонку, второй только 2 и тд.
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 21.05.2017, 14:42 | |
|
Считывание идёт строками. А распределять части строки можешь по разным массивам.
0
|
|
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
||||||
| 21.05.2017, 15:09 [ТС] | ||||||
|
Еще момент: симуляция может идти сколь угодно долго, соответственно массив не должен быть переполнен. Либо надо перезаписать данные, чтобы старые пропадали, а поверх них заводились новые.
Добавлено через 24 минуты Использую эту конструкцию:
1)Кол-во строк не ограничено. 2)Старые данные стираются, поверх пишутся новые. Остались проблемы: 1)Как вытащить первые 16 символов строки в отдельный массив, как вторые 16 и тд. Колонок 4 шт
0
|
||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 21.05.2017, 16:08 | |
|
И где здесь решение? Ты же в массив не записал. И нужен ли он? Если отправка сразу идёт, то и накапливать больше одного набора незачем. Почему 16 символов? Четыре числа в строке. Ты как их передавать-то хочешь? Текстом, или там какой-то формат?
0
|
|
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
||
| 21.05.2017, 16:29 [ТС] | ||
|
Нужно: из каждой колонки вытащить цифры в свой отдельный массив, игнорируя пробелы и символ "|". Цифры должны быть как есть, то есть числовой формат, чтобы их потом можно было подать на порт, с порта сразу на ЦАП и дальше работать с напряжением. На фото исходный документ.
0
|
||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 21.05.2017, 17:07 | |
|
Ты так и не объяснил как они в порт пойдут. В бинарном виде, что ли? Как float или как double?
Если так, то используй fscanf() и четыре вещественных переменных.
0
|
|
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
||
| 21.05.2017, 17:22 [ТС] | ||
|
0
|
||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 21.05.2017, 17:27 | |
|
Цикл организуй.
С какой скоростью эти строки записываются?
0
|
|
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
||
| 21.05.2017, 17:46 [ТС] | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
||
| 21.05.2017, 17:46 [ТС] | ||
|
0
|
||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 21.05.2017, 18:11 | |
|
Я же сказал - цикл.
0
|
|
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
|||||||
| 21.05.2017, 19:33 [ТС] | |||||||
0
|
|||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 21.05.2017, 20:50 | |
|
Зачем их рассматривать? С какой скорость они поступают?
0
|
|
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
|||||||
| 22.05.2017, 15:06 [ТС] | |||||||
|
Добавлено через 3 часа 35 минут Данные поступают с частотой 99.9гц, Пишутся сверху-вниз, слева-направо построчно, т.е. 4 числа записалось в строку друг за другом с пробелами, строка закончилась и пошла новая. И я смог сделать забивание данных в массивы: 1 колонка - 1 массив, 2 колонка - 2 массив и тд. Но появилась проблема: после какого-то времени данные начинают спутываться и например массив 1 ловит данные 2 колонки, а массив 2 ловит данные 3 колонки и тд, т.е. данные съезжают. Как от этого избавиться.
0
|
|||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
||||||
| 22.05.2017, 16:50 | ||||||
|
При частое 100 герц ты ничего не увидишь.
Чтобы данные не путались, попробуй так:
0
|
||||||
|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
||||
| 22.05.2017, 19:51 [ТС] | ||||
|
0
|
||||
| 22.05.2017, 19:51 | |
|
Помогаю со студенческими работами здесь
20
Передача данных через ИК порт Получение и передача данных через COM порт Передача и приём данных через COM порт Передача данных через последовательный порт Передача и приём данных через COM-порт Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|