【ഓപ്പൺ സോഴ്‌സ്】 DWIN സ്‌ക്രീനും ആൻഡ്രോയിഡ് ഫോണും ടു-വേ ലിങ്കേജ് കൺട്രോൾ മ്യൂസിക് പ്ലേബാക്ക്

-DWIN ഡവലപ്പർ ഫോറത്തിൽ നിന്ന്

DWIN ഡെവലപ്പർ ഫോറത്തിൻ്റെ അവാർഡ് നേടിയ ഓപ്പൺ സോഴ്‌സ് കേസ് - DWIN സ്‌ക്രീനും Android ഫോണും ടൂ-വേ ലിങ്കേജ് കൺട്രോൾ മ്യൂസിക് പ്ലേബാക്കിനെ മുന്നോട്ട് കൊണ്ടുപോകുന്നതിനാണ് ഈ പ്രശ്നം. DWIN ഇൻ്റലിജൻ്റ് സ്‌ക്രീനും ആൻഡ്രോയിഡ് ഫോൺ ഡാറ്റാ ഇൻ്ററാക്ഷനും നേടാൻ ബ്ലൂടൂത്ത് മൊഡ്യൂൾ വഴിയുള്ള എഞ്ചിനീയർമാർക്ക്, ഉപയോക്താക്കൾക്ക് Android ഫോൺ, സോംഗ് പ്ലേയിലെ USB ഫ്ലാഷ് ഡ്രൈവ് എന്നിവ എളുപ്പത്തിൽ നിയന്ത്രിക്കാനാകും, താൽക്കാലികമായി നിർത്തുക, പാട്ടും ശബ്ദ ക്രമീകരണങ്ങളും മാറ്റുക, ഇൻ്റലിജൻ്റ് സ്‌ക്രീൻ അനുഭവിക്കുക, Android ഫോൺ രണ്ട്- സൗകര്യപ്രദമായ നിയന്ത്രണം.

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=സിപിയു മെയിൻസ് ഫ്രീക്വൻസി/(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(അസാധു)
{
എങ്കിൽ(!TenmsFlag)
മടങ്ങുക;
ടെംസ് ഫ്ലാഗ്=0;
SourcePress();//ടോൺ ജനറേറ്റർ
PlayCtrPress();//പ്ലേബാക്ക് അവസ്ഥ മാറ്റം
VolCtrSlider();//വോളിയം മാറ്റം
VolLogSlider();//വോളിയം മാറ്റം
ReadBtState();//ബ്ലൂടൂത്ത് സ്റ്റാറ്റസ് വായിക്കുക
}
ശൂന്യമായ സോഴ്സ്പ്രസ്സ്(അസാധു)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
if(TouchKey[1]==0)
മടങ്ങുക;
സ്ഡാറ്റ[1]=0;
സ്വിച്ച് (ടച്ച്കീ[1])
{
കേസ്1://U ഡിസ്ക്
സ്ഡാറ്റ[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
ബ്രേക്ക്;
കേസ്2: ബാഹ്യ ലൈൻ ഇൻപുട്ട്
സ്ഡാറ്റ[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
ബ്രേക്ക്;
കേസ്3://ബ്ലൂടൂത്ത്
സ്ഡാറ്റ[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);
if(TouchKey[1]==0)
മടങ്ങുക;
സ്ഡാറ്റ[1]=0;
സ്വിച്ച് (ടച്ച്കീ[1])
{
കേസ്1:// മുമ്പത്തെ ഗാനം
സ്ഡാറ്റ[0]=1;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
ബ്രേക്ക്;
കേസ്2:// പ്ലേബാക്ക് താൽക്കാലികമായി നിർത്തുക
സ്ഡാറ്റ[0]=2;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
ബ്രേക്ക്;
കേസ്3:// അടുത്ത പാട്ട്
സ്ഡാറ്റ[0]=3;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
ബ്രേക്ക്;
}
മെംസെറ്റ്(ടച്ച്കീ,0,സൈസ്ഓഫ്(ടച്ച്കീ));
write_dgusii_vp(0×3001,TouchKey,1);
ReadBtStatecount=0;
}

(2) ആൻഡ്രോയിഡ് സോഫ്‌റ്റ്‌വെയർ പാക്കേജ് ക്യുടി വഴിയാണ് എഴുതിയിരിക്കുന്നത്, പ്രധാനമായും ബ്ലൂടൂത്ത് കണക്ഷനും സ്മാർട്ട് സ്‌ക്രീനുമായുള്ള ആശയവിനിമയ നിയന്ത്രണവും മനസ്സിലാക്കി, റഫറൻസ് കോഡിൻ്റെ ഭാഗം ഇപ്രകാരമാണ്:
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);// ലിറ്റ്. ഒരു പാട്ടിൻ്റെ മുകളിലും താഴെയുമുള്ള ഭാഗങ്ങൾ എഴുതുക
ബന്ധിപ്പിക്കുക(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(“തിരയൽ”);
ബന്ധിപ്പിക്കുക(bluetooth_ble_Tool,&Bluetooth_ble_Tool ::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 ::വിവരങ്ങൾ (ഇത്,ടിആർ ("കണക്ഷൻ പ്രോംപ്റ്റ് "),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(bluetooth_ble_Tool->getErrorinfo());}
അല്ലെങ്കിൽ (ലിങ്ക്സ്റ്റ്>=Bluetooth_ble_Tool::Ble_Deconnect_device){
QMessageBox ::വിവരങ്ങൾ (ഇത്, ടിആർ ("കണക്ഷൻ പ്രോംപ്റ്റ് ")," ബഗ്ഗി ");
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