【Open Source】 Écran DWIN et téléphone Android, liaison bidirectionnelle, contrôle de la lecture de musique

–Depuis le forum des développeurs DWIN

Ce numéro vous permet de promouvoir le cas open source primé du forum des développeurs DWIN : l'écran DWIN et la liaison bidirectionnelle du téléphone Android contrôlent la lecture de la musique. Les ingénieurs via le module Bluetooth pour obtenir l'interaction de l'écran intelligent DWIN et des données du téléphone Android, les utilisateurs peuvent facilement contrôler le téléphone Android, la clé USB pendant la lecture de la chanson, mettre en pause, modifier les paramètres de la chanson et du son, faire l'expérience de l'écran intelligent et du téléphone Android deux. moyen de contrôle pratique.

1.Conception C51
(1) Le port série T5L interagit avec le module Bluetooth pour modifier l'état de lecture, régler le volume et lire l'état Bluetooth, une partie du code de référence est la suivante :
int principal (vide)
{
INIT_CPU();
T2_Chaleur();
UART4_Init();
EA=1 ;
//UART4_SendStr("bonjour",sizeof("bonjour"));
//WDT_ON();//Activez le chien de garde.
pendant que(1)
{
//WDT_RST();//Pieds du chien
Processus();
}
}
annuler UART4_Init (vide)
{
// Paramètre de débit en bauds UART4 :
//BODE2_DIV_H=Fréquence secteur 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;// Débit en bauds 921600
//BODE2_DIV_H=0×00 ;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
EA=1 ;
}
annuler TenMsHandle (vide)
{
si(!TenmsFlag)
retour;
TenmsFlag=0 ;
SourcePress();//Générateur de tonalité
PlayCtrPress();//Changement d'état de lecture
VolCtrSlider();//Changement de volume
VolLogSlider();//Changement de volume
ReadBtState();//Lire l'état Bluetooth
}
annuler SourcePress (vide)
{
charTouchKey[2]={0,0} ;
u8Sdonnées[2];
read_dgusii_vp(0×3000,TouchKey,1);
si(TouchKey[1]==0)
retour;
Sdonnées[1]=0 ;
commutateur (TouchKey[1])
{
case1://U disque
Sdonnées[0]=1 ;
SendDataToBT(Write_Run_Mode,Sdata,1);
casser;
case2://Entrée LineIn externe
Sdonnées[0]=2 ;
SendDataToBT(Write_Run_Mode,Sdata,1);
casser;
cas3://Bluetooth
Sdonnées[0]=3 ;
SendDataToBT(Write_Run_Mode,Sdata,1);
casser;
}
write_dgusii_vp(0×3003,TouchKey,1);
memset(TouchKey,0,sizeof(TouchKey));
write_dgusii_vp(0×3000,TouchKey,1);
ReadBtStatecount=0 ;
}
annuler PlayCtrPress (vide)
{
charTouchKey[2]={0,0} ;
u8Sdonnées[2];
read_dgusii_vp(0×3001,TouchKey,1);
si(TouchKey[1]==0)
retour;
Sdonnées[1]=0 ;
commutateur (TouchKey[1])
{
case1:// Chanson précédente
Sdonnées[0]=1 ;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
casser;
case2:// Pause de lecture
Sdonnées[0]=2 ;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
casser;
case3:// Chanson suivante
Sdonnées[0]=3 ;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
casser;
}
memset(TouchKey,0,sizeof(TouchKey));
write_dgusii_vp(0×3001,TouchKey,1);
ReadBtStatecount=0 ;
}

(2) Le progiciel Android est écrit via QT, réalisant principalement la connexion Bluetooth et le contrôle de la communication avec l'écran intelligent, une partie du code de référence est la suivante :
ui->setupUi(this);
bluetooth_ble_Tool=nouveau Bluetooth_ble_Tool("dwin_bt(BLE)");
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
connecter (bluetooth_ble_Tool, & Bluetooth_ble_Tool :: BlueSearchConnectState,
this,&BLE_PairPage::BlueSearchConnectState);
//btchat=nouveau BtChat();
//btchat->set_ble_Tool(bluetooth_ble_Tool);
//btchat->init_Page();
//btchat->masquer();
devicecommHandle=nouveau DeviceComm();
devicecommHandle->set_ble_Tool(bluetooth_ble_Tool);
périphériquecommHandle->InitDevice();
mwin=nouveau mainwin();
moins->masquer();
connecter(mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// Changement de mode d'écriture émis
connecter(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// lit. écrire les parties supérieure et inférieure d'une chanson
connecter(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// Écrire le changement de volume
connecter(devicecommHandle,&DeviceComm::ReadPlayMode,
this,[=](int mode){// Définition du mode actuel
qDebug() qDebug() B_Upan->setChecked(false);
mwin->B_AUX->setChecked(false);
mwin->B_BT->setChecked(false);
si(mode==1)
mwin->B_Upan->setChecked(true);
sinon si(mode==2)
mwin->B_AUX->setChecked(true);
sinon si(mode==3)
mwin->B_BT->setChecked(true);
});
connecter(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
this,[=](int vol){// Définition de l'affichage du volume
mwin->QS_MainVol->setValue(vol);
});
connecter(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
ceci,[=](){
ceci->show();
moins->masquer();
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("Recherche ");
connect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDeviceterminé,
ceci,[=](bool ok){
ui->pushButton->setEnabled(true);
ui->pushButton->setText(« Démarrer la détection du Bluetooth connecté »);
si(ok==faux) {
QMessageBox::information(this,tr("Search Status ")", L'appareil ne peut pas être recherché, veuillez vérifier si l'appareil est déjà allumé ou si un autre téléphone portable y est déjà connecté ?");} }); }
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("invite de connexion"),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(bluetooth_ble_Tool->getErrorinfo());}
sinon if(Linkst>=Bluetooth_ble_Tool::Ble_Deconnect_device){
QMessageBox::information(this,tr("invite de connexion"), buggy ");
ui->label_tips->setText("buggy ");}
sinon if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr("connecté avec succès"),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText("connecté avec succès ");
ceci->masquer();
mwin->show();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->show();
//déconnexion(bluetooth_ble_Tool,&Bluetooth_ble_Tool ::BlueSearchConnectState,
//this,&BLE_PairPage::BlueSearchConnectState); }
autre{
ui->label_tips->setText("Recherche de connexions "); }


Heure de publication : 23 mai 2024