【Sumber Terbuka】 Layar DWIN dan Ponsel Android Kontrol Tautan Dua Arah Pemutaran Musik

–Dari Forum Pengembang DWIN

Masalah ini bagi Anda untuk mendorong kasus sumber terbuka pemenang penghargaan dari forum pengembang DWIN – Layar DWIN dan ponsel Android kontrol tautan dua arah pemutaran musik. Insinyur melalui modul Bluetooth untuk mencapai layar cerdas DWIN dan interaksi data ponsel Android, pengguna dapat dengan mudah mengontrol ponsel Android, USB flash drive dalam pemutaran lagu, jeda, mengubah pengaturan lagu dan suara, merasakan layar cerdas dan ponsel Android dua- cara kontrol yang nyaman.

1.C51 Desain
(1) Port serial T5L berinteraksi dengan modul Bluetooth untuk mengubah status pemutaran, mengatur volume, dan membaca status Bluetooth, bagian dari kode referensi adalah sebagai berikut:
int utama(batal)
{
INIT_CPU();
T2_Panas();
UART4_Init();
EA=1;
//UART4_SendStr("halo",sizeof("halo"));
//WDT_ON();//Nyalakan Watchdog.
sementara(1)
{
//WDT_RST();//Kaki anjingnya
Proses();
}
}
batal UART4_Init(batal)
{
// Pengaturan kecepatan Baud UART4:
//BODE2_DIV_H=Frekuensi listrik CPU/(8*Kecepatan baud) .
//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 Kecepatan baud
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
EA=1;
}
batal TenMsHandle(batal)
{
if(!TenmsFlag)
kembali;
Bendera Tenms=0;
SourcePress();//Pembuat nada
PlayCtrPress();//perubahan status pemutaran
VolCtrSlider();//Perubahan volume
VolLogSlider();//Perubahan volume
ReadBtState();//Baca status Bluetooth
}
batal SourcePress (batal)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
jika(Tombol Sentuh[1]==0)
kembali;
Sdata[1]=0;
beralih(Tombol Sentuh[1])
{
kasus1://U disk
Sdata[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
merusak;
case2:// Masukan Saluran Masuk Eksternal
Sdata[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
merusak;
case3://Bluetooth
Sdata[0]=3;
SendDataToBT(Write_Run_Mode,Sdata,1);
merusak;
}
write_dgusii_vp(0×3003,TouchKey,1);
memset(TouchKey,0,sizeof(TouchKey));
write_dgusii_vp(0×3000,TouchKey,1);
BacaBtStatecount=0;
}
batalkan PlayCtrPress(batal)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3001,TouchKey,1);
jika(Tombol Sentuh[1]==0)
kembali;
Sdata[1]=0;
beralih(Tombol Sentuh[1])
{
case1:// Lagu sebelumnya
Sdata[0]=1;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
merusak;
case2:// Pemutaran Jeda
Sdata[0]=2;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
merusak;
case3:// Lagu berikutnya
Sdata[0]=3;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
merusak;
}
memset(TouchKey,0,sizeof(TouchKey));
write_dgusii_vp(0×3001,TouchKey,1);
BacaBtStatecount=0;
}

(2)Paket perangkat lunak Android ditulis melalui QT, terutama mewujudkan koneksi Bluetooth dan kontrol komunikasi dengan layar pintar, bagian dari kode referensi adalah sebagai berikut:
ui->setupUi(ini);
bluetooth_ble_Tool=Alat_Bluetooth_ble_baru(“dwin_bt(BLE)”);
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
sambungkan(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
ini,&BLE_PairPage::BlueSearchConnectState);
//btchat=BtChat baru();
//btchat->set_ble_Tool(bluetooth_ble_Tool);
//btchat->init_Page();
//btchat->sembunyikan();
devicecommHandle=DeviceComm baru();
devicecommHandle->set_ble_Tool(bluetooth_ble_Tool);
perangkatcommHandle->InitDevice();
mwin=mainwin baru();
kurang->sembunyikan();
sambungkan(mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// Perubahan mode tulis dikeluarkan
sambungkan(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// lit. tuliskan bagian atas dan bawah sebuah lagu
sambungkan(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// Tulis perubahan volume ke bawah
sambungkan(devicecommHandle,&DeviceComm::ReadPlayMode,
this,[=](int mode){// Menyetel mode saat ini
qDebug() qDebug() B_Upan->setChecked(salah);
mwin->B_AUX->setChecked(salah);
mwin->B_BT->setChecked(salah);
jika(modus==1)
mwin->B_Upan->setChecked(benar);
lain jika(mode==2)
mwin->B_AUX->setChecked(benar);
lain jika(mode==3)
mwin->B_BT->setChecked(benar);
});
sambungkan(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
ini,[=](int vol){// Mengatur Tampilan Volume
mwin->QS_MainVol->setValue(vol);
});
sambungkan(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
ini,[=](){
ini->tampilkan();
kurang->sembunyikan();
devicecommHandle->TimerStopReadDeviceST();
ini->ui->progressBar->setValue(0);
});
batal BLE_PairPage::on_pushButton_clicked(){
bluetooth_ble_Tool->SetOperUuidServer(QBluetoothUuid(layananUuid));
//ui->label_localBT->hapus();
//ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
bluetooth_ble_Tool->startFindConnectBle();
//bluetooth_ble_Tool->startStateprogressBar();
ui->pushButton->setEnabled(salah);
ui->pushButton->setText("Mencari");
sambungkan(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicefinished,
ini,[=](baiklah oke){
ui->pushButton->setEnabled(benar);
ui->pushButton->setText("Mulai mendeteksi Bluetooth yang terhubung ");
jika(ok==salah) {
QMessageBox::informasi(ini,tr(“Status Pencarian “),” Perangkat tidak dapat dicari, harap periksa apakah perangkat sudah dihidupkan, atau apakah ponsel lain sudah terhubung dengannya?”);} }); }
void BLE_PairPage::BlueSearchConnectState(Bluetooth_ble_Tool::startStateprogressBar_em Linkst, int kemajuan){
ui->progressBar->setValue(kemajuan);
if(Linkst>=Bluetooth_ble_Tool::Ble_OtherError){
QMessageBox::informasi(ini,tr(“koneksi prompt “),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(bluetooth_ble_Tool->getErrorinfo());}
else if(Linkst>=Bluetooth_ble_Tool::Ble_Deconnect_device){
QMessageBox::informasi(ini,tr(“koneksi prompt “),” kereta “);
ui->label_tips->setText(“kereta “);}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::informasi(
ini,tr("berhasil terhubung"),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(“berhasil terhubung “);
ini->sembunyikan();
mwin->tampilkan();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->tampilkan();
//putuskan(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//ini,&BLE_PairPage::BlueSearchConnectState); }
kalau tidak{
ui->label_tips->setText(“Mencari koneksi “); }


Waktu posting: 23 Mei-2024