【Open Source】 Prehrávanie hudby na obrazovke DWIN a telefóne s Androidom obojsmerne s prepojením

– Z fóra vývojárov DWIN

Toto vydanie pre vás predstavuje ocenený open source prípad vývojárskeho fóra DWIN – obrazovka DWIN a obojsmerné prepojenie telefónu s Androidom ovládajú prehrávanie hudby. Inžinieri prostredníctvom modulu Bluetooth na dosiahnutie inteligentnej obrazovky DWIN a interakcie s údajmi telefónu s Androidom môžu používatelia jednoducho ovládať telefón s Androidom, USB flash disk v prehrávaní skladieb, pozastavenie, zmenu nastavení skladby a zvuku, zažiť inteligentnú obrazovku a telefón s Androidom. spôsobom pohodlné ovládanie.

1.C51 Dizajn
(1) Sériový port T5L spolupracuje s modulom Bluetooth na úpravu stavu prehrávania, nastavenie hlasitosti a čítanie stavu Bluetooth, časť referenčného kódu je nasledovná:
int main (void)
{
INIT_CPU();
T2_Heat();
UART4_Init();
EA = 1;
//UART4_SendStr(“ahoj”,sizeof(“ahoj”));
//WDT_ON();//Zapnite strážneho psa.
zatiaľ čo (1)
{
//WDT_RST();//Nohy psa
Proces ();
}
}
void UART4_Init(void)
{
// Nastavenie prenosovej rýchlosti UART4:
//BODE2_DIV_H=CPU Frekvencia siete/(8*Prenosová rýchlosť) .
//206438400/8/115200=224=0xe0
//206438400/8/921600=28=0x1C
//206438400/8=25804800/230400=112=0×70
SCON2T=0×80;
SCON2R = 0 x 80;
BODE2_DIV_H=0×00;//FCLK/(8*DIV) 
BODE2_DIV_L=0xe0;// 921600 Prenosová rýchlosť
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R = 1;
EA = 1;
}
void TenMsHandle(void)
{
if(!TenmsFlag)
návrat;
TenmsFlag=0;
SourcePress();//Tónový generátor
PlayCtrPress();//Zmena stavu prehrávania
VolCtrSlider();//Zmena hlasitosti
VolLogSlider();//Zmena hlasitosti
ReadBtState();//Prečítanie stavu Bluetooth
}
void SourcePress(void)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
if(TouchKey[1]==0)
návrat;
Sdata[1]=0;
prepínač (TouchKey[1])
{
case1://U disk
Sdata[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
prestávka;
case2:// Externý vstup LineIn
Sdata[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
prestávka;
case3://Bluetooth
Sdata[0]=3;
SendDataToBT(Write_Run_Mode,Sdata,1);
prestávka;
}
write_dgusii_vp(0×3003,TouchKey,1);
memset(TouchKey,0,sizeof(TouchKey));
write_dgusii_vp(0×3000,TouchKey,1);
ReadBtStatecount=0;
}
void PlayCtrPress(void)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3001,TouchKey,1);
if(TouchKey[1]==0)
návrat;
Sdata[1]=0;
prepínač (TouchKey[1])
{
case1:// Predchádzajúca skladba
Sdata[0]=1;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
prestávka;
case2:// Pozastavenie prehrávania
Sdata[0]=2;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
prestávka;
case3:// Ďalšia skladba
Sdata[0]=3;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
prestávka;
}
memset(TouchKey,0,sizeof(TouchKey));
write_dgusii_vp(0×3001,TouchKey,1);
ReadBtStatecount=0;
}

(2)Softvérový balík pre Android je napísaný prostredníctvom QT, pričom sa realizuje hlavne pripojenie Bluetooth a ovládanie komunikácie s inteligentnou obrazovkou, časť referenčného kódu je nasledovná:
ui->setupUi(toto);
bluetooth_ble_Tool=nový Bluetooth_ble_Tool(“dwin_bt(BLE)”);
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
pripojiť(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
toto,&BLE_PairPage::BlueSearchConnectState);
//btchat=new BtChat();
//btchat->set_ble_Tool(bluetooth_ble_Tool);
//btchat->init_Page();
//btchat->hide();
devicecommHandle=new DeviceComm();
devicecommHandle->set_ble_Tool(bluetooth_ble_Tool);
devicecommHandle->InitDevice();
mwin=new mainwin();
menej->skryt();
pripojiť(mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// Vydaná zmena režimu zápisu
pripojiť(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// rozsvietené. zapíšte si hornú a dolnú časť piesne
pripojiť(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// Zapíšte zmenu hlasitosti nadol
connect(devicecommHandle,&DeviceComm::ReadPlayMode,
this,[=](int mode){// Nastavenie aktuálneho režimu
qDebug() qDebug() B_Upan->setChecked(false);
mwin->B_AUX->setChecked(false);
mwin->B_BT->setChecked(false);
if(režim==1)
mwin->B_Upan->setChecked(true);
else if (režim==2)
mwin->B_AUX->setChecked(true);
else if (režim==3)
mwin->B_BT->setChecked(true);
});
connect(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
this,[=](int vol){// Nastavenie zobrazenia hlasitosti
mwin->QS_MainVol->setValue(vol);
});
pripojiť(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
toto,[=](){
this->show();
menej->skryt();
devicecommHandle->TimerStopReadDeviceST();
this->ui->progressBar->setValue(0);
});
void 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(false);
ui->pushButton->setText(“Hľadanie “);
pripojiť(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicefinished,
toto,[=](bool ok){
ui->pushButton->setEnabled(true);
ui->pushButton->setText(“Spustiť detekciu pripojeného Bluetooth “);
if(ok==false) {
QMessageBox::information(this,tr(“Stav hľadania “),” Zariadenie sa nedá vyhľadať, skontrolujte, či je zariadenie už zapnuté, alebo či už k nemu nie je pripojený iný mobilný telefón?);} }); }
void BLE_PairPage::BlueSearchConnectState(Bluetooth_ble_Tool::startStateprogressBar_em Linkst, int progress){
ui->progressBar->setValue(progress);
if(Linkst>=Bluetooth_ble_Tool::Ble_OtherError){
QMessageBox::information(this,tr(“výzva na pripojenie”),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(bluetooth_ble_Tool->getErrorinfo());}
else if(Linkst>=Bluetooth_ble_Tool::Ble_Deconnect_device){
QMessageBox::information(this,tr("výzva na pripojenie")," buggy ");
ui->label_tips->setText(“buggy”);}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr(“úspešne pripojené “),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(“úspešne pripojené “);
this->hide();
mwin->show();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->show();
//disconnect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//this,&BLE_PairPage::BlueSearchConnectState); }
inak{
ui->label_tips->setText(“Hľadanie spojení “); }


Čas odoslania: 23. mája 2024