【ओपन सोर्स】 DWIN स्क्रीन और एंड्रॉइड फोन टू-वे लिंकेज कंट्रोल म्यूजिक प्लेबैक

-DWIN डेवलपर फोरम से

यह मुद्दा आपके लिए DWIN डेवलपर फोरम के पुरस्कार विजेता ओपन-सोर्स केस - DWIN स्क्रीन और एंड्रॉइड फोन टू-वे लिंकेज कंट्रोल म्यूजिक प्लेबैक को आगे बढ़ाने के लिए है। DWIN इंटेलिजेंट स्क्रीन और एंड्रॉइड फोन डेटा इंटरैक्शन को प्राप्त करने के लिए ब्लूटूथ मॉड्यूल के माध्यम से इंजीनियर, उपयोगकर्ता आसानी से एंड्रॉइड फोन को नियंत्रित कर सकते हैं, गाने प्ले में यूएसबी फ्लैश ड्राइव, रोक सकते हैं, गाने और ध्वनि सेटिंग्स बदल सकते हैं, इंटेलिजेंट स्क्रीन और एंड्रॉइड फोन दो का अनुभव कर सकते हैं- रास्ता सुविधाजनक नियंत्रण.

1.C51 डिज़ाइन
(1) टी5एल सीरियल पोर्ट प्लेबैक स्थिति को संशोधित करने, वॉल्यूम सेट करने और ब्लूटूथ स्थिति को पढ़ने के लिए ब्लूटूथ मॉड्यूल के साथ इंटरैक्ट करता है, संदर्भ कोड का हिस्सा इस प्रकार है:
पूर्णांक मुख्य(शून्य)
{
INIT_CPU();
T2_हीट();
UART4_Init();
ईए=1;
//UART4_SendStr('हैलो', sizeof('हैलो'));
//WDT_ON();//वॉचडॉग चालू करें।
जबकि(1)
{
//WDT_RST();//कुत्ते को पैर दें
प्रक्रिया();
}
}
शून्य UART4_Init(शून्य)
{
//UART4 बॉड दर सेटिंग:
//BODE2_DIV_H=सीपीयू मेन्स फ्रीक्वेंसी/(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 बॉड दर
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
ईए=1;
}
शून्य TenMsHandle(शून्य)
{
यदि(!TenmsFlag)
वापस करना;
TenmsFlag=0;
सोर्सप्रेस();//टोन जनरेटर
PlayCtrPress();//प्लेबैक स्थिति परिवर्तन
VolCtrSlider();//वॉल्यूम परिवर्तन
VolLogSlider();//वॉल्यूम परिवर्तन
ReadBtState();//ब्लूटूथ स्थिति पढ़ें
}
शून्य सोर्सप्रेस(शून्य)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
यदि(टचकी[1]==0)
वापस करना;
एसडीटा[1]=0;
स्विच(टचकी[1])
{
केस1://यू डिस्क
एसडीटा[0]=1;
भेजेंDataToBT(Write_Run_Mode,Sdata,1);
तोड़ना;
केस2:// एक्सटर्नल लाइनइन इनपुट
एसडीटा[0]=2;
भेजेंDataToBT(Write_Run_Mode,Sdata,1);
तोड़ना;
केस3://ब्लूटूथ
एसडीटा[0]=3;
भेजेंDataToBT(Write_Run_Mode,Sdata,1);
तोड़ना;
}
write_dgusii_vp(0×3003,TouchKey,1);
मेमसेट(टचकी,0,साइजऑफ(टचकी));
write_dgusii_vp(0×3000,TouchKey,1);
ReadBtStatecount=0;
}
शून्य PlayCtrPress(शून्य)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3001,TouchKey,1);
यदि(टचकी[1]==0)
वापस करना;
एसडीटा[1]=0;
स्विच(टचकी[1])
{
केस 1: // पिछला गाना
एसडीटा[0]=1;
सेंडडेटाटूबीटी(राइट_नेक्स्ट_प्री_पीटी,एसडीटा,1);
तोड़ना;
केस 2: // प्लेबैक रोकें
एसडीटा[0]=2;
सेंडडेटाटूबीटी(राइट_नेक्स्ट_प्री_पीटी,एसडीटा,1);
तोड़ना;
केस3:// अगला गाना
एसडीटा[0]=3;
सेंडडेटाटूबीटी(राइट_नेक्स्ट_प्री_पीटी,एसडीटा,1);
तोड़ना;
}
मेमसेट(टचकी,0,साइजऑफ(टचकी));
write_dgusii_vp(0×3001,TouchKey,1);
ReadBtStatecount=0;
}

(2) एंड्रॉइड सॉफ्टवेयर पैकेज क्यूटी के माध्यम से लिखा गया है, जो मुख्य रूप से स्मार्ट स्क्रीन के साथ ब्लूटूथ कनेक्शन और संचार नियंत्रण को साकार करता है, संदर्भ कोड का हिस्सा इस प्रकार है:
ui->setupUi(यह);
ब्लूटूथ_बल_टूल=नया ब्लूटूथ_बल_टूल('dwin_bt(BLE)');
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
कनेक्ट(ब्लूटूथ_बल_टूल,&ब्लूटूथ_बल_टूल::ब्लूसर्चकनेक्टस्टेट,
यह,&BLE_PairPage::BlueSearchConnectState);
//btchat=नया BtChat();
//btchat->set_ble_Tool(ब्लूटूथ_ble_Tool);
//btchat->init_Page();
//btchat->hide();
डिवाइसकॉमहैंडल=नया डिवाइसकॉम();
डिवाइसकॉमहैंडल->सेट_बल_टूल(ब्लूटूथ_बल_टूल);
डिवाइसकॉमहैंडल->इनिटडिवाइस();
एमविन=नया मेनविन();
कम->छिपाएँ();
कनेक्ट(mwin,&mainwin:layChangeMode,
डिवाइसकॉमहैंडल,&डिवाइसकॉम:लेचेंजमोड);// लिखें मोड परिवर्तन जारी किया गया
कनेक्ट(mwin,&mainwin:layCtrPreNextSt,
डिवाइसकॉमहैंडल,&डिवाइसकॉम:layCtrPreNextSt);// लिट। किसी गीत के ऊपरी और निचले हिस्सों को लिखें
कनेक्ट(mwin,&mainwin:layMusicVolChange,
डिवाइसकॉमहैंडल,&डिवाइसकॉम:लेम्यूजिकवॉलचेंज);// वॉल्यूम परिवर्तन नीचे लिखें
कनेक्ट(डिवाइसकॉमहैंडल,&डिवाइसकॉम::रीडप्लेमोड,
यह,[=](int mode){// वर्तमान मोड सेट करना
qDebug() qDebug() B_Upan->setChecked(झूठा);
mwin->B_AUX->setChecked(झूठा);
mwin->B_BT->setChecked(झूठा);
यदि(मोड==1)
mwin->B_Upan->setChecked(true);
अन्यथा यदि(मोड==2)
mwin->B_AUX->setChecked(true);
अन्यथा यदि(मोड==3)
mwin->B_BT->setChecked(true);
});
कनेक्ट(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
यह,[=](int vol){// वॉल्यूम डिस्प्ले सेट करना
mwin->QS_MainVol->setValue(vol);
});
कनेक्ट(ब्लूटूथ_बल_टूल,&ब्लूटूथ_बल_टूल::बीएलई_लिंक_त्रुटि,
यह,[=](){
यह->शो();
कम->छिपाएँ();
डिवाइसकॉमहैंडल->टाइमरस्टॉपरीडडिवाइसएसटी();
यह->यूआई->प्रोग्रेसबार->सेटवैल्यू(0);
});
शून्य BLE_PairPage::on_pushButton_clicked(){
Bluetooth_ble_Tool->SetOperUuidServer(QBluetoothUuid(serviceUuid));
//ui->label_localBT->clear();
//ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
ब्लूटूथ_ble_Tool->startFindConnectBle();
//ब्लूटूथ_बल_टूल->स्टार्टस्टेटप्रोग्रेसबार();
ui->pushButton->setEnabled(false);
ui->pushButton->setText(“खोज रहा है”);
कनेक्ट(ब्लूटूथ_बल_टूल,&ब्लूटूथ_बल_टूल::ब्लूबीएलई_फाइंडडिवाइससमाप्त,
यह,[=](बूल ठीक है){
ui->pushButton->setEnabled(true);
ui->pushButton->setText('कनेक्टेड ब्लूटूथ का पता लगाना शुरू करें');
अगर(ठीक==झूठा) {
QMessageBox::जानकारी(यह,tr(“खोज स्थिति”),“डिवाइस को खोजा नहीं जा सकता, कृपया जांचें कि क्या डिवाइस पहले से ही चालू है, या क्या कोई अन्य सेल फोन पहले से ही इससे जुड़ा हुआ है?”);} }); }
शून्य BLE_PairPage::BlueSearchConnectState(Bluetooth_ble_Tool::startStateprogressBar_em Linkst, int प्रगति){
ui->प्रगतिबार->सेटवैल्यू(प्रगति);
if(Linkst>=Bluetooth_ble_Tool::Ble_OtherError){
QMessageBox::जानकारी(यह,tr(“कनेक्शन प्रॉम्प्ट”),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(bluetooth_ble_Tool->getErrorinfo());}
अन्यथा यदि(Linkst>=Bluetooth_ble_Tool::Ble_Deconnect_device){
QMessageBox::जानकारी(यह,tr('कनेक्शन संकेत'),' छोटी गाड़ी');
ui->label_tips->setText(“छोटी गाड़ी”);}
अन्यथा यदि(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
यह,tr(“सफलतापूर्वक कनेक्टेड”),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(“सफलतापूर्वक कनेक्टेड”);
यह->छिपाएँ();
एमविन->शो();
डिवाइसकॉमहैंडल->टाइमरस्टार्टरीडडिवाइसएसटी(100);
//btchat->शो();
//डिस्कनेक्ट(ब्लूटूथ_बल_टूल,&ब्लूटूथ_बल_टूल::ब्लूसर्चकनेक्टस्टेट,
//यह,&BLE_PairPage::BlueSearchConnectState); }
अन्य{
ui->label_tips->setText(“कनेक्शन की खोज”); }


पोस्ट समय: मई-23-2024