【Código aberto】 Tela DWIN e reprodução de música com controle de ligação bidirecional do telefone Android

–Do Fórum de Desenvolvedores DWIN

Este problema é para você promover o premiado caso de código aberto do fórum de desenvolvedores DWIN – tela DWIN e ligação bidirecional do telefone Android controlam a reprodução de música. Engenheiros através do módulo Bluetooth para obter a tela inteligente DWIN e a interação de dados do telefone Android, os usuários podem controlar facilmente o telefone Android, a unidade flash USB na reprodução da música, pausar, alterar as configurações de música e som, experimentar a tela inteligente e o telefone Android dois- maneira conveniente de controle.

1. Projeto C51
(1) A porta serial T5L interage com o módulo Bluetooth para modificar o status de reprodução, definir o volume e ler o status do Bluetooth. Parte do código de referência é o seguinte:
int principal(vazio)
{
INIT_CPU();
T2_Calor();
UART4_Init();
EA=1;
//UART4_SendStr(“olá”,sizeof(“olá”));
//WDT_ON();//Ativa o Watchdog.
enquanto(1)
{
//WDT_RST();//Pés do cachorro
Processo();
}
}
vazio UART4_Init(vazio)
{
// Configuração da taxa de transmissão UART4:
//BODE2_DIV_H=Frequência de rede da CPU/(8*Taxa de transmissão) .
//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 transmissão
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
EA=1;
}
vazio TenMsHandle(vazio)
{
if(!TenmsFlag)
retornar;
TenmsFlag=0;
SourcePress();//Gerador de tons
PlayCtrPress();//mudança de estado de reprodução
VolCtrSlider();//mudança de volume
VolLogSlider();//mudança de volume
ReadBtState(); //Lê o status do Bluetooth
}
vazio SourcePress(vazio)
{
charTouchKey[2]={0,0};
u8Sdados[2];
read_dgusii_vp(0×3000,TouchKey,1);
if(TouchKey[1]==0)
retornar;
Sdados[1]=0;
alternar (TouchKey[1])
{
case1://disco U
Sdados[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
quebrar;
case2: // Entrada LineIn externa
Sdados[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
quebrar;
case3://Bluetooth
Sdados[0]=3;
SendDataToBT(Write_Run_Mode,Sdata,1);
quebrar;
}
write_dgusii_vp(0×3003,TouchKey,1);
memset(TouchKey,0,sizeof(TouchKey));
write_dgusii_vp(0×3000,TouchKey,1);
ReadBtStatecount=0;
}
vazio PlayCtrPress(vazio)
{
charTouchKey[2]={0,0};
u8Sdados[2];
read_dgusii_vp(0×3001,TouchKey,1);
if(TouchKey[1]==0)
retornar;
Sdados[1]=0;
mudar(TouchKey[1])
{
case1:// Música anterior
Sdados[0]=1;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
quebrar;
case2: // Pausa na reprodução
Sdados[0]=2;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
quebrar;
case3:// Próxima música
Sdados[0]=3;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
quebrar;
}
memset(TouchKey,0,sizeof(TouchKey));
write_dgusii_vp(0×3001,TouchKey,1);
ReadBtStatecount=0;
}

(2)O pacote de software Android é escrito através do QT, principalmente realizando conexão Bluetooth e controle de comunicação com a tela inteligente, parte do código de referência é o seguinte:
ui->setupUi(this);
bluetooth_ble_Tool = novo Bluetooth_ble_Tool (“dwin_bt (BLE)”);
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
conectar(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
this,&BLE_PairPage::BlueSearchConnectState);
//btchat=new BtChat();
//btchat->set_ble_Tool(bluetooth_ble_Tool);
//btchat->init_Page();
//btchat->ocultar();
devicecommHandle=new DeviceComm();
dispositivocommHandle->set_ble_Tool(bluetooth_ble_Tool);
devicecommHandle->InitDevice();
mwin=new mainwin();
menos->ocultar();
conectar(mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// Alteração do modo de gravação emitida
conectar(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// lit. escreva as partes superior e inferior de uma música
conectar(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// Grava a alteração do volume
connect(devicecommHandle,&DeviceComm::ReadPlayMode,
this,[=](int mode){// Configurando o modo atual
qDebug() qDebug() B_Upan->setChecked(falso);
mwin->B_AUX->setChecked(falso);
mwin->B_BT->setChecked(falso);
se(modo==1)
mwin->B_Upan->setChecked(true);
senão if(modo==2)
mwin->B_AUX->setChecked(true);
senão if(modo==3)
mwin->B_BT->setChecked(true);
});
connect(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
this,[=](int vol){// Configurando a exibição do volume
mwin->QS_MainVol->setValue(vol);
});
conectar(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
isso,[=](){
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(“Pesquisando “);
conectar(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicefinished,
isso,[=](bool ok){
ui->pushButton->setEnabled(true);
ui->pushButton->setText(“Começar a detectar Bluetooth conectado “);
if(ok==falso) {
QMessageBox::information(this,tr(“Status da pesquisa “),” O dispositivo não pode ser pesquisado, verifique se o dispositivo já está ligado ou se outro celular já está conectado a ele?”);} }); }
void BLE_PairPage::BlueSearchConnectState(Bluetooth_ble_Tool::startStateprogressBar_em Linkst, int progress){
ui->progressBar->setValue(progresso);
if(Linkst>=Bluetooth_ble_Tool::Ble_OtherError){
QMessageBox::information(this,tr(“prompt de conexão “),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(bluetooth_ble_Tool->getErrorinfo());}
senão if(Linkst>=Bluetooth_ble_Tool::Ble_Deconnect_device){
QMessageBox::information(this,tr(“prompt de conexão “),” buggy “);
ui->label_tips->setText(“buggy “);}
senão if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr(“conectado com sucesso “),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(“conectado com sucesso “);
isto->ocultar();
mwin->mostrar();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->show();
//disconnect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//this,&BLE_PairPage::BlueSearchConnectState); }
outro{
ui->label_tips->setText(“Procurando conexões “); }


Horário da postagem: 23 de maio de 2024