【עפֿן מקור】 DWIN סקרין און אַנדרויד טעלעפאָן צוויי-וועג לינגקאַדזש קאָנטראָל מוזיק פּלייבאַק

- פֿון DWIN דעוועלאָפּער פאָרום

דעם אַרויסגעבן פֿאַר איר צו שטופּן די אַוואָרד-ווינינג אָפֿן-מקור פאַל פון DWIN דעוועלאָפּער פאָרום - DWIN פאַרשטעלן און אַנדרויד טעלעפאָן צוויי-וועג לינגקאַדזש קאָנטראָל מוזיק פּלייבאַק. ענדזשאַנירז דורך די בלועטאָאָטה מאָדולע צו דערגרייכן די DWIN ינטעליגענט פאַרשטעלן און אַנדרויד טעלעפאָן דאַטן ינטעראַקשאַן, ניצערס קענען לייכט קאָנטראָלירן די אַנדרויד טעלעפאָן, וסב בליץ פאָר אין די ליד שפּיל, פּויזע, טוישן די ליד און געזונט סעטטינגס, דערפאַרונג ינטעליגענט פאַרשטעלן און אַנדרויד טעלעפאָן צוויי- וועג באַקוועם קאָנטראָל.

1.C51 פּלאַן
(1) די T5L סיריאַל פּאָרט ינטעראַקץ מיט די בלועטאָאָטה מאָדולע צו מאָדיפיצירן די פּלייבאַק סטאַטוס, שטעלן דעם באַנד און לייענען די בלועטאָאָטה סטאַטוס, טייל פון די רעפֿערענץ קאָד איז ווי גייט:
int main (פּאָסל)
{
INIT_CPU();
ט2_העאַט ();
UART4_Init();
עאַ=1;
// UART4_SendStr ("העלא", גרייס פון ("העלא"));
//WDT_ON();// קער אויף די וואַטשדאָג.
בשעת (1)
{
//WDT_RST();// פֿיס די הונט
פּראָצעס ();
}
}
void 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;
//עס3ט=1;
עס2ר=1;
עאַ=1;
}
void TenMsHandle (void)
{
אויב (! TenmsFlag)
צוריקקומען;
TenmsFlag=0;
SourcePress();// טאָן גענעראַטאָר
PlayCtrPress ();// פּלייבאַק שטאַט טוישן
VolCtrSlider ();// באַנד טוישן
VolLogSlider ();// באַנד טוישן
ReadBtState();// לייענען בלועטאָאָטה סטאַטוס
}
פּאָסל SourcePress (פּאָסל)
{
charTouchKey[2]={0,0};
ו8סדאַטאַ[2];
read_dgusii_vp (0 × 3000, טאָוטשקיי, 1);
אויב (טאַטשקיי[1]==0)
צוריקקומען;
Sdata[1]=0;
באַשטימען (טאַטשקיי [1])
{
פאַל 1: // ו דיסק
Sdata[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
ברעכן;
פאַל 2: // פונדרויסנדיק שורה אין אַרייַנשרייַב
Sdata[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
ברעכן;
פאַל 3: // בלועטאָאָטה
Sdata[0]=3;
SendDataToBT(Write_Run_Mode,Sdata,1);
ברעכן;
}
write_dgusii_vp (0 × 3003, טאָוטשקיי, 1);
מעמסעט (טאָוטשקיי, 0, גרייס פון (טאַטשקיי));
write_dgusii_vp (0 × 3000, טאָוטשקיי, 1);
ReadBtStatecount=0;
}
פּאָסל פּלייַקטרפּרעסס (פּאָסל)
{
charTouchKey[2]={0,0};
ו8סדאַטאַ[2];
read_dgusii_vp (0 × 3001, טאָוטשקיי, 1);
אויב (טאַטשקיי[1]==0)
צוריקקומען;
Sdata[1]=0;
באַשטימען (טאַטשקיי [1])
{
פאַל 1: // פרייַערדיק ליד
סדאַטאַ[0]=1;
סענדדאַטאַטאָבט (שרייב_נעקסט_פּרע_פּט, סדאַטאַ, 1);
ברעכן;
פאַל 2: // פּלייַבאַקק פּויזע
Sdata[0]=2;
סענדדאַטאַטאָבט (שרייב_נעקסט_פּרע_פּט, סדאַטאַ, 1);
ברעכן;
case3:// ווייַטער ליד
Sdata[0]=3;
סענדדאַטאַטאָבט (שרייב_נעקסט_פּרע_פּט, סדאַטאַ, 1);
ברעכן;
}
מעמסעט (טאָוטשקיי, 0, גרייס פון (טאַטשקיי));
write_dgusii_vp (0 × 3001, טאָוטשקיי, 1);
ReadBtStatecount=0;
}

(2) די אַנדרויד ווייכווארג פּעקל איז געשריבן דורך QT, דער הויפּט ריאַלייזינג בלועטאָאָטה פֿאַרבינדונג און קאָמוניקאַציע קאָנטראָל מיט די קלוג פאַרשטעלן, טייל פון די רעפֿערענץ קאָד איז ווי גייט:
ui-> setupUi (דעם);
bluetooth_ble_Tool = נייַ בלועטאָאָטה_בלע_טול ("דווין_בט (BLE)");
ui->label_localBT_Name->setText(בלועטאָאָטה_בלע_מכשיר->געטלאָקאַלנאַמע());
קאָננעקט (בלועטאָאָטה_בלע_טול, & בלועטאָאָטה_בלע_טול :: בלוסעאַרטש קאָננעקטסטאַטע,
דעם,&BLE_PairPage::BlueSearchConnectState);
// בטטשאַט = נייַ בטטשאַט ();
//בטטשאַט->סעט_בלע_טול(בלועטאָאָטה_בלע_טול);
// בטטשאַט->יניט_פּאַגע ();
// בטטשאַט-> באַהאַלטן ();
devicecommHandle = נייַ DeviceComm ();
devicecommHandle->set_ble_Tool(בלועטאָאָטה_בלע_טול);
devicecommHandle-> InitDevice();
מווין = נייַ הויפּטווין ();
ווייניקער-> באַהאַלטן ();
קאָננעקט (mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// שרייב מאָדע ענדערונג ארויס
קאָננעקט (mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// ליט. שרייב אַראָפּ די אויבערשטער און נידעריקער טייל פון אַ ליד
קאָננעקט (mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// שרייַבן באַנד טוישן אַראָפּ
connect (devicecommHandle,&DeviceComm :: ReadPlayMode,
דעם, [=](ינט מאָדע){// באַשטעטיקן דעם קראַנט מאָדע
qDebug() qDebug() ב_ופּאַן->סעטטשעקקעד (פאַלש);
mwin-> B_AUX-> setChecked (פאַלש);
mwin-> ב_בט-> סעטטשעקקעד (פאַלש);
אויב (מאָדע==1)
mwin-> B_Upan-> setChecked (אמת);
אַנדערש אויב (מאָדע ==2)
mwin-> B_AUX-> setChecked (אמת);
אַנדערש אויב (מאָדע == 3)
mwin-> B_BT-> setChecked (אמת);
});
connect(devicecommHandle,&DeviceComm ::ReadPlayMusicVol,
דעם, [=](ינט vol){// באַשטעטיקן דעם באַנד ווייַז
mwin->QS_MainVol->setValue(vol);
});
קאָננעקט (בלועטאָאָטה_בלע_טול, & בלועטאָאָטה_בלע_טול :: BLE_Link_error,
דעם,[=](){
דעם-> ווייַזן ();
ווייניקער-> באַהאַלטן ();
devicecommHandle-> TimerStopReadDeviceST();
this->ui->progressBar->setValue(0);
});
void BLE_PairPage::on_pushButton_clicked(){
bluetooth_ble_Tool-> SetOperUuidServer(QBluetoothUuid(ServiceUuid));
//וי->label_localBT->קלאָר ();
//וי->label_localBT_Name->setText(בלועטאָאָטה_בלע_טול->געטלאָקאַלנאַמע());
bluetooth_ble_Tool->startFindConnectBle();
// בלועטאָאָטה_בלע_טול->סטאַרטסטעאַטעפּראָגרעסבאַר ();
ui-> פּושButton-> setEnabled (פאַלש);
ui->pushButton->setText ("זוכן");
קאָננעקט (בלועטאָאָטה_בלע_געצייג, & בלועטאָאָטה_בלע_געצייג :: BlueBLE_FindDevicefinished,
דעם,[=](בול גוט){
ui-> פּושButton-> setEnabled (אמת);
ui->pushButton->setText ("אָנהייב דיטעקטינג פארבונדן בלועטאָאָטה");
אויב (גוט == פאַלש) {
QMessageBox:: information(this,tr(“זוכן סטאַטוס “), די מיטל קענען ניט זיין געזוכט, ביטע טשעק אויב די מיטל איז שוין אויסגעדרייט אויף, אָדער אויב אן אנדער מאָביל טעלעפאָן איז שוין קאָננעקטעד צו עס?”);} }); }
void BLE_PairPage::BlueSearchConnectState(Bluetooth_ble_Tool::startStateprogressBar_em Linkst, int progress){
ui->progressBar->setValue(פּראָגרעס);
if(Linkst>=Bluetooth_ble_Tool::Ble_OtherError){
QMessageBox :: אינפֿאָרמאַציע (דעם, טר (“פאַרבינדונג פּינטלעך “), בלועטאָאָטה_בלע_טול-> באַקומען ערראָרינפאָ());
ui->label_tips->setText(בלועטאָאָטה_בלע_טול->getErrorinfo());}
else if (Linkst>=Bluetooth_ble_Tool::Ble_Deconnect_Device){
QMessageBox :: אינפֿאָרמאַציע (דעם, טר ("פֿאַרבינדונג פּינטלעך")," וואָגן ");
ui->label_tips->setText ("באַגי ");}
else if (Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr(“סוקסעספוללי קאָננעקטעד“), בלועטאָאָטה_בלע_טול->געטערראָינפאָ());
ui->label_tips->setText ("סוקסעספוללי פארבונדן");
דעם-> באַהאַלטן ();
מווין-> ווייַזן ();
devicecommHandle-> TimerStartReadDeviceST (100);
// בטטשאַט-> ווייַזן ();
// דיסקאַנעקט (בלועטאָאָטה_בלע_טול, & בלועטאָאָטה_בלע_מכשיר :: בלוסעאַרטש קאָננעקטסטאַטע,
//דעם,&BLE_PairPage::BlueSearchConnectState); }
אנדערש{
ui->label_tips->setText ("זוכן פֿאַר קאַנעקשאַנז"); }


פּאָסטן צייט: מאי 23-2024