【खुला स्रोत】 DWIN स्क्रिन र एन्ड्रोइड फोन दुई-तर्फी लिङ्केज नियन्त्रण संगीत प्लेब्याक

- DWIN विकासकर्ता फोरमबाट

DWIN विकासकर्ता फोरम - DWIN स्क्रिन र एन्ड्रोइड फोन दुई-तर्फी लिङ्केज नियन्त्रण संगीत प्लेब्याक को पुरस्कार-विजेता खुला स्रोत केस पुश गर्नको लागि यो मुद्दा। ब्लुटुथ मोड्युल मार्फत इन्जिनियरहरूले DWIN इन्टेलिजेन्ट स्क्रिन र एन्ड्रोइड फोन डाटा अन्तर्क्रिया प्राप्त गर्न, प्रयोगकर्ताहरूले सजिलैसँग एन्ड्रोइड फोन नियन्त्रण गर्न सक्छन्, गीत प्लेमा USB फ्ल्याश ड्राइभ, पज, गीत र ध्वनि सेटिङहरू परिवर्तन गर्न, बुद्धिमान स्क्रिन र एन्ड्रोइड फोनको अनुभव दुई- तरिका सुविधाजनक नियन्त्रण।

1.C51 डिजाइन
(1) T5L सिरियल पोर्टले प्लेब्याक स्थिति परिमार्जन गर्न, भोल्युम सेट गर्न र ब्लुटुथ स्थिति पढ्न ब्लुटुथ मोड्युलसँग अन्तरक्रिया गर्दछ, सन्दर्भ कोडको अंश निम्नानुसार छ:
int मुख्य (शून्य)
{
INIT_CPU();
T2_Heat();
UART4_Init();
EA=1;
//UART4_SendStr(“hello”,sizeof(“hello”));
//WDT_ON();// वाचडग खोल्नुहोस्।
जबकि (१)
{
//WDT_RST();// कुकुरको खुट्टा
प्रक्रिया ();
}
}
शून्य UART4_Init(void)
{
// UART4 बाउड दर सेटिङ:
//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)
{
यदि(!TenmsFlag)
फर्किनु;
TenmsFlag=0;
SourcePress();//टोन जनरेटर
PlayCtrPress();//प्लेब्याक स्थिति परिवर्तन
VolCtrSlider ();// भोल्युम परिवर्तन
VolLogSlider();// भोल्युम परिवर्तन
ReadBtState();// ब्लुटुथ स्थिति पढ्नुहोस्
}
शून्य स्रोत प्रेस (शून्य)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
यदि (TouchKey[1]==0)
फर्किनु;
Sdata [1] = 0;
स्विच (TouchKey[1])
{
case1://U डिस्क
Sdata [0] = 1;
SendDataToBT(Write_Run_Mode,Sdata,1);
ब्रेक;
case2:// बाह्य रेखा इनपुट
Sdata [0] = 2;
SendDataToBT(Write_Run_Mode,Sdata,1);
ब्रेक;
case3://ब्लुटुथ
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;
}
शून्य PlayCtrPress (शून्य)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3001,TouchKey,1);
यदि (TouchKey[1]==0)
फर्किनु;
Sdata [1] = 0;
स्विच (TouchKey[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) एन्ड्रोइड सफ्टवेयर प्याकेज 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,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// लेखन मोड परिवर्तन जारी गरियो
जडान(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// lit। गीतको माथिल्लो र तल्लो भागहरू लेख्नुहोस्
जडान(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// भोल्युम परिवर्तन तल लेख्नुहोस्
जडान
यो,[=](int mode){// हालको मोड सेट गर्दै
qDebug() qDebug() B_Upan->setchecked(false);
mwin->B_AUX->सेट जाँच (झूटा);
mwin->B_BT->सेट जाँच (झूटा);
यदि (मोड==1)
mwin->B_Upan->setchecked(true);
अन्यथा यदि (मोड==2)
mwin->B_AUX->सेट जाँच (सत्य);
अन्यथा यदि (मोड==3)
mwin->B_BT->सेट जाँच (सत्य);
});
जडान(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
यो,[=](int vol){// भोल्युम डिस्प्ले सेट गर्दै
mwin->QS_MainVol->setValue(vol);
});
जडान गर्नुहोस्
यो,[=](){
यो->शो();
कम-> लुकाउनुहोस् ();
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-> सेट सक्षम (false);
ui-> pushButton-> setText ("खोजी");
जडान गर्नुहोस्
यो,[=](बोल ठीक छ){
ui-> pushButton-> setEnabled(true);
ui-> pushButton-> setText ("जडित ब्लुटुथ पत्ता लगाउन सुरु गर्नुहोस्");
यदि (ठीक == गलत) {
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::जानकारी(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::जानकारी(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