【मुक्त स्रोत】 DWIN स्क्रीन आणि Android फोन द्वि-मार्ग लिंकेज नियंत्रण संगीत प्लेबॅक

- DWIN डेव्हलपर फोरम कडून

DWIN डेव्हलपर फोरम - DWIN स्क्रीन आणि अँड्रॉइड फोन टू-वे लिंकेज कंट्रोल म्युझिक प्लेबॅकचा पुरस्कार-विजेता ओपन-सोर्स केस पुश करण्यासाठी ही समस्या तुमच्यासाठी आहे. डीडब्ल्यूआयएन इंटेलिजेंट स्क्रीन आणि अँड्रॉइड फोन डेटा इंटरॲक्शन साध्य करण्यासाठी ब्लूटूथ मॉड्यूलद्वारे अभियंते, वापरकर्ते सहजपणे अँड्रॉइड फोन नियंत्रित करू शकतात, गाणे प्ले करताना यूएसबी फ्लॅश ड्राइव्ह, विराम, गाणे आणि ध्वनी सेटिंग्ज बदलणे, इंटेलिजेंट स्क्रीन आणि अँड्रॉइड फोनचा अनुभव दोन- मार्ग सोयीस्कर नियंत्रण.

1.C51 डिझाइन
(1) T5L सिरीयल पोर्ट प्लेबॅक स्थिती सुधारण्यासाठी, व्हॉल्यूम सेट करण्यासाठी आणि ब्लूटूथ स्थिती वाचण्यासाठी ब्लूटूथ मॉड्यूलशी संवाद साधते, संदर्भ कोडचा भाग खालीलप्रमाणे आहे:
इंट मुख्य (रिकामा)
{
INIT_CPU();
T2_हीट();
UART4_Init();
EA=1;
//UART4_SendStr(“hello”,sizeof(“hello”));
//WDT_ON();//वॉचडॉग चालू करा.
तेव्हा(1)
{
//WDT_RST();//कुत्र्याला पाय लावा
प्रक्रिया();
}
}
शून्य UART4_Init(रक्त)
{
// UART4 Baud दर सेटिंग:
//BODE2_DIV_H=CPU मुख्य वारंवारता/(8*बॉड दर) .
//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;
सोर्सप्रेस();//टोन जनरेटर
PlayCtrPress();//प्लेबॅक स्थिती बदला
VolCtrSlider();// व्हॉल्यूम बदल
VolLogSlider();// व्हॉल्यूम बदल
ReadBtState();// Bluetooth स्थिती वाचा
}
व्हॉइड सोर्सप्रेस (रिकामा)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
जर(टचकी[1]==0)
परत;
Sdata[1]=0;
स्विच (टचकी[1])
{
केस1://यू डिस्क
Sdata[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
खंडित;
केस2:// बाह्य लाइनइन इनपुट
Sdata[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
खंडित;
केस3://ब्लूटूथ
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(रिकामा)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3001,TouchKey,1);
जर(टचकी[1]==0)
परत;
Sdata[1]=0;
स्विच (टचकी[1])
{
केस1:// मागील गाणे
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 द्वारे लिहिलेले आहे, मुख्यतः स्मार्ट स्क्रीनसह ब्लूटूथ कनेक्शन आणि संप्रेषण नियंत्रण लक्षात घेऊन, संदर्भ कोडचा भाग खालीलप्रमाणे आहे:
ui->setupUi(हे);
bluetooth_ble_Tool=new Bluetooth_ble_Tool(“dwin_bt(BLE)”);
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
कनेक्ट(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
हे,&BLE_PairPage::BlueSearchConnectState);
//btchat=नवीन BtChat();
//btchat->set_ble_Tool(bluetooth_ble_Tool);
//btchat->init_Page();
//btchat->लपवा();
devicecommHandle=new DeviceComm();
devicecommHandle->set_ble_Tool(bluetooth_ble_Tool);
devicecommHandle->InitDevice();
mwin=new mainwin();
कमी->लपवा();
कनेक्ट(mwin,&मेनविन:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// लेखन मोड बदल जारी केला
कनेक्ट(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// लिट. गाण्याचे वरचे आणि खालचे भाग लिहा
कनेक्ट(mwin,&मेनविन:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// व्हॉल्यूम बदल लिहा
कनेक्ट(devicecommHandle,&DeviceComm::ReadPlayMode,
हे,[=](इंट मोड){// वर्तमान मोड सेट करत आहे
qDebug() qDebug() B_Upan->सेटचेक केलेले(खोटे);
mwin->B_AUX->सेटचेक केलेले(खोटे);
mwin->B_BT->सेटचेक केलेले(खोटे);
जर(मोड==1)
mwin->B_Upan->सेटचेक केलेले(सत्य);
अन्यथा जर(मोड==2)
mwin->B_AUX->सेटचेक केलेले(सत्य);
अन्यथा जर(मोड==3)
mwin->B_BT->सेटचेक केलेले(सत्य);
});
कनेक्ट(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
हे,[=](int vol){// व्हॉल्यूम डिस्प्ले सेट करत आहे
mwin->QS_MainVol->setValue(vol);
});
कनेक्ट(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
हे,[=](){
this->शो();
कमी->लपवा();
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->पुशबटन->सेट सक्षम (असत्य);
ui->पुशबटन->सेट टेक्स्ट("शोधत आहे");
कनेक्ट(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicefinished,
हे,[=](बूल ओके){
ui->पुशबटन->सेट सक्षम (सत्य);
ui->पुशबटन->सेट टेक्स्ट("कनेक्ट केलेले ब्लूटूथ शोधणे सुरू करा");
जर(ठीक==असत्य) {
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("कनेक्शन प्रॉम्प्ट"),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("कनेक्शन प्रॉम्प्ट"), "buggy");
ui->label_tips->setText(“buggy “);}
अन्यथा जर(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
हे,tr("यशस्वीपणे कनेक्ट झाले"), bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText("यशस्वीपणे कनेक्ट झाले");
हे->लपवा();
mwin->शो();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->शो();
डिस्कनेक्ट करा
//हे,&BLE_PairPage::BlueSearchConnectState); }
इतर{
ui->label_tips->setText("कनेक्शन शोधत आहे"); }


पोस्ट वेळ: मे-23-2024