【ਓਪਨ ਸੋਰਸ】 ਡਵਿਨ ਸਕਰੀਨ ਅਤੇ ਐਂਡਰੌਇਡ ਫ਼ੋਨ ਦੋ-ਪੱਖੀ ਲਿੰਕੇਜ ਕੰਟਰੋਲ ਸੰਗੀਤ ਪਲੇਬੈਕ

-DWIN ਡਿਵੈਲਪਰ ਫੋਰਮ ਤੋਂ

ਇਹ ਮੁੱਦਾ ਤੁਹਾਡੇ ਲਈ DWIN ਡਿਵੈਲਪਰ ਫੋਰਮ - DWIN ਸਕ੍ਰੀਨ ਅਤੇ ਐਂਡਰੌਇਡ ਫੋਨ ਦੇ ਦੋ-ਪੱਖੀ ਲਿੰਕੇਜ ਨਿਯੰਤਰਣ ਸੰਗੀਤ ਪਲੇਬੈਕ ਦੇ ਪੁਰਸਕਾਰ ਜੇਤੂ ਓਪਨ-ਸੋਰਸ ਕੇਸ ਨੂੰ ਅੱਗੇ ਵਧਾਉਣ ਲਈ ਹੈ। ਡੀਡਵਿਨ ਇੰਟੈਲੀਜੈਂਟ ਸਕਰੀਨ ਅਤੇ ਐਂਡਰੌਇਡ ਫੋਨ ਡੇਟਾ ਇੰਟਰਐਕਸ਼ਨ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਬਲੂਟੁੱਥ ਮੋਡੀਊਲ ਰਾਹੀਂ ਇੰਜੀਨੀਅਰ, ਉਪਭੋਗਤਾ ਆਸਾਨੀ ਨਾਲ ਐਂਡਰੌਇਡ ਫੋਨ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰ ਸਕਦੇ ਹਨ, ਗਾਣੇ ਦੇ ਪਲੇਅ ਵਿੱਚ USB ਫਲੈਸ਼ ਡਰਾਈਵ, ਵਿਰਾਮ, ਗੀਤ ਅਤੇ ਆਵਾਜ਼ ਸੈਟਿੰਗਾਂ ਨੂੰ ਬਦਲ ਸਕਦੇ ਹਨ, ਇੰਟੈਲੀਜੈਂਟ ਸਕ੍ਰੀਨ ਅਤੇ ਐਂਡਰੌਇਡ ਫੋਨ ਦਾ ਅਨੁਭਵ ਦੋ- ਤਰੀਕੇ ਨਾਲ ਸੁਵਿਧਾਜਨਕ ਕੰਟਰੋਲ.

1.C51 ਡਿਜ਼ਾਈਨ
(1) T5L ਸੀਰੀਅਲ ਪੋਰਟ ਬਲੂਟੁੱਥ ਮੋਡੀਊਲ ਨਾਲ ਪਲੇਬੈਕ ਸਥਿਤੀ ਨੂੰ ਸੋਧਣ, ਵਾਲੀਅਮ ਸੈਟ ਕਰਨ ਅਤੇ ਬਲੂਟੁੱਥ ਸਥਿਤੀ ਨੂੰ ਪੜ੍ਹਨ ਲਈ ਇੰਟਰੈਕਟ ਕਰਦਾ ਹੈ, ਹਵਾਲਾ ਕੋਡ ਦਾ ਹਿੱਸਾ ਹੇਠਾਂ ਦਿੱਤਾ ਗਿਆ ਹੈ:
int ਮੁੱਖ (ਅਕਾਰਥ)
{
INIT_CPU();
T2_ਹੀਟ();
UART4_Init();
EA=1;
//UART4_SendStr("ਹੈਲੋ", ਆਕਾਰ ਦਾ ("ਹੈਲੋ"));
//WDT_ON();//ਵਾਚਡੌਗ ਨੂੰ ਚਾਲੂ ਕਰੋ।
ਜਦਕਿ (1)
{
//WDT_RST();// ਕੁੱਤੇ ਨੂੰ ਪੈਰ ਦਿਓ
ਪ੍ਰਕਿਰਿਆ ();
}
}
void 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 ਬੌਡ ਦਰ
//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;
SourcePress();//ਟੋਨ ਜਨਰੇਟਰ
PlayCtrPress();//ਪਲੇਬੈਕ ਸਥਿਤੀ ਤਬਦੀਲੀ
VolCtrSlider();//ਵਾਲੀਅਮ ਤਬਦੀਲੀ
VolLogSlider();//ਵਾਲੀਅਮ ਤਬਦੀਲੀ
ReadBtState();//ਬਲੂਟੁੱਥ ਸਥਿਤੀ ਪੜ੍ਹੋ
}
ਵੋਇਡ ਸੋਰਸਪ੍ਰੈਸ (ਅਰਥ)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
if(TouchKey[1]==0)
ਵਾਪਸੀ;
Sdata[1]=0;
ਸਵਿੱਚ(TouchKey[1])
{
ਕੇਸ1://U ਡਿਸਕ
Sdata[0]=1;
SendDataToBT(ਰਾਈਟ_ਰਨ_ਮੋਡ,Sdata,1);
ਤੋੜਨਾ;
ਕੇਸ2:// ਬਾਹਰੀ ਲਾਈਨਇਨ ਇਨਪੁਟ
Sdata[0]=2;
SendDataToBT(ਰਾਈਟ_ਰਨ_ਮੋਡ,Sdata,1);
ਤੋੜਨਾ;
ਕੇਸ3://ਬਲਿਊਟੁੱਥ
Sdata[0]=3;
SendDataToBT(ਰਾਈਟ_ਰਨ_ਮੋਡ,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);
if(TouchKey[1]==0)
ਵਾਪਸੀ;
Sdata[1]=0;
ਸਵਿੱਚ(TouchKey[1])
{
ਕੇਸ1:// ਪਿਛਲਾ ਗੀਤ
Sdata[0]=1;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
ਤੋੜਨਾ;
case2:// ਪਲੇਬੈਕ ਵਿਰਾਮ
Sdata[0]=2;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
ਤੋੜਨਾ;
ਕੇਸ3: ਅਗਲਾ ਗੀਤ
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);// ਲਿਖਣ ਮੋਡ ਤਬਦੀਲੀ ਜਾਰੀ ਕੀਤੀ ਗਈ
connect(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// ਲਿਟ। ਗੀਤ ਦੇ ਉਪਰਲੇ ਅਤੇ ਹੇਠਲੇ ਹਿੱਸੇ ਲਿਖੋ
ਕਨੈਕਟ ਕਰੋ(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// ਵਾਲੀਅਮ ਤਬਦੀਲੀ ਲਿਖੋ
ਕਨੈਕਟ ਕਰੋ(ਡਿਵਾਈਸਕਾਮਹੈਂਡਲ,&ਡਿਵਾਈਸਕਾਮ::ਰੀਡਪਲੇਅਮੋਡ,
ਇਹ,[=](ਇੰਟ ਮੋਡ){// ਮੌਜੂਦਾ ਮੋਡ ਸੈੱਟ ਕਰਨਾ
qDebug() qDebug() B_Upan->ਸੈੱਟਚੈੱਕਡ(ਗਲਤ);
mwin->B_AUX->ਸੈੱਟਚੈੱਕ ਕੀਤਾ (ਗਲਤ);
mwin->B_BT->ਸੈੱਟਚੈੱਕ ਕੀਤਾ (ਗਲਤ);
ਜੇਕਰ(ਮੋਡ==1)
mwin->B_Upan->ਸੈੱਟਚੈੱਕ ਕੀਤਾ (ਸੱਚਾ);
ਹੋਰ ਜੇ(ਮੋਡ==2)
mwin->B_AUX->ਸੈੱਟਚੈੱਕ ਕੀਤਾ (ਸੱਚਾ);
ਹੋਰ ਜੇ(ਮੋਡ==3)
mwin->B_BT->ਸੈੱਟਚੈੱਕ ਕੀਤਾ (ਸੱਚਾ);
});
ਕਨੈਕਟ(ਡਿਵਾਈਸਕਾਮਹੈਂਡਲ,&ਡਿਵਾਈਸਕਾਮ::ਰੀਡਪਲੇਮਿਊਜ਼ਿਕਵੋਲ,
ਇਹ,[=](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-> pushButton-> setEnabled(true);
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->ਲੇਬਲ_ਟਿਪਸ->ਸੈੱਟ ਟੈਕਸਟ("ਬੱਗੀ");}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr("ਸਫਲਤਾ ਨਾਲ ਜੁੜਿਆ"), bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText("ਸਫਲਤਾਪੂਰਵਕ ਜੁੜਿਆ");
this-> ਓਹਲੇ();
mwin->ਸ਼ੋ();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->ਸ਼ੋ();
// ਡਿਸਕਨੈਕਟ ਕਰੋ(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//ਇਹ,&BLE_PairPage::BlueSearchConnectState); }
ਹੋਰ{
ui->label_tips->setText("ਕੁਨੈਕਸ਼ਨਾਂ ਲਈ ਖੋਜ"); }


ਪੋਸਟ ਟਾਈਮ: ਮਈ-23-2024