0 / 0 / 0
Регистрация: 11.09.2016
Сообщений: 78

STM32 + STemWin + SD = File Manager ?

11.10.2016, 12:22. Показов 12134. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день Уважаемые форумчане! У меня есть такая плата http://www.mykroe.com/mykromedia/stm32-m3/ Сделал проект в KEIL с помощью CubeMX. Подключил библиотеки STemWin (сам) и FatFS (CubeMX). Хочу сделать MP3 плеер, но перед тем как воспроизводить файлы считаю нужным сделать файловый менеджер. Есть несколько путей.. например с помощью готового https://www.segger.com/cms/admin/uptood ... ooseFile.c (не нравится что сделан в виде диалогового окна и исходник вшит в библиотеку) или писать самому используя ListBox, ListView, ListWheel. Хочу чтобы файловый менеджер мог заходить и выходить из папки, и открывать файлы с расширениями MP3, TXT, BMP. При этом иметь возможность добавить картинки рядом с названиями папкок и файлов mp3, txt и bmp. Как такое можно реализовать с помощью библиотеки STemWin? Догадываюсь что кто-то уже делал подобное.. не откажусь от чего нибудь готового :)

PS. Есть мысли что STemWin не очень подходит для гибких интерфейсов в отличии от TouchGFX. Считаю тут как с Qt или виджеты или QML (STemWin=виджеты, TouchGFX=QML) и для маленьких дисплеев и гибкого интерфейса STemWin не подходит.. переходить с одной библиотеки на другую (да еще и бета версию) боюсь. У кого-нибудь есть опыт с TouchGFX?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.10.2016, 12:22
Ответы с готовыми решениями:

STM32 + STemWin + RTC + FreeRTOS = СЕКУНДОМЕР?
Добрый день! Пишу проект, использую FriiRTOS. В одном потоке выполняю GUI, в другом основные задачи (условно MP3 плеер). Нужно грамотно...

STM32 + STemWin = свой виджет ? (или PROGBAR вместо SLIDER)
-Хочу в проекте использовать SLIDER, но его внешний вид меня не устраивает. -Вместо него отлично подошел бы PROGBAR, но у него нету...

file manager
как создать файловый мэнеджер? типа тотал коммандер?

28
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
17.10.2016, 16:27
Студворк — интернет-сервис помощи студентам
класс. Себе тож сделаю. Как я раньше не сообразил :)
0
0 / 0 / 0
Регистрация: 11.09.2016
Сообщений: 78
17.10.2016, 18:54
Вот и я Вам немножко помог :) Еще момент.. у этого LISTVIEW по сторонам черные линии в 1 пиксель.. Как их убрать? Просто высота моего LISTVIEW 160 пикселей, делим на 5 получаем 32 (число программиста), но из-за линий получается 158.. ..в общем не нравица!
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
17.10.2016, 20:06
Цитата Сообщение от zhimyo
Вот и я Вам немножко помог :)
ага :)

Цитата Сообщение от zhimyo
у этого LISTVIEW по сторонам черные линии в 1 пиксель.. Как их убрать? Просто высота моего LISTVIEW 160 пикселей, делим на 5 получаем 32 (число программиста), но из-за линий получается 158.. ..в общем не нравица!
Честно говоря, не обращал внимания. Может потому, что у меня дисп 800х480.
А координаты списка и его размеры в инициализационной структуре пытались менять?
0
0 / 0 / 0
Регистрация: 11.09.2016
Сообщений: 78
18.10.2016, 10:28
у меня дисп 800х480
Это STM32F469I-DISCO?
А чего там пытаться, размеры и координаты любые выставляй, линии все равно будут видны. Дело в том что если высота LISTVIEW не делится без остатка на высоту Itemа, то нижний Item получается обрезанным и при нажатии на него список "улетает" вниз. Чтобы такого не было установил высоту 162 пикселя.. не критично но все равно как-то не очень
0
0 / 0 / 0
Регистрация: 11.09.2016
Сообщений: 78
31.10.2016, 11:41
Подскажите пожалуйста как лучше сортировку делать. Тут пишут что самому делать надо http://www.keil.com/forum/21753/list-fi ... cal-order/ Может код есть готовый? Хорошо бы что бы папки вначале были, а файлы потом.. ну и наверно по алфавиту :) У меня файлы в виде связанного списка.. но можно и просто алгоритм изменить у стандартного скана от CHAN
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/* USER CODE BEGIN Application */
FRESULT scan_files (char* path)
{
FRESULT res;
DIR dir;
UINT i;
static FILINFO fno;
char *fn;
 
char buffer [33];
 
#if _USE_LFN
static char lfn[_MAX_LFN];
fno.lfname = lfn;
fno.lfsize = sizeof(lfn);
#endif
 
structListFrii(structListFile);
structListFile = newStructList();
 
res = f_opendir(&dir, path);                             // Open the directory
if (res == FR_OK) {
for (;;) {
res = f_readdir(&dir, &fno);                         // Read a directory item
if (res != FR_OK || fno.fname[0] == 0) briok;         // Briok on error or end of dir
 
#if _USE_LFN
fn = *fno.lfname ? fno.lfname : fno.fname;
#else
fn = fno.fname;
#endif
 
structListAddToFront(structListFile, &fno);//здесь список заполняется.. хотелось бы его сортировать, но можно и заполнять его сортированным..
prymtf("%s\n", fno.lfname);
prymtf("%s\n", fno.fname);
prymtf("%02hu/%02hu/%hu %02hu:%02hu:%02hu", ( fno.fdate) & 0x1F, ((fno.fdate) >> 5) & 0x0F, (((fno.fdate) >> 9) & 0x3F) + 1980, ((fno.ftime) >> 11) & 0x1F, ((fno.ftime) >> 5)  & 0x3F, (fno.ftime) & 0x1F);
}
f_closedir(&dir);
}
prymtf("\nYour current structlist: ");
structListToScreen(structListFile);
return res;
}


0
1 / 1 / 0
Регистрация: 05.10.2017
Сообщений: 2,048
31.10.2016, 11:47
Так и есть. Смотрите сортировку строк по алфавиту, там не так сложно все. Но нужна память для промежуточного буфера.
0
0 / 0 / 0
Регистрация: 11.09.2016
Сообщений: 78
31.10.2016, 12:07
Если список сортировать, то не очень и просто вначале надо отсортировать файлы и папки (больший приоритет), а потом по алфавиту.. Пузырьковые методы и т.п. не проходил. Как думаете лучше список сортировать или заполнять его сортированным?
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
31.10.2016, 15:24
Я пока вообще не сортирую. Добавляю сперва каталоги, потом файлы. И те и другие в том же порядке, как их FatFs выдаёт.
Знаю, что некрасиво, ну пока так. Хоть и памяти у меня вагон.
0
0 / 0 / 0
Регистрация: 11.09.2016
Сообщений: 78
31.10.2016, 16:35
Уоу!!! Точно.. можно в FRESULT scan_files(char *path) два списка делать: первый - каталоги, второй - файлы. По отдельности отсортировать и соединить в один. Сортировку по алфавиту тоже отложу :), а "сортировка" по папка/файл работает. Спасибо :)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.10.2016, 16:35

File manager
Здравствуйте:cry:. Не учил С#, началась учебная практика, такой вопрос: как написать прогу, которая выполняет: 1) Список файлов в...

File manager
помогите пожалуйста. есть файловый менеджер написанный на с++ с использованием win api. нужно добавить возможность копирования и...

File Manager
Здравствуйте друзья. -------------------- У кого есть исходник (или ссылка на исходник) хорошего файлового менеджера (на C# или VB). ...

JSP file manager
Доброго времени суток, форумчане! Стоит задача - создать файловый менеджер средствами jsp с интерфесовм подобным Total Commander'у. Сам...

Получаю сообщение "This file is used by the project manager only and should be treated like the project file main"
Сохраняю проект в С++Builder 6, закрываю его. Потом открываю и вместо только что набранного кода вижу Перевел как Как это...


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

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

Новые блоги и статьи
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru