【Опен Соурце】 ДВИН екран и двосмерно повезивање Андроид телефона контролишу репродукцију музике

–Са ДВИН форума за програмере

Ово издање за вас да покренете награђивани опен-соурце случај ДВИН форума за програмере – ДВИН екран и двосмерно повезивање Андроид телефона контролишу репродукцију музике. Инжењери преко Блуетоотх модула да постигну ДВИН интелигентни екран и интеракцију података Андроид телефона, корисници могу лако да контролишу Андроид телефон, УСБ флеш диск у репродукцији песме, паузирају, мењају подешавања песме и звука, искусе интелигентни екран и Андроид телефон два- начин погодан за контролу.

1.Ц51 Дизајн
(1) Т5Л серијски порт је у интеракцији са Блуетоотх модулом да би променио статус репродукције, подесио јачину звука и прочитао Блуетоотх статус, део референтног кода је следећи:
инт маин(воид)
{
ИНИТ_ЦПУ();
Т2_Хеат();
УАРТ4_Инит();
ЕА=1;
//УАРТ4_СендСтр(“здраво”,сизеоф(“здраво”));
//ВДТ_ОН();//Укључите Ватцхдог.
док (1)
{
//ВДТ_РСТ();//Нози пса
Процес();
}
}
воид УАРТ4_Инит(воид)
{
// УАРТ4 подешавање брзине преноса:
//БОДЕ2_ДИВ_Х=ЦПУ мрежна фреквенција/(8*Брзина преноса) .
//206438400/8/115200=224=0ке0
//206438400/8/921600=28=0к1Ц
//206438400/8=25804800/230400=112=0×70
СЦОН2Т=0×80;
СЦОН2Р=0×80;
БОДЕ2_ДИВ_Х=0×00;//ФЦЛК/(8*ДИВ) 
БОДЕ2_ДИВ_Л=0ке0;// 921600 Брзина преноса
//БОДЕ2_ДИВ_Х=0×00;
//ФЦЛК/(8*ДИВ)
//БОДЕ2_ДИВ_Л=0×70;
//ЕС3Т=1;
ЕС2Р=1;
ЕА=1;
}
воид ТенМсХандле(воид)
{
иф(!ТенмсФлаг)
повратак;
ТенмсФлаг=0;
СоурцеПресс();//Генератор тонова
ПлаиЦтрПресс();//Промена стања репродукције
ВолЦтрСлидер();//Промена јачине звука
ВолЛогСлидер();//Промена јачине звука
РеадБтСтате();//Прочитај статус Блуетоотх-а
}
воид СоурцеПресс(воид)
{
цхарТоуцхКеи[2]={0,0};
у8Сдата[2];
реад_дгусии_вп(0×3000,ТоуцхКеи,1);
иф(Додирни тастер[1]==0)
повратак;
Сдата[1]=0;
прекидач (тастер на додир[1])
{
цасе1://У диск
Сдата[0]=1;
СендДатаТоБТ(Врите_Рун_Моде,Сдата,1);
пауза;
цасе2:// Ектернал ЛинеИн Инпут
Сдата[0]=2;
СендДатаТоБТ(Врите_Рун_Моде,Сдата,1);
пауза;
цасе3://Блуетоотх
Сдата[0]=3;
СендДатаТоБТ(Врите_Рун_Моде,Сдата,1);
пауза;
}
врите_дгусии_вп(0×3003,ТоуцхКеи,1);
мемсет(ТоуцхКеи,0,сизеоф(ТоуцхКеи));
врите_дгусии_вп(0×3000,ТоуцхКеи,1);
РеадБтСтатецоунт=0;
}
воид ПлаиЦтрПресс(воид)
{
цхарТоуцхКеи[2]={0,0};
у8Сдата[2];
реад_дгусии_вп(0×3001,ТоуцхКеи,1);
иф(Додирни тастер[1]==0)
повратак;
Сдата[1]=0;
прекидач (тастер на додир[1])
{
случај1:// Претходна песма
Сдата[0]=1;
СендДатаТоБТ(Врите_Нект_Пре_ПТ,Сдата,1);
пауза;
цасе2:// Пауза репродукције
Сдата[0]=2;
СендДатаТоБТ(Врите_Нект_Пре_ПТ,Сдата,1);
пауза;
цасе3:// Следећа песма
Сдата[0]=3;
СендДатаТоБТ(Врите_Нект_Пре_ПТ,Сдата,1);
пауза;
}
мемсет(ТоуцхКеи,0,сизеоф(ТоуцхКеи));
врите_дгусии_вп(0×3001,ТоуцхКеи,1);
РеадБтСтатецоунт=0;
}

(2)Андроид софтверски пакет је написан преко КТ-а, углавном реализујући Блуетоотх везу и контролу комуникације са паметним екраном, део референтног кода је следећи:
уи->сетупУи(ово);
блуетоотх_бле_Тоол=нови Блуетоотх_бле_Тоол(“двин_бт(БЛЕ)”);
уи->лабел_лоцалБТ_Наме->сетТект(блуетоотх_бле_Тоол->гетЛоцалНаме());
цоннецт(блуетоотх_бле_Тоол,&Блуетоотх_бле_Тоол::БлуеСеарцхЦоннецтСтате,
тхис,&БЛЕ_ПаирПаге::БлуеСеарцхЦоннецтСтате);
//бтцхат=нев БтЦхат();
//бтцхат->сет_бле_Тоол(блуетоотх_бле_Тоол);
//бтцхат->инит_Паге();
//бтцхат->хиде();
девицецоммХандле=нови ДевицеЦомм();
девицецоммХандле->сет_бле_Тоол(блуетоотх_бле_Тоол);
девицецоммХандле->ИнитДевице();
мвин=нови маинвин();
мање->сакриј();
цоннецт(мвин,&маинвин:лаиЦхангеМоде,
девицецоммХандле,&ДевицеЦомм:лаиЦхангеМоде);// Промена режима писања је издата
цоннецт(мвин,&маинвин:лаиЦтрПреНектСт,
девицецоммХандле,&ДевицеЦомм:лаиЦтрПреНектСт);// лит. запиши горњи и доњи део песме
цоннецт(мвин,&маинвин:лаиМусицВолЦханге,
девицецоммХандле,&ДевицеЦомм:лаиМусицВолЦханге);// Смањите промену јачине звука
цоннецт(девицецоммХандле,&ДевицеЦомм::РеадПлаиМоде,
тхис,[=](инт моде){// Подешавање тренутног режима
qDebug() кДебуг() Б_Упан->сетЦхецкед(фалсе);
мвин->Б_АУКС->сетЦхецкед(фалсе);
мвин->Б_БТ->сетЦхецкед(фалсе);
иф(моде==1)
мвин->Б_Упан->сетЦхецкед(труе);
иначе иф(моде==2)
мвин->Б_АУКС->сетЦхецкед(труе);
иначе иф(моде==3)
мвин->Б_БТ->сетЦхецкед(труе);
});
цоннецт(девицецоммХандле,&ДевицеЦомм::РеадПлаиМусицВол,
ово,[=](инт вол){// Подешавање приказа јачине звука
мвин->КС_МаинВол->сетВалуе(вол);
});
цоннецт(блуетоотх_бле_Тоол,&Блуетоотх_бле_Тоол::БЛЕ_Линк_еррор,
ово,[=](){
тхис->схов();
мање->сакриј();
девицецоммХандле->ТимерСтопРеадДевицеСТ();
тхис->уи->прогрессБар->сетВалуе(0);
});
воид БЛЕ_ПаирПаге::он_пусхБуттон_цлицкед(){
блуетоотх_бле_Тоол->СетОперУуидСервер(КБлуетоотхУуид(сервицеУуид));
//уи->лабел_лоцалБТ->цлеар();
//уи->лабел_лоцалБТ_Наме->сетТект(блуетоотх_бле_Тоол->гетЛоцалНаме());
блуетоотх_бле_Тоол->стартФиндЦоннецтБле();
//блуетоотх_бле_Тоол->стартСтатепрогрессБар();
уи->пусхБуттон->сетЕнаблед(фалсе);
уи->пусхБуттон->сетТект(“Тражење “);
цоннецт(блуетоотх_бле_Тоол,&Блуетоотх_бле_Тоол::БлуеБЛЕ_ФиндДевицефинисхед,
ово,[=](боол ок){
уи->пусхБуттон->сетЕнаблед(труе);
уи->пусхБуттон->сетТект(“Почните да откривате повезани Блуетоотх”);
иф(ок==фалсе) {
КМессагеБок::информатион(тхис,тр(“Сеарцх Статус “),” Уређај се не може претражити, молимо вас да проверите да ли је уређај већ укључен или да ли је други мобилни телефон већ повезан на њега?”);} }); }
воид БЛЕ_ПаирПаге::БлуеСеарцхЦоннецтСтате(Блуетоотх_бле_Тоол::стартСтатепрогрессБар_ем Линкст, инт прогресс){
уи->прогрессБар->сетВалуе(прогресс);
иф(Линкст>=Блуетоотх_бле_Тоол::Бле_ОтхерЕррор){
КМессагеБок::информатион(тхис,тр(“цоннецтион промпт”),блуетоотх_бле_Тоол->гетЕрроринфо());
уи->лабел_типс->сетТект(блуетоотх_бле_Тоол->гетЕрроринфо());}
елсе иф(Линкст>=Блуетоотх_бле_Тоол::Бле_Децоннецт_девице){
КМессагеБок::информатион(тхис,тр(“цоннецтион промпт “),” бугги “);
уи->лабел_типс->сетТект(„бугги“);}
елсе иф(Линкст==Блуетоотх_бле_Тоол::Бле_Цоннецт_цхарацтерОк){// КМессагеБок::информатион(
тхис,тр(“успешно повезан “),блуетоотх_бле_Тоол->гетЕрроринфо());
уи->лабел_типс->сетТект(“успешно повезан”);
тхис->хиде();
мвин->схов();
девицецоммХандле->ТимерСтартРеадДевицеСТ(100);
//бтцхат->схов();
//дисцоннецт(блуетоотх_бле_Тоол,&Блуетоотх_бле_Тоол::БлуеСеарцхЦоннецтСтате,
//тхис,&БЛЕ_ПаирПаге::БлуеСеарцхЦоннецтСтате); }
остало{
уи->лабел_типс->сетТект(“Тражење веза “); }


Време поста: 23. мај 2024