【Ανοιχτού κώδικα】 Οθόνη DWIN και τηλέφωνο Android αμφίδρομη σύνδεση Έλεγχος αναπαραγωγής μουσικής

–Από το Φόρουμ προγραμματιστών DWIN

Αυτό το θέμα σας επιτρέπει να προωθήσετε τη βραβευμένη θήκη ανοιχτού κώδικα του φόρουμ προγραμματιστών DWIN – η οθόνη DWIN και η αμφίδρομη σύνδεση τηλεφώνου Android ελέγχουν την αναπαραγωγή μουσικής. Μηχανικοί μέσω της μονάδας Bluetooth για να επιτύχουν την αλληλεπίδραση δεδομένων έξυπνης οθόνης DWIN και τηλεφώνου Android, οι χρήστες μπορούν εύκολα να ελέγξουν το τηλέφωνο Android, τη μονάδα flash USB στην αναπαραγωγή τραγουδιού, την παύση, την αλλαγή των ρυθμίσεων τραγουδιού και ήχου, την εμπειρία έξυπνης οθόνης και το τηλέφωνο Android δύο- τρόπο βολικό έλεγχο.

1.C51 Σχεδίαση
(1) Η σειριακή θύρα T5L αλληλεπιδρά με τη μονάδα Bluetooth για να τροποποιήσει την κατάσταση αναπαραγωγής, να ρυθμίσει την ένταση και να διαβάσει την κατάσταση Bluetooth, μέρος του κωδικού αναφοράς έχει ως εξής:
int main (κενό)
{
INIT_CPU();
T2_Heat();
UART4_Init();
EA=1;
//UART4_SendStr("hello",sizeof("hello"));
//WDT_ON();//Ενεργοποιήστε το Watchdog.
ενώ (1)
{
//WDT_RST();//Πόδι του σκύλου
Επεξεργάζομαι, διαδικασία();
}
}
void UART4_Init(void)
{
// Ρύθμιση ρυθμού Baud UART4:
//BODE2_DIV_H=Συχνότητα δικτύου CPU/(8*Ρυθμός 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 Ρυθμός Baud
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
EA=1;
}
void TenMsHandle(void)
{
if(!TenmsFlag)
ΕΠΙΣΤΡΟΦΗ;
TenmsFlag=0;
SourcePress();//Γεννήτρια τόνου
PlayCtrPress();//Αλλαγή κατάστασης αναπαραγωγής
VolCtrSlider();//Αλλαγή έντασης
VolLogSlider();//Αλλαγή έντασης
ReadBtState();//Ανάγνωση κατάστασης Bluetooth
}
void SourcePress(void)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
if(Πλήκτρο αφής[1]==0)
ΕΠΙΣΤΡΟΦΗ;
Sdata[1]=0;
διακόπτης (Πλήκτρο αφής[1])
{
case1://U δίσκος
Sdata[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
Διακοπή;
case2:// Είσοδος εξωτερικής γραμμής εισόδου
Sdata[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
Διακοπή;
case3://Bluetooth
Sdata[0]=3;
SendDataToBT(Write_Run_Mode,Sdata,1);
Διακοπή;
}
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(Πλήκτρο αφής[1]==0)
ΕΠΙΣΤΡΟΦΗ;
Sdata[1]=0;
διακόπτης (Πλήκτρο αφής[1])
{
case1:// Προηγούμενο τραγούδι
Sdata[0]=1;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
Διακοπή;
case2:// Παύση αναπαραγωγής
Sdata[0]=2;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
Διακοπή;
case3:// Επόμενο τραγούδι
Sdata[0]=3;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
Διακοπή;
}
memset(TouchKey,0,sizeof(TouchKey));
write_dgusii_vp(0×3001,TouchKey,1);
ReadBtStatecount=0;
}

(2) Το πακέτο λογισμικού Android είναι γραμμένο μέσω QT, πραγματοποιώντας κυρίως τη σύνδεση Bluetooth και τον έλεγχο επικοινωνίας με την έξυπνη οθόνη, μέρος του κωδικού αναφοράς έχει ως εξής:
ui->setupUi(this);
bluetooth_ble_Tool=νέο Bluetooth_ble_Tool(“dwin_bt(BLE)”);
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
connect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
αυτό,&BLE_PairPage::BlueSearchConnectState);
//btchat=new BtChat();
//btchat->set_ble_Tool(bluetooth_ble_Tool);
//btchat->init_Page();
//btchat->hide();
devicecommHandle=new DeviceComm();
devicecommHandle->set_ble_Tool(bluetooth_ble_Tool);
devicecommHandle->InitDevice();
mwin=new mainwin();
less->hide();
connect(mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// Εκδόθηκε η αλλαγή λειτουργίας εγγραφής
connect(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// αναμ. γράψτε το πάνω και το κάτω μέρος ενός τραγουδιού
connect(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// Καταγραφή αλλαγής έντασης ήχου
connect(devicecommHandle,&DeviceComm::ReadPlayMode,
αυτό,[=](int mode){// Ρύθμιση της τρέχουσας λειτουργίας
qDebug() qDebug() B_Upan->setChecked(false);
mwin->B_AUX->setChecked(false);
mwin->B_BT->setChecked(false);
if (λειτουργία==1)
mwin->B_Upan->setChecked(true);
αλλιώς εάν (λειτουργία==2)
mwin->B_AUX->setChecked(true);
αλλιώς εάν (λειτουργία==3)
mwin->B_BT->setChecked(true);
});
connect(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
αυτό,[=](int vol){// Ρύθμιση της οθόνης έντασης
mwin->QS_MainVol->setValue(vol);
});
connect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
αυτό,[=](){
this-> show();
less->hide();
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("Αναζήτηση");
connect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicefinished,
αυτό,[=](μπουλ εντάξει){
ui->pushButton->setEnabled(true);
ui->pushButton->setText("Έναρξη εντοπισμού συνδεδεμένου Bluetooth");
αν(οκ==ψευδές) {
QMessageBox::information(this,tr("Search Status")," Δεν είναι δυνατή η αναζήτηση της συσκευής, ελέγξτε εάν η συσκευή είναι ήδη ενεργοποιημένη ή εάν είναι ήδη συνδεδεμένο ένα άλλο κινητό τηλέφωνο σε αυτήν;");} }); }
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("contect prompt ")," buggy ");
ui->label_tips->setText("buggy");}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr("συνδέθηκε με επιτυχία"),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText("συνδέθηκε με επιτυχία");
this->hide();
mwin->show();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->show();
//disconnect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//this,&BLE_PairPage::BlueSearchConnectState); }
αλλού{
ui->label_tips->setText("Αναζήτηση συνδέσεων"); }


Ώρα δημοσίευσης: 23 Μαΐου 2024