【Código aberto】 A pantalla DWIN e a conexión bidireccional do teléfono Android controlan a reprodución de música

–Do DWIN Developer Forum

Este problema para que impulse o caso de código aberto premiado do foro de desenvolvedores DWIN: a pantalla DWIN e a conexión bidireccional do teléfono Android controlan a reprodución de música. Enxeñeiros a través do módulo Bluetooth para lograr a pantalla intelixente DWIN e a interacción de datos do teléfono Android, os usuarios poden controlar facilmente o teléfono Android, a unidade flash USB na reprodución da canción, facer unha pausa, cambiar a configuración da canción e o son, experimentar a pantalla intelixente e o teléfono Android dous- xeito cómodo control.

1.C51 Deseño
(1) O porto serie T5L interactúa co módulo Bluetooth para modificar o estado de reprodución, configurar o volume e ler o estado de Bluetooth, parte do código de referencia é a seguinte:
int main(void)
{
INIT_CPU();
T2_Calor();
UART4_Init();
EA=1;
//UART4_SendStr(“ola”, sizeof(“ola”);
//WDT_ON();//Activa o Watchdog.
mentres (1)
{
//WDT_RST();//Pasa o can
Proceso();
}
}
void UART4_Init(void)
{
// Configuración da velocidade de transmisión UART4:
//BODE2_DIV_H=Frecuencia da rede da CPU/(8*Tasa de baudios) .
//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 Taxa de baudios
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
EA=1;
}
void TenMsHandle(void)
{
if(!TenmsFlag)
volver;
TenmsFlag=0;
SourcePress();//Xerador de tons
PlayCtrPress();//Cambio de estado da reprodución
VolCtrSlider();//Cambio de volume
VolLogSlider();//Cambio de volume
ReadBtState();// Ler o estado de Bluetooth
}
void SourcePress(void)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
if(Tecla táctil[1]==0)
volver;
Sdata[1]=0;
interruptor (Tecla táctil[1])
{
case1://U disco
Sdata[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
romper;
case2:// Entrada LineIn externa
Sdata[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
romper;
caso 3://Bluetooth
Sdata[0]=3;
SendDataToBT(Write_Run_Mode,Sdata,1);
romper;
}
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(Tecla táctil[1]==0)
volver;
Sdata[1]=0;
interruptor (Tecla táctil[1])
{
case1:// Canción anterior
Sdata[0]=1;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
romper;
case2:// Pausa de reprodución
Sdata[0]=2;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
romper;
case3:// Próxima canción
Sdata[0]=3;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
romper;
}
memset(TouchKey,0,sizeof(TouchKey));
write_dgusii_vp(0×3001,TouchKey,1);
ReadBtStatecount=0;
}

(2)O paquete de software de Android está escrito a través de QT, realizando principalmente a conexión Bluetooth e o control da comunicación coa pantalla intelixente, parte do código de referencia é a seguinte:
ui->setupUi(this);
bluetooth_ble_Tool=nova Bluetooth_ble_Tool(“dwin_bt(BLE)”);
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
conectar(Bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
isto,&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();
menos->ocultar();
conectar(mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// Cambio de modo de escritura emitido
conectar(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// lit. escribir as partes superior e inferior dunha canción
conectar(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// Escribe o cambio de volume
connect(devicecommHandle,&DeviceComm::ReadPlayMode,
isto,[=](modo int){// Configurando o modo actual
qDebug() qDebug() B_Upan->setChecked(falso);
mwin->B_AUX->setChecked(false);
mwin->B_BT->setChecked(false);
if(modo==1)
mwin->B_Upan->setChecked(true);
senón se (modo==2)
mwin->B_AUX->setChecked(true);
senón se (modo==3)
mwin->B_BT->setChecked(true);
});
connect(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
isto,[=](int vol){// Configurando a visualización do volume
mwin->QS_MainVol->setValue(vol);
});
conectar(Bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
isto,[=](){
isto->mostrar();
menos->ocultar();
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(falso);
ui->pushButton->setText(“Buscando”);
connect(Bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDeviceterminado,
isto,[=](bool ok){
ui->pushButton->setEnabled(true);
ui->pushButton->setText(“Comezar a detectar Bluetooth conectado”);
if(ok==false) {
QMessageBox::information(this,tr(“Estado da busca “),” Non se pode buscar o dispositivo, comprobe se o dispositivo xa está acendido ou se xa está conectado outro teléfono móbil a el?”);} }); }
void BLE_PairPage::BlueSearchConnectState(Bluetooth_ble_Tool::startStateprogressBar_em Linkst, int progreso){
ui->progressBar->setValue(progreso);
if(Linkst>=Bluetooth_ble_Tool::Ble_OtherError){
QMessageBox::information(this,tr(“indicación de conexión”),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(“indicación de conexión”),”buggy”);
ui->label_tips->setText(“buggy”);}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr(“conectado correctamente”),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(“conectado correctamente”);
isto-> ocultar();
mwin->mostrar();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->mostrar();
//desconectar(Bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//this,&BLE_PairPage::BlueSearchConnectState); }
outra cousa{
ui->label_tips->setText(“Buscando conexións”); }


Hora de publicación: 23-maio-2024