【קוד פתוח】 מסך DWIN וטלפון אנדרואיד בקרת קישור דו-כיוונית השמעת מוזיקה

-מפורום המפתחים של DWIN

נושא זה בשבילך לדחוף את מקרה הקוד הפתוח עטור הפרסים של פורום המפתחים של DWIN - מסך DWIN וטלפון אנדרואיד בקרת קישור דו-כיוונית בהפעלת מוזיקה. מהנדסים באמצעות מודול ה-Bluetooth כדי להשיג את המסך החכם DWIN ואינטראקציה עם נתונים בטלפון אנדרואיד, משתמשים יכולים לשלוט בקלות בטלפון אנדרואיד, כונן הבזק מסוג USB בהפעלת השיר, להשהות, לשנות את הגדרות השיר והקול, לחוות מסך אינטליגנטי וטלפון אנדרואיד שני- שליטה נוחה בדרך.

1.C51 עיצוב
(1) היציאה הטורית T5L מקיימת אינטראקציה עם מודול ה-Bluetooth כדי לשנות את מצב ההשמעה, להגדיר את עוצמת הקול ולקרוא את מצב ה-Bluetooth, חלק מקוד ההתייחסות הוא כדלקמן:
int main(void)
{
INIT_CPU();
T2_Heat();
UART4_Init();
EA=1;
//UART4_SendStr(“hello”,sizeof(“hello”));
//WDT_ON();//הפעל את כלב השמירה.
בעוד (1)
{
//WDT_RST();// רגלי הכלב
תהליך();
}
}
void UART4_Init(void)
{
// הגדרת קצב ה-Bud 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;
}
void TenMsHandle(void)
{
if(!TenmsFlag)
לַחֲזוֹר;
TenmsFlag=0;
SourcePress();// מחולל צלילים
PlayCtrPress();//שינוי מצב השמעה
VolCtrSlider();//שינוי עוצמת הקול
VolLogSlider();//שינוי עוצמת הקול
ReadBtState();//קרא סטטוס Bluetooth
}
void SourcePress(void)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
if(TouchKey[1]==0)
לַחֲזוֹר;
Sdata[1]=0;
switch(TouchKey[1])
{
case1://דיסק U
Sdata[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
לשבור;
case2:// קלט LineIn חיצוני
Sdata[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
לשבור;
case3://Bluetooth
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;
}
void PlayCtrPress(void)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3001,TouchKey,1);
if(TouchKey[1]==0)
לַחֲזוֹר;
Sdata[1]=0;
switch(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=חדש Bluetooth_ble_Tool(“dwin_bt(BLE)”);
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
connect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
זה,&BLE_PairPage::BlueSearchConnectState);
//btchat=new BtChat();
//btchat->set_ble_Tool(bluetooth_ble_Tool);
//btchat->init_Page();
//btchat->hide();
devicecommHandle=new DeviceComm();
devicecommHandle->set_ble_Tool(bluetooth_ble_Tool);
devicecommHandle->InitDevice();
mwin=new mainwin();
less->hide();
connect(mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// הוצא שינוי במצב כתיבה
connect(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// מואר. רשום את החלק העליון והתחתון של שיר
connect(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// כתוב שינוי עוצמת הקול
connect(devicecommHandle,&DeviceComm::ReadPlayMode,
זה,[=](int mode){// הגדרת המצב הנוכחי
qDebug() qDebug() B_Upan->setChecked(false);
mwin->B_AUX->setChecked(false);
mwin->B_BT->setChecked(false);
if(mode==1)
mwin->B_Upan->setChecked(true);
else if(mode==2)
mwin->B_AUX->setChecked(true);
else if(mode==3)
mwin->B_BT->setChecked(true);
});
connect(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
זה,[=](int vol){// הגדרת תצוגת עוצמת הקול
mwin->QS_MainVol->setValue(vol);
});
connect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
זה,[=](){
this->show();
less->hide();
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->setEnabled(false);
ui->pushButton->setText("מחפש ");
connect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicefinished,
זה,[=](בול בסדר){
ui->pushButton->setEnabled(true);
ui->pushButton->setText("התחל לזהות Bluetooth מחובר ");
if(OK==false) {
QMessageBox::information(this,tr(“Search Status “),” לא ניתן לחפש את המכשיר, אנא בדוק אם המכשיר כבר מופעל, או אם כבר מחובר אליו טלפון סלולרי אחר?”);} }); }
void BLE_PairPage::BlueSearchConnectState(Bluetooth_ble_Tool::startStateprogressBar_em Linkst, int progress){
ui->progressBar->setValue(התקדמות);
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->label_tips->setText("בuggy ");}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr(“התחברה בהצלחה “),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText("התחברה בהצלחה ");
this->hide();
mwin->show();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->show();
//disconnect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//this,&BLE_PairPage::BlueSearchConnectState); }
אַחֵר{
ui->label_tips->setText("מחפש חיבורים"); }


זמן פרסום: 23 במאי 2024