|
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 54
|
|
Чтение данных из файла и их передача через порт компьютера21.05.2017, 10:15. Показов 8538. Ответов 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-порт Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|