【Sumber Terbuka】 Skrin DWIN dan Telefon Android Kawalan Pautan Dua Hala Main Balik Muzik

–Dari Forum Pembangun DWIN

Isu ini untuk anda menolak kes sumber terbuka yang memenangi anugerah forum pembangun DWIN – skrin DWIN dan main balik muzik kawalan pautan dua hala telefon Android. Jurutera melalui modul Bluetooth untuk mencapai skrin pintar DWIN dan interaksi data telefon Android, pengguna boleh mengawal telefon Android dengan mudah, pemacu kilat USB dalam mainan lagu, jeda, menukar tetapan lagu dan bunyi, mengalami skrin pintar dan telefon Android dua- cara kawalan yang mudah.

1.C51 Reka Bentuk
(1) Port bersiri T5L berinteraksi dengan modul Bluetooth untuk mengubah suai status main balik, menetapkan kelantangan, dan membaca status Bluetooth, sebahagian daripada kod rujukan adalah seperti berikut:
int utama (kosong)
{
INIT_CPU();
T2_Haba();
UART4_Init();
EA=1;
//UART4_SendStr(“hello”,sizeof(“hello”));
//WDT_ON();//Hidupkan Anjing Pengawas.
manakala(1)
{
//WDT_RST();//Kaki anjing itu
Proses();
}
}
void UART4_Init(void)
{
// Tetapan kadar Baud UART4:
//BODE2_DIV_H=Kekerapan Utama CPU/(8*Kadar 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 Kadar Baud
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
EA=1;
}
batal TenMsHandle(kosong)
{
jika(!TenmsFlag)
kembali;
TenmsFlag=0;
SourcePress();//Penjana nada
PlayCtrPress();//Perubahan keadaan main balik
VolCtrSlider();//Perubahan volum
VolLogSlider();//Perubahan volum
ReadBtState();//Baca status Bluetooth
}
void SourcePress(void)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
jika(TouchKey[1]==0)
kembali;
Sdata[1]=0;
suis (TouchKey[1])
{
case1: // cakera U
Sdata[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
pecah;
case2:// Input LineIn Luaran
Sdata[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
pecah;
kes3://Bluetooth
Sdata[0]=3;
SendDataToBT(Write_Run_Mode,Sdata,1);
pecah;
}
write_dgusii_vp(0×3003,TouchKey,1);
memset(TouchKey,0,sizeof(TouchKey));
write_dgusii_vp(0×3000,TouchKey,1);
ReadBtStatecount=0;
}
batal PlayCtrPress(kosong)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3001,TouchKey,1);
jika(TouchKey[1]==0)
kembali;
Sdata[1]=0;
suis (Kekunci Sentuh[1])
{
kes1:// Lagu sebelumnya
Sdata[0]=1;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
pecah;
kes2:// Jeda Main Semula
Sdata[0]=2;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
pecah;
case3:// Lagu seterusnya
Sdata[0]=3;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
pecah;
}
memset(TouchKey,0,sizeof(TouchKey));
write_dgusii_vp(0×3001,TouchKey,1);
ReadBtStatecount=0;
}

(2)Pakej perisian Android ditulis melalui QT, terutamanya menyedari sambungan Bluetooth dan kawalan komunikasi dengan skrin pintar, sebahagian daripada kod rujukan adalah seperti berikut:
ui->setupUi(this);
bluetooth_ble_Tool=Bluetooth_ble_Tool baharu(“dwin_bt(BLE)”);
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
connect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
ini,&BLE_PairPage::BlueSearchConnectState);
//btchat=new BtChat();
//btchat->set_ble_Tool(bluetooth_ble_Tool);
//btchat->init_Page();
//btchat->hide();
devicecommHandle=PerantiComm baharu();
devicecommHandle->set_ble_Tool(bluetooth_ble_Tool);
devicecommHandle->InitDevice();
mwin=mainwin baru();
less->hide();
sambung(mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// Tulis perubahan mod dikeluarkan
sambung(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// lit. tulis bahagian atas dan bawah lagu
sambung(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// Tuliskan perubahan kelantangan
sambung(devicecommHandle,&DeviceComm::ReadPlayMode,
ini,[=](mod int){// Menetapkan mod semasa
qDebug() qDebug() B_Upan->setChecked(false);
mwin->B_AUX->setChecked(false);
mwin->B_BT->setChecked(false);
jika(mod==1)
mwin->B_Upan->setChecked(true);
else if(mod==2)
mwin->B_AUX->setChecked(true);
else if(mod==3)
mwin->B_BT->setChecked(true);
});
sambung(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
ini,[=](int vol){// Menetapkan Paparan Kelantangan
mwin->QS_MainVol->setValue(vol);
});
sambung(Bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
ini,[=](){
ini->tunjukkan();
less->hide();
devicecommHandle->TimerStopReadDeviceST();
this->ui->progressBar->setValue(0);
});
batal 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("Mencari ");
connect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicefinished,
ini,[=](bool ok){
ui->PushButton->setEnabled(true);
ui->pushButton->setText("Mula mengesan Bluetooth yang disambungkan ");
jika(ok==salah) {
QMessageBox::information(this,tr(“Search Status “),” Peranti tidak boleh dicari, sila semak sama ada peranti sudah dihidupkan atau jika telefon bimbit lain sudah disambungkan kepadanya?”);} }); }
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("connection prompt "),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("connection prompt ")," buggy ");
ui->label_tips->setText(“buggy”);}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr(“berjaya disambungkan “),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText("berjaya disambungkan ");
ini->sembunyikan();
mwin->show();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->show();
//disconnect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//this,&BLE_PairPage::BlueSearchConnectState); }
lain{
ui->label_tips->setText("Mencari sambungan "); }


Masa siaran: Mei-23-2024