【Açıq Mənbə】 DWIN Ekranı və Android Telefonu İkitərəfli Əlaqəyə Nəzarət Musiqi Oynatma

-DWIN Developer Forumundan

Bu məsələ DWIN developer forumunun mükafat qazanmış açıq mənbəli işini – DWIN ekranını və Android telefonunun ikitərəfli əlaqəni idarə edən musiqini səsləndirməyiniz üçündür. Mühəndislər DWIN ağıllı ekranı və Android telefon məlumatlarının qarşılıqlı əlaqəsinə nail olmaq üçün Bluetooth modulu vasitəsilə istifadəçilər Android telefonunu, mahnının ifasında USB flash sürücüsünü asanlıqla idarə edə, fasilə verə, mahnı və səs parametrlərini dəyişdirə, ağıllı ekran və Android telefonu ilə təcrübə edə bilərlər. rahat nəzarət.

1.C51 Dizayn
(1) T5L seriya portu oxutma statusunu dəyişdirmək, səs səviyyəsini təyin etmək və Bluetooth statusunu oxumaq üçün Bluetooth modulu ilə qarşılıqlı əlaqə yaradır, istinad kodunun bir hissəsi aşağıdakı kimidir:
int əsas(boş)
{
INIT_CPU();
T2_Heat();
UART4_Init();
EA=1;
//UART4_SendStr("salam",sizeof("salam"));
//WDT_ON();//Gözətçi itini yandırın.
isə (1)
{
//WDT_RST();//İtin ayaqları
Proses();
}
}
void UART4_Init(keçmiş)
{
// UART4 ötürmə sürəti təyini:
//BODE2_DIV_H=CPU Şəbəkə tezliyi/(8*Baud dərəcəsi) .
//206438400/8/115200=224=0xe0
//206438400/8/921600=28=0x1C
//206438400/8=25804800/230400=112=0×70
SCON2T=0×80;
SCON2R=0×80;
BODE2_DIV_H=0×00;//FCLK/(8*DIV) 
BODE2_DIV_L=0xe0;// 921600 Baud sürəti
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
EA=1;
}
void TenMsHandle(boşdur)
{
if(!TenmsFlag)
qayıtmaq;
TenmsFlag=0;
SourcePress();//Ton generatoru
PlayCtrPress();//Oynatma vəziyyətinin dəyişməsi
VolCtrSlider();//Səs dəyişikliyi
VolLogSlider();//Səs dəyişikliyi
ReadBtState();//Bluetooth statusunu oxuyun
}
void SourcePress(boş)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
if(TouchKey[1]==0)
qayıtmaq;
Sdata[1]=0;
keçid(TouchKey[1])
{
case1://U disk
Sdata[0]=1;
SendDataToBT(Write_Run_Mode, Sdata,1);
fasilə;
case2:// Xarici LineInput
Sdata[0]=2;
SendDataToBT(Write_Run_Mode, Sdata,1);
fasilə;
case3://Bluetooth
Sdata[0]=3;
SendDataToBT(Write_Run_Mode, Sdata,1);
fasilə;
}
write_dgusii_vp(0×3003,TouchKey,1);
memset(TouchKey,0,ölçüsü(TouchKey));
write_dgusii_vp(0×3000,TouchKey,1);
ReadBtStatecount=0;
}
PlayCtrPress-i ləğv edin(boşdur)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3001,TouchKey,1);
if(TouchKey[1]==0)
qayıtmaq;
Sdata[1]=0;
keçid(TouchKey[1])
{
case1:// Əvvəlki mahnı
Sdata[0]=1;
SendDataToBT(Write_Next_Pre_PT, Sdata,1);
fasilə;
case2:// Oynatma Fasiləsi
Sdata[0]=2;
SendDataToBT(Write_Next_Pre_PT, Sdata,1);
fasilə;
case3:// Növbəti mahnı
Sdata[0]=3;
SendDataToBT(Write_Next_Pre_PT, Sdata,1);
fasilə;
}
memset(TouchKey,0,ölçüsü(TouchKey));
write_dgusii_vp(0×3001,TouchKey,1);
ReadBtStatecount=0;
}

(2)Android proqram paketi QT vasitəsilə yazılmışdır, əsasən Bluetooth bağlantısı və smart ekranla rabitə nəzarətini həyata keçirir, istinad kodunun bir hissəsi aşağıdakı kimidir:
ui->setupUi(bu);
bluetooth_ble_Tool=yeni Bluetooth_ble_Tool("dwin_bt(BLE)");
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
qoşulun(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
bu,&BLE_PairPage::BlueSearchConnectState);
//btchat=new BtChat();
//btchat->set_ble_Tool(bluetooth_ble_Tool);
//btchat->init_Page();
//btchat->gizlət();
devicecommHandle=yeni DeviceComm();
devicecommHandle->set_ble_Tool(bluetooth_ble_Tool);
devicecommHandle->InitDevice();
mwin=new mainwin();
az->gizlət();
qoşulun(mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// Yaz rejimi dəyişikliyi buraxıldı
birləşdirin(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// yanır. mahnının yuxarı və aşağı hissələrini yazın
qoşulun(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// Səs dəyişikliyini aşağı yazın
qoşulun(devicecommHandle,&DeviceComm::ReadPlayMode,
bu,[=](int rejimi){// Cari rejimin qurulması
qDebug() qDebug() B_Upan->setChecked(yanlış);
mwin->B_AUX->setChecked(yanlış);
mwin->B_BT->setChecked(yanlış);
əgər (rejim==1)
mwin->B_Upan->setChecked(doğru);
başqa halda (rejim==2)
mwin->B_AUX->setChecked(doğru);
başqa əgər (rejim==3)
mwin->B_BT->setChecked(doğru);
});
qoşulun(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
bu,[=](int vol){// Səs Ekranının qurulması
mwin->QS_MainVol->setValue(cild);
});
qoşulun(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
bu,[=](){
this -> show();
az->gizlət();
devicecommHandle->TimerStopReadDeviceST();
this->ui->progressBar->setValue(0);
});
etibarsız BLE_PairPage::on_pushButton_clicked(){
bluetooth_ble_Tool->SetOperUuidServer(QBluetoothUuid(serviceUuid));
//ui->label_localBT->clear();
//ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
bluetooth_ble_Tool->startFindConnectBle();
//bluetooth_ble_Tool->startStateprogressBar();
ui->pushButton->setEnabled(yanlış);
ui->pushButton->setText(“Axtarılır”);
qoşulun(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicebitmiş,
bu,[=](yaxşı){
ui->pushButton->setEnabled(doğru);
ui->pushButton->setText("Qoşulmuş Bluetooth-u aşkarlamağa başlayın");
əgər (yaxşı == yanlış) {
QMessageBox::information(bu,tr(“Axtarış Vəziyyəti “),” Cihazı axtarmaq mümkün deyil, lütfən, cihazın artıq yandırılıb-sönmədiyini yoxlayın və ya başqa mobil telefon artıq ona qoşulubmu?”);} }); }
etibarsız BLE_PairPage::BlueSearchConnectState(Bluetooth_ble_Tool::startStateprogressBar_em Linkst, int progress){
ui->progressBar->setValue(tərəqqi);
if(Linkst>=Bluetooth_ble_Tool::Ble_OtherError){
QMessageBox::informasiya(bu,tr(“bağlantı sorğusu”),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(bluetooth_ble_Tool->getErrorinfo());}
else if(Linkst>=Bluetooth_ble_Tool::Ble_Deconnect_device){
QMessageBox::informasiya(bu,tr("bağlantı sorğusu"),"baggy ");
ui->label_tips->setText(“buggy”);}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr(“uğurla qoşuldu”),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(“uğurla qoşuldu”);
this -> gizlət();
mwin->show();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->show();
//bağlantıyı kəsin(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//bu,&BLE_PairPage::BlueSearchConnectState); }
başqa{
ui->label_tips->setText(“Bağlantılar axtarılır”); }


Göndərmə vaxtı: 23 may 2024-cü il