【Sumber Terbuka】 Layar DWIN sareng Telepon Android Dua arah Linkage Control Playback Musik

-Ti DWIN Pangembang Forum

Masalah ieu pikeun anjeun nyorong kasus open-source anu meunang pangajén tina forum pamekar DWIN - layar DWIN sareng telepon Android dua arah beungkeutan kontrol playback musik. Insinyur ngaliwatan modul Bluetooth pikeun ngahontal DWIN layar calakan sarta interaksi data telepon Android, pamaké bisa kalayan gampang ngadalikeun telepon Android, USB flash drive dina lagu muter, ngareureuhkeun, ngarobah setelan lagu jeung sora, ngalaman layar calakan sarta telepon Android dua- cara kontrol merenah.

1.C51 Desain
(1) Port serial T5L berinteraksi sareng modul Bluetooth pikeun ngarobih status playback, nyetél volume, sareng maca status Bluetooth, bagian tina kode rujukan nyaéta kieu:
int utama (void)
{
INIT_CPU();
T2_Panas();
UART4_Init();
EA=1;
//UART4_SendStr("halo", sizeof("halo"));
//WDT_ON (); // Hurungkeun Watchdog.
bari (1)
{
//WDT_RST (); // suku anjing
Prosés ();
}
}
void UART4_Init(void)
{
// Setélan laju Baud UART4:
//BODE2_DIV_H = frékuénsi CPU Mains / (8 * Laju 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 Laju Baud
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
EA=1;
}
batal TenMsHandle(void)
{
lamun(!TenmsFlag)
mulang;
TenmsFlag=0;
SourcePress (); // generator nada
PlayCtrPress (); // Parobahan kaayaan Playback
VolCtrSlider (); // Parobahan volume
VolLogSlider (); // Parobahan volume
ReadBtState();//Baca status Bluetooth
}
void SourcePress(void)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
lamun (TouchKey[1]==0)
mulang;
Sdata[1]=0;
switch (TouchKey[1])
{
kasus1: // U disk
Sdata[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
megatkeun;
case2: // External LineIn Input
Sdata[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
megatkeun;
kasus3: // Bluetooth
Sdata[0]=3;
SendDataToBT(Write_Run_Mode,Sdata,1);
megatkeun;
}
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);
lamun (TouchKey[1]==0)
mulang;
Sdata[1]=0;
switch (TouchKey[1])
{
kasus1: // lagu saméméhna
Sdata[0]=1;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
megatkeun;
kasus2: // Playback Reureuh
Sdata[0]=2;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
megatkeun;
kasus3: // lagu salajengna
Sdata[0]=3;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
megatkeun;
}
memset(TouchKey,0, sizeof(TouchKey));
write_dgusii_vp(0×3001,TouchKey,1);
ReadBtStatecount=0;
}

(2)Pakét software Android ditulis ngaliwatan QT, utamana merealisasikan sambungan Bluetooth jeung kontrol komunikasi jeung layar pinter, bagian tina kode rujukan nyaéta kieu:
ui->setupUi(ieu);
bluetooth_ble_Tool=Bluetooth_ble_Tool anyar("dwin_bt(BLE)");
ui-> label_localBT_Name-> setText (bluetooth_ble_Tool-> getLocalName ());
nyambung (bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
ieu, & BLE_PairPage :: BlueSearchConnectState);
//btchat=anyar BtChat();
//btchat->set_ble_Tool(bluetooth_ble_Tool);
//btchat->init_Page();
//btchat->sumputkeun();
devicecommHandle=PerangkatComm anyar();
devicecommHandle->set_ble_Tool(bluetooth_ble_Tool);
devicecommHandle->InitDevice();
mwin = mainwin anyar ();
kirang-> nyumput ();
connect(mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// Tulis robah mode dikaluarkeun
nyambung(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);//lit. tuliskeun bagian luhur jeung handap lagu
connect(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// Tulis robahan volume ka handap
nyambungkeun(devicecommHandle,&DeviceComm::ReadPlayMode,
ieu,[=](int mode){// Nyetél mode ayeuna
qDebug() qDebug() B_Upan-> setChecked (palsu);
mwin->B_AUX->setChecked(palsu);
mwin->B_BT->setChecked(palsu);
lamun (mode == 1)
mwin->B_Upan->setChecked (leres);
lain lamun (mode == 2)
mwin-> B_AUX-> setChecked (leres);
lain lamun (mode == 3)
mwin-> B_BT-> setChecked (leres);
});
nyambungkeun(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
ieu,[=](int vol){// Nyetél Tampilan Jilid
mwin->QS_MainVol->setValue(vol);
});
nyambung(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
ieu, [=](){
ieu-> nunjukkeun ();
kirang-> nyumput ();
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(palsu);
ui->PushButton->setText("Searching");
sambungkeun(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicefinished,
ieu, [=](bool ok){
ui-> pushButton-> setEnabled (leres);
ui->PushButton->setText("Mimitian ngadeteksi Bluetooth nu disambungkeun");
lamun (oke == salah) {
QMessageBox::inpormasi(ieu,tr("Search Status"),"Alat teu bisa searched, mangga parios lamun alat geus dihurungkeun, atawa lamun ponsel sejen geus disambungkeun ka dinya?");}}); }
batal BLE_PairPage::BlueSearchConnectState(Bluetooth_ble_Tool::startStateprogressBar_em Linkst, int kamajuan){
ui-> progressBar-> setValue (kamajuan);
lamun(Linkst>=Bluetooth_ble_Tool::Ble_OtherError){
QMessageBox :: inpormasi (ieu, tr ( "konéksi ajakan "), bluetooth_ble_Tool-> getErrorinfo ());
ui->label_tips->setText(bluetooth_ble_Tool->getErrorinfo());}
lain lamun (Linkst>=Bluetooth_ble_Tool::Ble_Deconnect_device){
QMessageBox :: inpormasi (ieu, tr ("sambungan ajakan "), "buggy");
ui->label_tips->setText("buggy");}
lain lamun(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
ieu, tr ("hasil disambungkeun "), bluetooth_ble_Tool-> getErrorinfo ());
ui->label_tips->setText("berhasil nyambung");
ieu-> nyumput ();
mwin-> nunjukkeun ();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->show();
//pegatkeun sambungan(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//ieu, & BLE_PairPage :: BlueSearchConnectState); }
lain{
ui->label_tips->setText("Milarian sambungan"); }


waktos pos: May-23-2024