【Открытый исходный код】 Экран DWIN и двустороннее управление телефоном Android, управление воспроизведением музыки

– С форума разработчиков DWIN

В этом выпуске вы сможете продвинуть отмеченный наградами кейс с открытым исходным кодом на форуме разработчиков DWIN — экран DWIN и телефон Android с двусторонней связью управляют воспроизведением музыки. Инженеры с помощью модуля Bluetooth для достижения интеллектуального экрана DWIN и взаимодействия данных телефона Android, пользователи могут легко управлять телефоном Android, USB-накопителем во время воспроизведения песни, делать паузу, изменять настройки песни и звука, использовать интеллектуальный экран и телефон Android два- кстати удобное управление.

1.C51 Дизайн
(1) Последовательный порт T5L взаимодействует с модулем Bluetooth для изменения статуса воспроизведения, установки громкости и считывания статуса Bluetooth. Часть ссылочного кода выглядит следующим образом:
int main (недействительный)
{
ИНИТ_ЦП();
Т2_Тепло();
UART4_Init();
ЭА=1;
//UART4_SendStr("привет",sizeof("привет");
//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*ДЕЛ)
//BODE2_DIV_L=0×70;
//ES3T=1;
ЭС2Р=1;
ЭА=1;
}
недействительный TenMsHandle (недействительный)
{
если(!Тенмсфлаг)
возвращаться;
ТенмсФлаг=0;
SourcePress();//Генератор тонов
PlayCtrPress();//Изменение состояния воспроизведения
VolCtrSlider();//Изменение громкости
VolLogSlider();//Изменение громкости
ReadBtState();//Читаем статус Bluetooth
}
недействительный SourcePress (недействительный)
{
charTouchKey[2]={0,0};
u8Sданные[2];
read_dgusii_vp(0×3000,TouchKey,1);
если(TouchKey[1]==0)
возвращаться;
Сданные[1]=0;
переключатель (TouchKey[1])
{
case1://U-диск
Сданные[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
перерыв;
case2:// Внешний линейный вход
Сданные[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
перерыв;
чехол3://Bluetooth
Сданные[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;
}
недействительный PlayCtrPress (недействительный)
{
charTouchKey[2]={0,0};
u8Sданные[2];
read_dgusii_vp(0×3001,TouchKey,1);
если(TouchKey[1]==0)
возвращаться;
Сданные[1]=0;
переключатель (TouchKey[1])
{
case1:// Предыдущая песня
Сданные[0]=1;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
перерыв;
case2:// Пауза воспроизведения
Сданные[0]=2;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
перерыв;
case3:// Следующая песня
Сданные[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());
Connect(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);
устройствоcommHandle->InitDevice();
mwin=новый mainwin();
меньше->скрыть();
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,
this,[=](int mode){// Установка текущего режима
qDebug() qDebug() B_Upan->setChecked(false);
mwin->B_AUX->setChecked(false);
mwin->B_BT->setChecked(false);
если (режим == 1)
mwin->B_Upan->setChecked(истина);
иначе, если (режим == 2)
mwin->B_AUX->setChecked(истина);
иначе, если (режим == 3)
mwin->B_BT->setChecked(истина);
});
Connect(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("Поиск");
Connect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicefinished,
это,[=](bool ок){
ui->pushButton->setEnabled(истина);
ui->pushButton->setText("Начать обнаружение подключенного Bluetooth");
если (ок == ложь) {
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());}
иначе if(Linkst>=Bluetooth_ble_Tool::Ble_Deconnect_device){
QMessageBox::information(this,tr("подсказка о подключении"), buggy ");
ui->label_tips->setText("ошибка");}
иначе if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr("подключение успешно"),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText («подключение успешно»);
это->скрыть();
мвин->шоу();
devicecommHandle->TimerStartReadDeviceST (100);
//btchat->показать();
//отключение(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//это,&BLE_PairPage::BlueSearchConnectState); }
еще{
ui->label_tips->setText («Поиск соединений»); }


Время публикации: 23 мая 2024 г.