0 / 0 / 0
Регистрация: 31.05.2017
Сообщений: 4
1

Обработка сигналов с датчиков смартфона

31.05.2017, 21:24. Показов 702. Ответов 7
Метки нет (Все метки)

Добрый вечер. Возникла проблема с обработкой сигналов с датчиков смартфона. Посылаю данные с телефона по udp протоколу. Данные приходят, но возникает следующая ошибка: "Warning: Unsuccessful read: The input buffer was filled before the Terminator was reached". Из-за этого не могу записать их в таблицу, а следовательно, построить хоть какие-либо графики. Помогите пожалуйста. Код прикладываю.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
instrreset
  clear
  clc
 
UDPComIn=udp('192.168.1.66','LocalPort',12345);
set(UDPComIn,'DatagramTerminateMode','off');
 
fopen(UDPComIn);
 
while 1
    csvdata=fscanf(UDPComIn);
    scandata=textscan(csvdata,'%f %f %f %f %f %f %f %f %f %f %f %f %f', 'Delimiter',',');
    data=[scandata{3},scandata{4},scandata{5}];
    comet(scandata{3});
  end
 
fclose(UDPComIn);
delete(UDPComIn)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2017, 21:24
Ответы с готовыми решениями:

Цифровая обработка сигналов
Всем добрый вечер! Нужна помощь в описании сигнала в программе МАТЛАБ Необходимо получить такой же...

Цифровая обработка сигналов. Фильтры
Добрый день. Имеется число выборок - порядка 10000, плюс минул пол трамвая ещё. Необходимо...

Обработка сигналов на основе вейвлет-преобразований
Помогите, пожалуйста, рассчитать энергетические характеристики. Задание и формулы в прикрепленном...

Распаралеливание сигналов с токовых датчиков?
Есть несколько датчиков (t, P, F) сигнал нормализованный 4-20мА, необходимо передать сигналы в 2...

7
505 / 412 / 43
Регистрация: 17.07.2013
Сообщений: 2,120
01.06.2017, 08:29 2
Цитата Сообщение от mib15 Посмотреть сообщение
возникает следующая ошибка:
Это сообщение не о ошибке, это предупреждение, что переполнен входной буфер.
Логично уменьшить объем входных данных или уменьшить их скорость?
Какой номер строки выдает это сообщение?
1
0 / 0 / 0
Регистрация: 31.05.2017
Сообщений: 4
01.06.2017, 10:20  [ТС] 3
Строку не пишет, но я уверен, что это 11-я строка. Ошибка появляется все время, до того момента, пока не выключу передачу данных. Если отображать данные(disp(csvdata)), то вот что выводит.
Matlab M
1
2
3
Warning: Unsuccessful read: The input buffer was filled before the Terminator was reached. 
320895.98221, 3,   0.124,  0.115,  9.778320896.04837, 3,   0.124,  0.115,  9.740, 4,   0.000,  0.000,  0.000320896.11438, 3,   0.115,  0.105,  9.759, 4,   0.000,  0.000,  0.000, 5,   4.093, 14.886,-45.147320896.18021, 3,   0.105,  0.124,  9.740, 4,   0.000,  0.000,  0.000, 5,   4.115, 16.412,-44.943320896.24639, 3,   0.134,  0.086,  9.778, 4,   0.000,  0.000, -0.000, 5,   3.640, 17.848,-44.582320896.31243, 3,   0.124,  0.086,  9.778, 4,   0.000,  0.000,  0.001, 5,   4.656, 18.806,-43.985320896.37820, 3,   0
Warning: Unsuccessful read: The input buffer was filled before the Terminator was reached.
Если поставить:
Matlab M
1
set(UDPComIn,'DatagramTerminateMode','on')
то ошибка исчезает, но и вся информация сразу удаляется.

Если же сделать так:
Matlab M
1
csvdata = fscanf(UDPComIn, '%f, %d, %f,%f,%f, %d, %f,%f,%f, %d, %f,%f,%f', [13 1000])
то данные записываются в матрицу, объем которой указан. Но это не совсем то, что нужно, плюс ко всему они не отображаются на графике.

И мне совсем не понятно, как можно сделать так, чтобы буфер не переполнялся, в то время строка данных читалась и записывалась в таблицу.
0
505 / 412 / 43
Регистрация: 17.07.2013
Сообщений: 2,120
01.06.2017, 10:31 4
Цитата Сообщение от mib15 Посмотреть сообщение
Но это не совсем то, что нужно
А почему Вы так считаете? Может просто формат не тот или пока служебная информация пишется.

Добавлено через 2 минуты
Цитата Сообщение от mib15 Посмотреть сообщение
чтобы буфер не переполнялся
Может поставить "пауза", чтобы успевал кусок данных записаться
1
0 / 0 / 0
Регистрация: 31.05.2017
Сообщений: 4
01.06.2017, 10:48  [ТС] 5
Кусок данных представляет собой строчку вида
"320895.98221, 3, 0.124, 0.115, 9.778320896.04837, 3, 0.124, 0.115, 9.740, 4, 0.000, 0.000, 0.000320896.11438,"
Как я понимаю, посылается несколько таких строчек, буфер переполняется, текущая строчка обрывается и начинает посылаться новая. В итоге, после этого, данные в scandata записываются вообще неверно. В одном стоблце смешиваются то одни показания, то другие. И это не то, что нужно.

Паузу где именно поставить? Если после или до "fscanf", то это не помогает
0
505 / 412 / 43
Регистрация: 17.07.2013
Сообщений: 2,120
01.06.2017, 13:48 6
Может указать формат и кол-во (вначале небольшое) данных?
A = fscanf(obj,'format',size)
1
0 / 0 / 0
Регистрация: 31.05.2017
Сообщений: 4
02.06.2017, 18:58  [ТС] 7
Сделал. Выходит предупреждение "Warning: Unsuccessful read: A timeout occurred before the Terminator was reached. .
Данные записываются в таблицу в нужном формате, однако каждый раз перезаписываются.

Добавлено через 21 час 35 минут
Вроде разобрался, спасибо. Только теперь другая проблема возникла.
0
505 / 412 / 43
Регистрация: 17.07.2013
Сообщений: 2,120
02.06.2017, 21:00 8
Цитата Сообщение от mib15 Посмотреть сообщение
Вроде разобрался, спасибо
Поделитесь информацией
А что за проблема?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.06.2017, 21:00

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Процесс обработки сигналов, поступающих с датчиков
Система обработки информации содержит мультиплексный канал и три мини-ЭВМ. Сигналы от датчиков...

Смоделировать процесс обработки 500 сигналов, поступающих с датчиков
Система обработки информации содержи мультиплексный канал и три мини-ЭВМ. Сигналы от датчиков...

Передача и прием сигналов c датчиков (температуры, влажности, задымленности) по электросети
Есть аналоговых 3 датчика (температуры , влажности, задымленности) при выходе значений из...

Обработка ЧМ сигналов(спектры ЧМ сигналов)
Доброго времени суток! Ранее задавала вопрос: "Алгоритм обработки ЧМ сигналов, основанный на...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.