Денис
Ну можно и так. Я хотел не удаляя файл подчистить содержимое... Можно и так
romanetz
Andrew
Но буду сегодня все перепроверять сначала до конца
romanetz
частота wclk сигнала какая нужно? (44.1/48)?
Andrew
Andrew
Все как требуется
romanetz
и на цапу с i2s играет норм?
Andrew
Отличный поинт попробовать туда завести
romanetz
там ещё щелчки должны быть - разрыв фазы синусоиды
Andrew
Щелчки есть да
Andrew
По 4-5 в секунду
romanetz
а в каком месте синхронизация bt и usb происходит? конечную точку обратной используешь в usb-i2s?
romanetz
там можно внешний мастерклок сделать и/или даже i2s slave
romanetz
обратная связь там есть
Andrew
Andrew
Юзается WS (LRCLK) , DIO, BCK
Andrew
Может и в этом дело...
Andrew
Спасибо за наводку)
Anton
Slava
Вячеслав скинь код. Спасибо.
if(response.length() < 60) {
//Serial.println("response.length()="+String(response.length())+" = "+String(response));
return 0;
}
//if (response.indexOf("{\"ok\":true,\"result\":[]}") == 0){return 0;}
//Serial.println("response.length()="+String(response.length())+" = "+String(response));
//Serial.println("------------------------------------------------------------------");
if(response.length() > 500) {
response = response.substring(0,response.indexOf("message")+9);
response += "\"-оч. длинное сообщение, не пролезло\"}]}";
}
//Serial.println("response.length()="+String(response.length())+" = "+String(response));
//Serial.println("------------------------------------------------------------------");
//delay(10000);
// Parse response into Json object
DynamicJsonBuffer jsonBuffer;
JsonObject &root = jsonBuffer.parseObject(response);
if (root.success()) {
//Serial.println("root.success()");
if (root.containsKey("result")) {
uint32_t resultArrayLength = root["result"].size();
if (resultArrayLength > 0){
resultArrayLength = 1;
uint32_t newMessageIndex = 0;
for (uint32_t i = 0; i < resultArrayLength; i++){
JsonObject &result = root["result"][i];
if (processResult(result, newMessageIndex)){newMessageIndex++;}
}
//closeClient();
return newMessageIndex;
}
//closeClient();
return 0;
}
}
//closeClient();
return 0;
Slava
Вячеслав скинь код. Спасибо.
если кратко то так...
if(response.length() > 500) {
response = response.substring(0,response.indexOf("message")+9);
response += "\"-оч. длинное сообщение, не пролезло\"}]}";
}
Anton
SetPf
Господи, какое же блевотное дерьмо эти xRingBuffer, выблев китайца.
SetPf
Добавил его в кьюсет, словил дичавую багу, потом оказалось что гнидорукие китайцы даже алгоритм добавления в кьюсет не смогли фриртосовский сохранить и намарали какую-то свою обертку.
SetPf
Пользуйтесь православными StreamBuffers
Slava
ОК
но лучше бы сделать так..., самому выделять из текста ответа значение update_id после result
до обработки ответа джейсоном
и присваивать last_message_received = update_id с пропуском обрабоки джейсоном.
Anton
romanetz
Andrew
Потом напишу, как найду расхождение
romanetz
914/1000=44100/48000;
romanetz
ну как бы да )
Andrew
думаю, потом статейку для людей накропать да исходниками поделиться
romanetz
надо в дескрипторах убрать возможность выбора частоты, если устройство этого реально не поддерживает
Andrew
А то у меня сейчас франкенштейн из обрывочныйх кусков кода нашкрябанных по интернетам
romanetz
я уже кропал в 15 году
Andrew
romanetz
usb асинхронный
Andrew
А, ну я зелёный, мне еще ковырять и ковырять))
romanetz
насколько я знаю, на тот момент - первый опенсорсный проект в рунете такого рода
Andrew
Andy
SetPf
надо через спец апи его
Dmitry
Привет всем
К esp32 nextion кто нибудь подключал?
Библиотека родная ардуиновская работает?
SetPf
Родная некстоновская библиотека насколько мне известно - лютейшее говно, просто обертки над строковыми командами.
Алексей
SetPf
Там типо управление строками - нахрена там вообще библиотека?
Dmitry
Так и есть, но работает
Dmitry
Для удобства, особенно когда страниц и элементов много
Dmitry
Ничего колхозить не надо, в ней есть конечно ошибки, по ходу исправляю когда нахожу
SetPf
когда страниц и элементов много там надо пилить абстракции, иначе будет мокоронный пздц.
SetPf
Тут вроде был кто то кто еще с ним работал.
SetPf
Он вроде пробовал эту либу, может ответит.
Dmitry
на меге все отлично, сделал проект и не один. Но уперся в RAM
SetPf
Хз я на 4кб рама сижу с 30 страницами и 200 параметрами рилтаймовыми.
Dmitry
что то я видимо не так делал😁
SetPf
рам где кончился в некстоне или МК?
Dmitry
Dmitry
МК
Dmitry
nextion еще запас большой
SetPf
тогда наверное да
SetPf
Но у меня конвенция - имя страницы и имя переменной не занимает больше 4х символов.
SetPf
Обмен с дисплеем только хекс-символами и соответственно интеджерами, никаких строк.
Dmitry
я понял, а у меня строки сплошные получаються, вот отсюда и ноги растут
SetPf
В итоге на 1 страницу выходит 5 байт (имя + кол-во параметров)
На один параметр 10 байт - (имя + тип + значение 2х байтовое + флаги)
Ну и хранится это дело в ПЗУ.
Т.е. в озу занимает 2б-значение * 200 - 400 байт + переменные для обслуживания (буферы всякие и тп) байт 500-600 в общем.
SetPf
В ПЗУ таблицы наверно 2-4кб жрут, но и хрен с ним, это пзу, его много.
SetPf
SetPf
Короче вот такая хрень происходит иногда.
SetPf
В либах есп выполнение натыкается на ассерт, начинает ассертить и внезапно сваливается в аборт во время Впринта
SetPf
Это не хрена не весело.
SetPf
SetPf
Вот момент один когда вылетает.
SetPf
Кто внутрянку знает - чому так?