Замечательно Это фрагмент displayinfo?
Замечательно Это фрагмент displayinfo?
Да это от туда. Я добавил вывод адреса радиосайта. Вроде бы не плохо смотрится.
//--------------------------------------- проба
if ( inx == 2 )
{
dsp_fillRect ( 0, 193, width, p->height+40, BLACK ) ; // очистить экран
dsp_fillRect(0, 193, width, 1, GREEN); // показать разделитель над текстом
dsp_setTextColor ( GREEN ) ;
dsp_setCursor ( 0, 210 );
String n_presset = readhostfrompref(cur rentpreset);
uint8_t n_simvola = n_presset.indexOf("# ");
dsp_println (n_presset.substring (n_simvola + 2)); // +2 это чтобы символ '#' с пробелом не попадал на экран
dsp_setTextColor ( 0xC618 ) ; // светлосерый
dsp_setCursor ( 0, 300 );
dsp_println (hostwoext); // выводим адрес сайта радиостанции
}
//-----------------------------------------------
Для вывода адреса станции, переменную hostwoext я сделал глобальной. Вот в этой функции
String hostwoext = host ; // сделал глобальной
//******************** ******************** ******************** ******************** ******************
// C O N N E C T T O H O S T *
//******************** ******************** ******************** ******************** ******************
// Connect to the Internet radio server specified by newpreset. *
//******************** ******************** ******************** ******************** ******************
bool connecttohost()
{
int inx ; // Позиция ':' в имени хоста
uint16_t port = 80 ; // Port number for host
String extension = "/" ; // May be like "/mp3" in "skonto.ls.lv:80 02/mp3"
// String hostwoext = host ; // Host without extension and portnumber
String auth ;
.
.
Спасибо от IG_58
Как удобно работать с открытым проектом Зная где что, теперь можно свободно менять layout по своему вкусу. Можно еще поработать с фонтами, но получилось хорошо. Нужно выбрать время и поиграться еще, интересный процесс
Это точно!
Я заметил ещё одну не стыковочку. При выборе кнопкой, предустановленной станции, пресет не меняется, и на экране остаётся предыдущий пресет. Как бы отследить нажатие на эту кнопку? Это конечно мелочь, но ......
Это запись в конфиге:
gpio_33 = station = icecast.vgtrk.cdnvid eo.ru:80/vestifm_mp3_128kbps
Похоже, так не получится, можно только так, без назначения gpio:
station = <mp3 stream> Select new station (will not be saved)
station = <URL>.mp3 Play standalone .mp3 file (not saved)
station = <URL>.m3u
Поройтесь в analyzeCmd: const char* analyzeCmd ( const char* par, const char* val )
Рылся, рылся ничего готового не нарыл. Решил сам написать пару строк в программу. Добавил простое сравнение адресов канала, полученных из разных переменных. Вот, что получилось:
//----------------------------------------------------------------------------------
if ( inx == 2 )
{
dsp_fillRect ( 0, 193, width, p->height+40, BLACK ) ; // очистить экран
dsp_fillRect(0, 193, width, 1, GREEN); // показать разделитель над текстом
dsp_setTextColor ( GREEN ) ;
dsp_setCursor ( 0, 210 );
String presset = readhostfrompref(cur rentpreset);
uint8_t n_simvola = presset.indexOf("#") ; // нажодим местоположение "#"
String n_presset = presset.substring (n_simvola+2); // имя пресета +2 чтобы символ '#' с пробелом не попадал на экран
n_simvola = presset.indexOf(":") ; // нажодим местоположение ":"
String n_host = presset.substring (0, n_simvola); // находим адрес станции из пресета
if (n_host == hostwoext) // сравниваем его с адресом из переменной hostwoext
{
dsp_println ( n_presset ); // выводим имя канала из пресета
} else {
dsp_println ("ХХ - Предустановленный канал"); // сообщаем о подключении предустановленного канала
}
dsp_setTextColor ( 0xC618 ) ; // цвет светло-серый
dsp_setCursor ( 0, 300 );
dsp_println (hostwoext); // выводим адрес сайта радиостанции
}
//-------------------------------------------------------------------------------------
Теперь дисплей выводит информацию правильно, так, как я хотел!
Поздравляю!
Иной раз мне бывает проще написать несколько строк своего кода, чем разбираться в чужом, но интереснее распутывать чужой и следить за ходом мысли
Спасибо за поздравления, но это ещё не всё, что я хочу переделать. Например мне надо, что бы энкодер, сразу переключал станции, без какого либо нажатия на него. А громкость звука, можно и на усилителе регулировать, или кнопками, тем более это уже реализовано в проекте.
Игорь, ещё вот, что хочу спросить:"А программой, ESP-Radio, на смартфоне, Вы пользуетесь?" Почему то у меня, при выборе Select Preset, выдаёт ошибку. (Bad arguments to +), что бы это значило?
Последний раз редактировалось Egen_M; 06.01.2020 в 19:07.
Это надо забить в void chk_enc() обработчики по условиям singleclick, doubleclick, tripleclick и longclick и оставить только default mode, но с логикой флага PRESET.
Но это отдельный орган управления - регулятор или кнопки громкости. Я просто убрал режим Mute, и теперь режим выбора станций вводится и по одинарному клику, и по двойному, и ручка управления только одна.
Программой ESP-Радио на смартфоне я не пользуюсь.
Игорь, и ещё один вопросик, может сталкивались. В программе можно увеличить количество пресетов (станций) до 200, и вначале инструкции к проекту, тоже сказано (Обратите внимание, что предустановленные числа варьируются от 000 до 199. Диапазон станций может быть расширен по определению MAXPRESETS.) . А вот ~ на 10 странице инструкции написано (Разрешается иметь несколько (максимум 100) линий "preset_". Номер после «_» будет использоваться в качестве предустановленного числа. ). И 100 линий это не только пресеты станций, но и установленные пины, и пароль WIFI и т.д.. Через WEB конфиг я смог ввести только 65 станций, иначе ломается весь конфиг, и приходится его формировать заново. Почему так?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)