• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

RTL00 MP3 player

A_D

Active member
Подозрения на панические атаки - так и запишите :)

А другая тема не относящаяся к вопросу то при чем? Нарушение ассоциативности мышления - тоже запишите.

На культ личности pvvx вам явно не нас..ть. Мания величия - тоже следует записать.
.... вот что случается, когда великолепный психолог лезет в программирование - даже на форуме лечит потенциальных клиентов.
 

pvvx

Активный участник сообщества
Последний вопрос как раз касается вас, A_D - вы хотели дать обществу измеритель потребления.... На RTL для INA219 я уже написал то, что в описано вопросе и прогнал на работоспособность - нет только приемного кода на JavaScript. Замеры тока и напряжения прут с дискретом 1 ms, т.к. менее INA219 не способна...
 

Neov

Member
Бредите уже на яву? Бегом в стационар... :)
Истерика все не кончается? Так запишите ещё транквилизаторов, ещё побольше и посильней. Да, именно запишите, лучше на бумажку, ясным почерком, иначе если врач не поймет, вы кинетесь с очередной истерикой, а с врачами так нельзя :) Это чистые мои добрые пожелания вам, программист то вы, кажется, не плохой, но душа явно требует лечения, может к старости и станете полноценным человеком. А впрочем сугубо ваше дело :) меня все устраивает, в любом случае пациент вы полезный --- худо-бедно кривой костыльный и корявый полуСДК из вас вылезает, пилите дальше, а вот форуму бы получить отдельную ветку имени пациента, иначе вся полезная техническая информация смешивается со его желчью.
вот что случается
А вам бы с симптомами неконтролируемого смеха тоже не помешало бы:D или недеюсь прошло? по весне бывает?
 
Последнее редактирование:

Neov

Member
Вы нашли баг в этом (?):
По факту lwip в том обрезанном коде, что я прислал - не падает, а в моем проекте падает, есть потенциальный баг на примете, нужно отлаживать. Не все умеют с первого раза писать :)
Обясняю :) xQueue - это не бездонное FIFO.
Отличное объяснение:D
 

A_D

Active member
Последний вопрос как раз касается вас, A_D - вы хотели дать обществу измеритель потребления.... На RTL для INA219 я уже написал то, что в описано вопросе и прогнал на работоспособность - нет только приемного кода на JavaScript. Замеры тока и напряжения прут с дискретом 1 ms, т.к. менее INA219 не способна...
Да, в процессе. Я приболел неожиданно + как раз на срочную пайку плат это наложилось. :\ (как обычно по Мерфи всё)
По измерителю - я делаю простейшее устройство на STM32 с аппаратным USB + минимум внешней комплектухи. От USB берется питание и прогой на ПК этот девайс конфигурируется, на самом девайсе еще USB мама (только питание) и потребление по ней и измеряется.
Прога на C#. Будут выложены исходники и описание.. но не уверен, что прям хорошо получится. (рабочий прототип уже вышел, надо все баги вычистить только). И что б не быть пустословным, ПО выглядит пока так:
Безымянный.png
А вот в WEB технологиях я не очень разбираюсь... если бы знал - с радостью помог бы!

что то похожее на нужное:
Stream Data to Create Realtime Charts w/ D3.js and Rickshaw | PubNub

А вам бы с симптомами неконтролируемого смеха тоже не помешало бы:D или недеюсь прошло? по весне бывает?
что самое забавное, только Вы в первую очередь раздаете всем диагнозы и указания на лечение, что как бы намекает на бзик на этой теме...
а уж где вы смех увидели в моем прошлом сообщении....да хотя бы смайлик....лучше и не буду спрашивать.
 
Последнее редактирование:

pvvx

Активный участник сообщества
По измерителю - я делаю простейшее устройство на STM32 с аппаратным USB + минимум внешней комплектухи.
Я так и подумал. Но STM32 измерять то как, без гальвано-равзяки? Тоже ставить что-то подобное INA219 (или более шустрые)? Если нет, то уж надо делать на минимум параллельных 2-х канальных 24-х битных ADC (ток и напруга одновременно и обязательно с одинаковыми импульсными характеристиками фильтров - иначе будет врать). У меня такое уже есть, на eval-board-ADuC7061MKZ - рисует графики и выдает хоть в Exel для дальнейших расчетов... Где-то были и для 2-х AD7714, и на 2-х AD7793... Могу кинуться - где-то уже кидал...
А если уж игрушка - то должна быть дешевой, но функциональной - по тому RTL + INA219 и любое внешнее устройство с броузером. WiFi = гальвано-развязка, хоть на кВ :)

PS: А Neov пусть пишет - народу веселее - читать то нечего... :) Будет совсем плохо себя вести - введем тяжелую артиллерию... :)
 
Последнее редактирование:

pvvx

Активный участник сообщества
Истерика все не кончается?
Нет - с вами веселее.
Так запишите ещё транквилизаторов, ещё побольше и посильней. Да, именно запишите, лучше на бумажку, ясным почерком, иначе если врач не поймет, вы кинетесь с очередной истерикой, а с врачами так нельзя :) Это чистые мои добрые пожелания вам, программист то вы, кажется, не плохой, но душа явно требует лечения, может к старости и станете полноценным человеком.
К старости все возвращается - в детство, если дотянете. А так-же я не считаю себя программистом. Какой из меня переводчик в машинные коды? На то есть натасканные особи, зазубривающие все либы и "правила программирования".
А впрочем сугубо ваше дело :) меня все устраивает, в любом случае пациент вы полезный --- худо-бедно кривой костыльный и корявый полуСДК из вас вылезает, пилите дальше, а вот форуму бы получить отдельную ветку имени пациента, иначе вся полезная техническая информация смешивается со его желчью.
Чисто техническое = очень скучное и писать там нечего, т.к. есть справочники, c которыми научиТЬСЯ работать вы не можете освоить... Т.е. всё всегда сводится к вопросам и непоняткам индивидуума. Но, увы - я вам бесплатным личным онлине-дохтуром работать отказываюсь. Веселее будет наоборот - помочь вам в вашем утоплении. :p :)
Вы ещё не знаете, что народу кроме хлеба надо? Google и тот знает, если начать вбивать “хлеба” ... :)
 
Последнее редактирование:

Neov

Member
А так-же я не считаю себя программистом.
А кем пациент себя считает?
Веселее будет наоборот - помочь вам в вашем утоплении. :p :)
Прямо с цитатой, сами уже наверное догадываетесь куда вам идти. Уже маниакальность однако. Надеюсь социальная изоляция не потребуется, сдк то нужен :(
Вы ещё не знаете, что народу кроме хлеба надо? Google и тот знает, если начать вбивать “хлеба” ... :)
На данном форуме народу от вас требуется вменяемый сдк и ардуина, ваши истерики мало кому интересны, хотя и есть такие :)
 

pvvx

Активный участник сообщества
А кем пациент себя считает?
У вас опять путаница. Питание и пищу вам даю я, значит пациентом является Neov. Вы сами требуете исполнять должность вашего лечащего врача... Читайте внимательнее там: "Права пациента", "Обязанности ..." и "Ответственность..."..
Прямо с цитатой, сами уже наверное догадываетесь куда вам идти. Уже маниакальность однако. Надеюсь социальная изоляция не потребуется, сдк то нужен :(
Всё - с моей версией SDK дела заканчиваются. Вышел новый SDK 4.0.a - будете с ним работать, а у меня наступает лето.
Второй раз уже прямо пишу - маниакальность развивается у мелочных эгоистов, а я супер эгоист. Вам этого не достичь и не постичь - разная классификация. Это как "голодный сытому не товарищъ" :)
На данном форуме народу от вас требуется вменяемый сдк и ардуина, ваши истерики мало кому интересны, хотя и есть такие :)
Без проблем могу уйти на другой форум и оставить эту миссию вам :) Пароли и sha ключ от github так-же могу передать... А то и так тут долго задержался, а поставленные задачи уже выполнены - оно проросло и теперь должно приносить плоды чужими руками, что и требовалось для удовлетворения целей супер эгоизма... :p Через некоторое малое время вы уже будете оплачивать мне свою же работу. Или опять непонятно писано – бесплатный сыр… Вот пора взращивать новый источник, пока угасают десятки предыдущих, пророщенных за уже более 35 лет.
 
Последнее редактирование:

pvvx

Активный участник сообщества
А чем flot не устраивает? Вроде Вы уже его использовали для подобных целей на esp8266.
У Smoothie Charts: A JavaScript Charting Library for Streaming Data много ошибок в масштабировании, нет возможностей расчета средних значений и запись точек идет не по индексу, а по времени поступления, что создает ещё бардачек - на одну точку по времени приема приходится несколько точек и отображение выходит некорректное...
 

pvvx

Активный участник сообщества
Я имел в виду Flot: Attractive JavaScript plotting for jQuery , правда ему jQuery нужен.
jquery.js 266 килобайт - больше объема собранных и отображаемых данных
Нулевые возможности в отображении: Flot Examples: Real-time updates
Оно там используется JavaScript Oscilloscope - Developer Help
Все другие, так называемые встроенные в систему, выводят осциллы потоковых данных типа звука. Но это надо кодировать поток, а нет такого желания в перегрузке ненужными функциями простых модулей...
Ещё примеры Libraries - The Open Source Discovery Service
Virtual Oscilloscope
Canvas Oscilloscope
...
Примерно такое надо -> Oscilloscope - - Data Visualizer , но с другими пимпочками - расчеты среднего за указанный замер, сохранение в XLSx и прочих функций... :)
 
Последнее редактирование:

GDI

New member
Ну, jquery.min.js уже в 2 раза меньше 138к + сам jquery.flot.min.js - 51.7к, а дополнительные возможности делаются плагинами по 3-5к размером. А вот данные он отображает ровно как Вам нужно, по порядковому номеру, если есть пропуск в нумерации, то и на графике будет пропуск.
Вот еще такая либа есть Chartist - Simple responsive charts пишут, что без зависимостей. Но я ее сам не пробовал еще.
Пимпочки делаются в html, либа для графиков тут не причем. Сохранение в CSV тоже делается отдельно на javascript, ну, наверное и в либах такое делают, но зачем привязываться к ним? Лучше уж по отдельности собрать из кубиков.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Ну, jquery.min.js уже в 2 раза меньше 138к + сам jquery.flot.min.js - 51.7к, а дополнительные возможности делаются плагинами по 3-5к размером. А вот данные он отображает ровно как Вам нужно, по порядковому номеру, если есть пропуск в нумерации, то и на графике будет пропуск.
В живом, движущемся графике-осциллограмме с синхронизацией. Синхронизация выходит дополнительной "пимпочкой".
Пимпочки делаются в html, либа для графиков тут не причем. Сохранение в CSV тоже делается отдельно на javascript, ну, наверное и в либах такое делают, но зачем привязываться к ним? Лучше уж по отдельности собрать из кубиков.
Это смотря как смотреть.
Обычно, при отображении практически любых данных с датчиков необходимы два варианта - статический (для анализа заранее выбранного куска) и динамический - текущего потока. У нас не высокие скорости и текущий динамический поток данных отобразить несложно, но методы синхронизации могут быть сложнее графической рисовалки... Так-же не зря на осциллографах есть останов и возможности ковыряния в накопленном буфере, для выяснения причины, а ковыряние в предложенных либах вывода графиков сделано ужасно или вообще не реализовано... Ну и с анализом, к примеру уже усредненных пусть за часы и месяцы данные - тут тоже слишком много вариантов и сложно отобрать самые необходимые. Да и путем прикручивания дополнительных "пимпочек-фич" это решается ещё сложнее. По этому проще передать данные более "компетентной" среде обработки, скинув их в стандартном формате.
В итоге и выходит - обычную программу вывода графика в пару килобайт написанного на си, javascript не в состоянии уложить и в мегабайты своего кода. Целый проект на годы надо затевать :) Ужасная вещь эта java, если к ней нет или кто-то не подготовил готовые внешние либы. API современных операционок это всё умеют и уже давно содержат.
Как простой и доступный издавна пример - в Borland Паскале есть полная и готовая рисовалка графиков с вставкой доп. формул и прочей фигней (типа редакцией вывода отображения на ходу)... Её функционала до сих пор нет в javascript исполнении, а если и есть - то это гигабайт скриптов и полный тормоз.
К LabVIEW прикрутить любой поток от датчиков, да с полной обработкой - это дело одного вечера, а в javascript, вообще в REST или ... это морока на годы. :)
 
Последнее редактирование:

GDI

New member
Ну Вы сравнили, цельный осциллограф (LabVIEW, Borland, прогу на ПК) с его LCD экраном, чем, по сути и является JavaScript + HTML. Это же просто средство отображения информации, оно так и задумывалось когда то. Просто сейчас на этот "экран", если продолжать аналогию, навесили тач скрин и стало возможным на него нажимать, но нажатия то все равно в процессоре обрабатываются. Ну, и Джаваскрипт, все же скриптовый язык, а Лабвью и Борланды компилируются. В исходниках то программы тоже намного больше места занимают.
Я джаваскрипт и веб интерфейсы программить сам не люблю, то ли дело на Си накодить по быстрому и в консоль вывести результат :)
 

pvvx

Активный участник сообщества
В исходниках то программы тоже намного больше места занимают.
Да ну. При применении встроенного интерфейса медиа-файлов, ну типа wav, там, в javascript вообще кода отображения нет. Только запуск либ - пару строк, а осцилу уже кажет. Смотрите примеры... Вот только данные надо представить в таком потоковом формате, что требет доп.ресурсов у RTL при передаче. Это цельный сервак вещания мультимедия из RTL сотворить надо (описываю без спец. терминов, чтобы было понятно). Скрипт и вся HTTP может обращаться только к спец.ресурсам (websocket, RTP/RTSP/... и другие потоковые вещания) - простой TCP или UDP порт он открыть и тусовать от туда данные не может... А процедура вывода точки на экран не является сверх задачей и не содержит массу исходников :) Вот только она тут не и не нужна, т.к. весь сервис отображения с любыми масштабированиями (и даже фильтрами) уже есть для этих потоков... Ну и так-же беда - фиг что от туда выташить можно для обычного представления и дальнейшей уже своей обработки... Это закопаться на веки надо в данных либах и результат всё равно будет не известен - выйдет или нет :) Проще это выразить так - всё уже давно сделано до нас, но не для нас :)
Остается найти прямой и малозатратный путь в этих дебрях, чтобы слепить простое очко осциллографа на экране и большую кнопку - выкинуть данные c графика в CSV или XMLx...
Ну а пока ничего не приглянулось - итог только потраченное время на углубление в данные технологии...
 
Последнее редактирование:

GDI

New member
Я делал сохранение в CSV вот так How to export JavaScript array info to csv (on client side)?. Просто взял функцию из второго ответа (где 104). Правда, данные при этом нужно все держать в памяти браузера. Т.е. весь массив накапливается на стороне клиента. У меня было 90000 точек, каждая из которых содержала целочисленный индекс и значение с плавающей точкой, все они отображались на графике flotcharts, сохраненный CSV был размером 1,42Мб. Браузер при этом заметно подтормаживал :). Выглядело это, как Вы и описали, график и кнопка.
 

pvvx

Активный участник сообщества
Я делал сохранение в CSV вот так How to export JavaScript array info to csv (on client side)?. Просто взял функцию из второго ответа (где 104). Правда, данные при этом нужно все держать в памяти браузера. Т.е. весь массив накапливается на стороне клиента. У меня было 90000 точек, каждая из которых содержала целочисленный индекс и значение с плавающей точкой, все они отображались на графике flotcharts, сохраненный CSV был размером 1,42Мб. Браузер при этом заметно подтормаживал :). Выглядело это, как Вы и описали, график и кнопка.
Ну всякие измерения в дом.лабе используются примерно для снятия таких параметров - см. вложение.
(просто тест параметров управления драйвера 4..20 мА путем вывода ШИМ с микроконтроллера с датчиком и запиткой от того-же тока)
Сразу видно, что линейность нормальная для данного дешевого решения с XTR117.. + PIC24FV32KA301.. + цифровой датчик ...
И для большинства замеров требуется гальваническая развязка, что идеально обеспечивает измеритель на WiFi + ADC на 24 бит :)

На БордандПаскале ПО приема замеров с графиками описывается за вечер, но хотелось бы перенести это (и другое нажитое и новое) на обычный браузер с javascript…
Снимок1484.gif
Т.к. подобных тестов и замеров уже сделано немерянно за время разработки и вообще общения с рэа, то опыт показывает, что данное дело стандартизируется в определенные рамки и большой функциональности не требуется. Задачи анализа уже принятых замеров всегда производятся на специализированном ПО.
Тут, к примеру, то что во вложении, в Exel, которое ныне есть почти в каждом устройстве...

В итоге выходит практически одинаковые решения для динамического отображения поступающих данных и редакции – вырезки необходимой выборки для передачи в другое ПО, для всех вариантов – что логгер с датчиком (собирающий данные циклически хоть за год), что измеритель без усреднений. Т.к. в логгер всегда входит отображение текущих данных с дискретом от 1 мс. А при таких скоростях данные всегда можно передать по WiFi и обработать в javascript, даже от десятка каналов 24-х битных ADC на современных устройствах.

И удивляет, почему нет уже готовых решений...
 

Вложения

  • 125.3 KB Просмотры: 8
Последнее редактирование:

pvvx

Активный участник сообщества
Вот такая фигня выходит на основе примера от JavaScript Oscilloscope - Developer Help на RTL00+INA219 (пример кода для передачи бинарного массива в websocket дан в RTL00_WEB):
Снимок1489.gif
sweep 0.5..50 Гц 2 сек
Никакой редакции и масштабирования, а кода javascript там 275 к (jquery.js) + 126 к (jquery.flot.js)... Больше чем вся прошивка с web-сервером :)
 
Последнее редактирование:
Сверху Снизу