【Open Source】 DWIN екран и телефон с Android Двупосочна връзка Управление на възпроизвеждане на музика

– От форума за разработчици на DWIN

Този проблем за вас, за да прокарате наградения случай с отворен код на форума за разработчици на DWIN – екран на DWIN и двупосочна връзка на телефон с Android контролират възпроизвеждането на музика. Инженерите чрез Bluetooth модула за постигане на DWIN интелигентен екран и взаимодействие с данни на телефон с Android, потребителите могат лесно да контролират телефона с Android, USB флаш устройство при възпроизвеждане на песента, пауза, промяна на настройките на песента и звука, изживяване на интелигентен екран и телефон с Android две- начин на удобно управление.

1.C51 Дизайн
(1) Серийният порт T5L взаимодейства с Bluetooth модула, за да промени състоянието на възпроизвеждане, да зададе силата на звука и да прочете състоянието на Bluetooth, част от референтния код е както следва:
int main(void)
{
INIT_CPU();
T2_Heat();
UART4_Init();
EA=1;
//UART4_SendStr(“здравей”,sizeof(“здравей”));
//WDT_ON();//Включете Watchdog.
докато (1)
{
//WDT_RST();//Покрачете кучето
Процес();
}
}
void UART4_Init(void)
{
// 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)
{
ако (!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;
превключвател (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;
превключвател (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)Софтуерният пакет за Android е написан чрез QT, като основно реализира Bluetooth връзка и контрол на комуникацията със смарт екрана, част от референтния код е както следва:
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->hide();
devicecommHandle=нов DeviceComm();
devicecommHandle->set_ble_Tool(bluetooth_ble_Tool);
devicecommHandle->InitDevice();
mwin=нов mainwin();
по-малко->скрий();
свързване (mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// Издадена е промяна в режима на запис
свързване (mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// осветено. запишете горната и долната част на песен
свързване (mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// Записване на промяната на звука надолу
свързване (devicecommHandle,&DeviceComm::ReadPlayMode,
this,[=](int mode){// Задаване на текущия режим
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,
this,[=](int vol){// Настройка на дисплея за сила на звука
mwin->QS_MainVol->setValue(vol);
});
свързване (bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
това,[=](){
това->покажи();
по-малко->скрий();
devicecommHandle->TimerStopReadDeviceST();
това->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(“Търсене “);
свържете (bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicefinished,
това,[=](bool ok){
ui->pushButton->setEnabled(true);
ui->pushButton->setText(“Стартиране на откриване на свързан Bluetooth “);
if(ok==false) {
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::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(“подкана за връзка “),”бъги”);
ui->label_tips->setText(“buggy”);}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr(“успешно свързан “),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(“успешно свързан“);
това->скрий();
mwin->покажи();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->show();
//прекъсване на връзката(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//това,&BLE_PairPage::BlueSearchConnectState); }
иначе{
ui->label_tips->setText(“Търсене на връзки “); }


Време на публикуване: 23 май 2024 г