【ఓపెన్ సోర్స్】 DWIN స్క్రీన్ మరియు ఆండ్రాయిడ్ ఫోన్ టూ-వే లింకేజ్ కంట్రోల్ మ్యూజిక్ ప్లేబ్యాక్

-DWIN డెవలపర్ ఫోరమ్ నుండి

DWIN డెవలపర్ ఫోరమ్ - DWIN స్క్రీన్ మరియు Android ఫోన్ టూ-వే లింకేజ్ కంట్రోల్ మ్యూజిక్ ప్లేబ్యాక్ యొక్క అవార్డ్-విజేత ఓపెన్-సోర్స్ కేస్‌ను పుష్ చేయడానికి మీ కోసం ఈ సమస్య. DWIN ఇంటెలిజెంట్ స్క్రీన్ మరియు ఆండ్రాయిడ్ ఫోన్ డేటా ఇంటరాక్షన్‌ను సాధించడానికి బ్లూటూత్ మాడ్యూల్ ద్వారా ఇంజనీర్లు, వినియోగదారులు ఆండ్రాయిడ్ ఫోన్, USB ఫ్లాష్ డ్రైవ్‌ను సాంగ్ ప్లేలో సులభంగా నియంత్రించవచ్చు, పాజ్ చేయవచ్చు, పాట మరియు సౌండ్ సెట్టింగ్‌లను మార్చవచ్చు, ఇంటెలిజెంట్ స్క్రీన్ మరియు ఆండ్రాయిడ్ ఫోన్ రెండు- మార్గం అనుకూలమైన నియంత్రణ.

1.C51 డిజైన్
(1) ప్లేబ్యాక్ స్థితిని సవరించడానికి, వాల్యూమ్‌ను సెట్ చేయడానికి మరియు బ్లూటూత్ స్థితిని చదవడానికి T5L సీరియల్ పోర్ట్ బ్లూటూత్ మాడ్యూల్‌తో సంకర్షణ చెందుతుంది, సూచన కోడ్‌లో కొంత భాగం క్రింది విధంగా ఉంటుంది:
పూర్ణాంక ప్రధాన (శూన్యం)
{
INIT_CPU();
T2_Heat();
UART4_Init();
EA=1;
//UART4_SendStr("హలో",సైజుఆఫ్("హలో"));
//WDT_ON();// వాచ్‌డాగ్‌ని ఆన్ చేయండి.
అయితే (1)
{
//WDT_RST();// కుక్క పాదాలు
ప్రక్రియ ();
}
}
శూన్యం UART4_Init(శూన్యం)
{
// 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 బాడ్ రేటు
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
EA=1;
}
శూన్యం TenMsHandle (శూన్యం)
{
if(!TenmsFlag)
తిరిగి;
TenmsFlag=0;
SourcePress();//టోన్ జనరేటర్
PlayCtrPress();// ప్లేబ్యాక్ స్థితి మార్పు
VolCtrSlider();//వాల్యూమ్ మార్పు
VolLogSlider();//వాల్యూమ్ మార్పు
ReadBtState();//బ్లూటూత్ స్థితిని చదవండి
}
శూన్యం SourcePress (శూన్యం)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
ఒకవేళ(టచ్‌కీ[1]==0)
తిరిగి;
Sdata[1]=0;
స్విచ్ (టచ్‌కీ[1])
{
కేసు1://U డిస్క్
Sdata[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
బ్రేక్;
case2:// బాహ్య లైన్‌ఇన్ ఇన్‌పుట్
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);
మెమ్‌సెట్(టచ్‌కీ,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)
తిరిగి;
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);
బ్రేక్;
}
మెమ్‌సెట్(టచ్‌కీ,0,సైజ్ఆఫ్(టచ్‌కీ));
write_dgusii_vp(0×3001,TouchKey,1);
ReadBtStatecount=0;
}

(2) Android సాఫ్ట్‌వేర్ ప్యాకేజీ QT ద్వారా వ్రాయబడింది, ప్రధానంగా బ్లూటూత్ కనెక్షన్ మరియు స్మార్ట్ స్క్రీన్‌తో కమ్యూనికేషన్ నియంత్రణను గ్రహించడం, రిఫరెన్స్ కోడ్‌లో భాగం క్రింది విధంగా ఉంటుంది:
ui-> setupUi(ఇది);
bluetooth_ble_Tool=కొత్త 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=కొత్త DeviceComm();
devicecommHandle->set_ble_Tool(bluetooth_ble_Tool);
devicecommHandle->InitDevice();
mwin=కొత్త మెయిన్‌విన్();
తక్కువ->దాచు();
కనెక్ట్ (mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// రైట్ మోడ్ మార్పు జారీ చేయబడింది
కనెక్ట్ (mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// lit. పాట యొక్క ఎగువ మరియు దిగువ భాగాలను వ్రాయండి
కనెక్ట్(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// వాల్యూమ్ మార్పును వ్రాయండి
కనెక్ట్ చేయండి(devicecommHandle,&DeviceComm::ReadPlayMode,
ఇది,[=](ఇంట్ మోడ్){// ప్రస్తుత మోడ్‌ను సెట్ చేస్తోంది
qDebug() qDebug() B_Upan->setChecked(false);
mwin->B_AUX->setChecked(false);
mwin->B_BT->setChecked(false);
ఉంటే(మోడ్==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);
});
కనెక్ట్ చేయండి(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
ఇది,[=](){
ఈ->షో();
తక్కువ->దాచు();
devicecommHandle->TimerStopReadDeviceST();
this->ui->progressBar->setValue(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());
bluetooth_ble_Tool->startFindConnectBle();
//bluetooth_ble_Tool->startStateprogressBar();
ui-> pushButton-> setEnabled (false);
ui->pushButton->setText(“శోధన”);
కనెక్ట్ చేయండి(బ్లూటూత్_బుల్_టూల్,&బ్లూటూత్_బుల్_టూల్::BlueBLE_FindDevicefinished,
ఇది,[=](బూల్ సరే){
ui->pushButton->setEnabled(true);
ui->pushButton->setText(“కనెక్ట్ చేయబడిన బ్లూటూత్‌ని గుర్తించడం ప్రారంభించండి”);
అయితే (సరే==తప్పు) {
QMessageBox::information(ఇది,tr(“శోధన స్థితి “),” పరికరాన్ని శోధించడం సాధ్యం కాదు, దయచేసి పరికరం ఇప్పటికే ఆన్ చేయబడి ఉందో లేదో తనిఖీ చేయండి లేదా మరొక సెల్ ఫోన్ ఇప్పటికే దానికి కనెక్ట్ చేయబడి ఉందా?”);} }); }
శూన్యం BLE_PairPage ::BlueSearchConnectState(Bluetooth_ble_Tool ::startStateprogressBar_em Linkst, int పురోగతి){
ui->progressBar->setValue(పురోగతి);
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(
this,tr(“విజయవంతంగా కనెక్ట్ చేయబడింది”),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText("విజయవంతంగా కనెక్ట్ చేయబడింది");
ఇది->దాచు();
mwin->షో();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->షో();
// disconnect(bluetooth_ble_Tool,&Bluetooth_ble_Tool ::BlueSearchConnectState,
//ఇది,&BLE_PairPage::BlueSearchConnectState); }
లేకపోతే{
ui->label_tips->setText(“కనెక్షన్ల కోసం శోధిస్తోంది”); }


పోస్ట్ సమయం: మే-23-2024