【Open Source】 Screen DWIN è Android Phone Linkage Two-way Control Playback Music

-Da u Forum di sviluppatori DWIN

Questu prublema per voi per spinghje u premiatu casu open-source di u foru di sviluppatori DWIN - schermu DWIN è u ligame bidirezionale di u telefuninu Android cuntrolanu a riproduzione di musica. L'ingegneri attraversu u modulu Bluetooth per ottene a schermu intelligente DWIN è l'interazzione di dati di u telefuninu Android, l'utilizatori ponu facilmente cuntrullà u telefunu Android, unità flash USB in u ghjocu di canzone, mette in pausa, cambia i paràmetri di canzone è sonu, sperimentà u screnu intelligente è u telefunu Android dui- manera cuntrullata còmuda.

1.C51 Design
(1) U portu seriale T5L interagisce cù u modulu Bluetooth per mudificà u statutu di riproduzione, stabilisce u voluminu, è leghje u statutu Bluetooth, parte di u codice di riferimentu hè cusì:
int main (void)
{
INIT_CPU();
T2_Heat();
UART4_Init();
EA = 1;
//UART4_SendStr ("ciao", sizeof ("ciao");
//WDT_ON();//Attiva u Watchdog.
mentri (1)
{
//WDT_RST();//Feet the dog
Prucessu ();
}
}
void UART4_Init (void)
{
// UART4 Impostazione di baud rate:
//BODE2_DIV_H=Frequenza di rete CPU/(8*Baud rate) .
//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 rate
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
EA = 1;
}
void TenMsHandle (void)
{
if(!TenmsFlag)
ritornu;
TenmsFlag=0;
SourcePress ();// Generatore di toni
PlayCtrPress();// Cambia u statu di riproduzione
VolCtrSlider();//Cambia di u voluminu
VolLogSlider();//Volume cambià
ReadBtState();//Leghjite u statu di Bluetooth
}
void SourcePress (void)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
if(TouchKey[1]==0)
ritornu;
Sdata[1]=0;
interruttore (TouchKey [1])
{
case1: // U discu
Sdata[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
rompe;
case2:// Input LineIn Esterni
Sdata[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
rompe;
casu3://Bluetooth
Sdata[0]=3;
SendDataToBT(Write_Run_Mode,Sdata,1);
rompe;
}
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)
ritornu;
Sdata[1]=0;
interruttore (TouchKey [1])
{
case1:// Canzona precedente
Sdata[0]=1;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
rompe;
case2:// Playback Pause
Sdata[0]=2;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
rompe;
case3:// Canzona dopu
Sdata[0]=3;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
rompe;
}
memset (TouchKey, 0, sizeof (TouchKey));
write_dgusii_vp(0×3001,TouchKey,1);
ReadBtStatecount=0;
}

(2)U pacchettu di software Android hè scrittu attraversu QT, rializendu principalmente a cunnessione Bluetooth è u cuntrollu di cumunicazione cù a pantalla intelligente, una parte di u codice di riferimentu hè a siguenti:
ui->setupUi(questu);
bluetooth_ble_Tool = novu Bluetooth_ble_Tool ("dwin_bt (BLE) ");
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
connect(Bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
questu,&BLE_PairPage::BlueSearchConnectState);
//btchat=new BtChat();
//btchat->set_ble_Tool (bluetooth_ble_Tool);
//btchat->init_Page();
//btchat->hide();
devicecommHandle = novu DeviceComm ();
devicecommHandle-> set_ble_Tool (bluetooth_ble_Tool);
devicecommHandle->InitDevice ();
mwin=new mainwin ();
menu-> nascondere();
connect(mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// Cambia u modu di scrittura emessu
connect(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// lit. scrivite a parti suprana è bassa di una canzone
connect(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// Scrivite u cambiamentu di u voluminu.
cunnette (devicecommHandle,&DeviceComm::ReadPlayMode,
questu,[=](modu int){// Stabbilimentu di u modu attuale
qDebug() qDebug() B_Upan->setChecked(false);
mwin->B_AUX->setChecked(false);
mwin->B_BT->setChecked(false);
if(mode==1)
mwin->B_Upan->setChecked(true);
altru si (mode ==2)
mwin->B_AUX->setChecked(true);
altru si (mode ==3)
mwin->B_BT->setChecked(true);
});
connect(DevicecommHandle,&DeviceComm::ReadPlayMusicVol,
questu,[=](int vol){// Impostazione di u Display di Volume
mwin->QS_MainVol->setValue(vol);
});
connect(Bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
questu,[=](){
questu-> mostra ();
menu-> nascondere();
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 ("Ricerca ");
connect(Bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicefinished,
questu,[=](bool ok){
ui-> pushButton-> setEnabled (true);
ui->pushButton->setText ("Inizia à detectà Bluetooth cunnessu");
if(ok==false) {
QMessageBox::information(this,tr("Search Status")," U dispusitivu ùn pò micca esse cercatu, verificate s'ellu hè digià attivatu, o se un altru telefuninu hè digià cunnessu à questu?");} }); }
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("connessione prompte"),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(bluetooth_ble_Tool->getErrorinfo());}
altru si (Linkst>=Bluetooth_ble_Tool::Ble_Deconnect_device){
QMessageBox::information(this,tr("connessione prompt "),"buggy ");
ui->label_tips->setText ("buggy");}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr("cunnessu successu"), bluetooth_ble_Tool->getErrorinfo ());
ui->label_tips->setText ("cunnessu successu ");
questu-> nascondere ();
mwin->mostra ();
devicecommHandle->TimerStartReadDeviceST (100);
//btchat->show();
//disconnect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//this,&BLE_PairPage::BlueSearchConnectState); }
altru {
ui->label_tips->setText ("Ricerca di cunnessione "); }


Tempu di post: 23-May-2024