【Malferma Fonto】 DWIN Ekrano kaj Android-Telefono Dudirekta Ligo Kontrolas Muzikan Reproduktadon

–De DWIN-Programisto-Forumo

Ĉi tiu temo por vi puŝi la premiitan malfermfontan kazon de DWIN-programistoforumo - DWIN-ekrano kaj Android-telefona dudirekta ligo kontrolas muzikreproduktadon. Inĝenieroj per la Bluetooth-modulo por atingi la DWIN-inteligentan ekranon kaj Android-telefonan datuman interagadon, uzantoj povas facile kontroli la Android-telefonon, USB-poŝmemorilon en la kanto-ludado, paŭzi, ŝanĝi la kanton kaj sonajn agordojn, sperti inteligentan ekranon kaj Android-telefonon du- maniero oportuna kontrolo.

1.C51 Dezajno
(1) La seria haveno T5L interagas kun la Bluetooth-modulo por modifi la reproduktan staton, agordi la volumon kaj legi la Bluetooth-statuson, parto de la referenca kodo estas jena:
int ĉefa (void)
{
INIT_CPU();
T2_Varmego();
UART4_Init();
EA=1;
//UART4_SendStr(“saluton”,sizeof(“saluton”));
//WDT_ON();//Enŝaltu la Gardhundon.
dum (1)
{
//WDT_RST();//Fetu la hundon
Proceso();
}
}
void UART4_Init(void)
{
// Agordo de baudrapideco de UART4:
//BODE2_DIV_H=CPU-Ĉeffrekvenco/(8*Baudrapideco) .
//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 Baudrapideco
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
EA=1;
}
malplena TenMsHandle (malplena)
{
se(!TenmsFlag)
reveni;
TenmsFlag=0;
SourcePress();//Tongeneratoro
PlayCtrPress();//Ŝanĝo de stato de reprodukto
VolCtrSlider();//Volumŝanĝo
VolLogSlider();//Volumŝanĝo
ReadBtState();//Legu Bluetooth-statuson
}
malplena FontPres(malplenigo)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000,TouchKey,1);
se(Tuŝklavo[1]==0)
reveni;
Sdata[1]=0;
ŝaltilo (Tuŝklavo[1])
{
case1://U-disko
Sdata[0]=1;
SendDataToBT(Write_Run_Mode,Sdata,1);
rompi;
case2:// Ekstera LineIn Enigo
Sdata[0]=2;
SendDataToBT(Write_Run_Mode,Sdata,1);
rompi;
kazo3://Bluetooth
Sdata[0]=3;
SendDataToBT(Write_Run_Mode,Sdata,1);
rompi;
}
skribu_dgusii_vp(0×3003,TouchKey,1);
memset (TuchKey,0,sizeof (TuchKey));
skribu_dgusii_vp(0×3000,TouchKey,1);
ReadBtStatecount=0;
}
malplenigi LuduCtrPres(malplenigi)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3001,TouchKey,1);
se(Tuŝklavo[1]==0)
reveni;
Sdata[1]=0;
ŝaltilo (Tuŝklavo[1])
{
case1:// Antaŭa kanto
Sdata[0]=1;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
rompi;
case2:// Reprodukta Paŭzo
Sdata[0]=2;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
rompi;
case3:// Sekva kanto
Sdata[0]=3;
SendDataToBT(Write_Next_Pre_PT,Sdata,1);
rompi;
}
memset (TuchKey,0,sizeof (TuchKey));
skribu_dgusii_vp(0×3001,TouchKey,1);
ReadBtStatecount=0;
}

(2)La Android-programa pako estas skribita per QT, ĉefe realigante Bluetooth-konekton kaj komunikadkontrolon per la inteligenta ekrano, parto de la referenca kodo estas jena:
ui->setupUi(this);
bluetooth_ble_Tool=nova Bluetooth_ble_Tool ("dwin_bt(BLE)");
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
konekti(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
ĉi tio,&BLE_PairPage::BlueSearchConnectState);
//btchat=nova BtChat ();
//btchat->set_ble_Tool(bluetooth_ble_Tool);
//btchat->init_Page();
//btchat->kaŝi ();
devicecommHandle=nova DeviceComm ();
devicecommHandle->set_ble_Tool (bluetooth_ble_Tool);
devicecommHandle->InitDevice();
mwin=nova mainwin ();
malpli->kaŝi();
konekti(mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// Skriba reĝimo ŝanĝo eldonita
konekti(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// lit. skribu la suprajn kaj malsuprajn partojn de kanto
konekti(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// Skribu volumŝanĝon malsupren
connect(devicecommHandle,&DeviceComm::ReadPlayMode,
ĉi tio,[=](int-reĝimo){// Agordante la nunan reĝimon
qDebug() qDebug() B_Supre-> aro Kontrolita (malvera);
mwin->B_AUX->setChecked(false);
mwin->B_BT->setChecked(false);
se(reĝimo==1)
mwin->B_Upan->setChecked(vera);
alie se (reĝimo==2)
mwin->B_AUX->setChecked (vera);
alie se (reĝimo==3)
mwin->B_BT->setChecked(vera);
});
connect(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
ĉi tio,[=](int vol){// Agordi la Voluman Montron
mwin->QS_MainVol->setValue(vol);
});
konekti(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
ĉi tio,[=](){
ĉi->montri();
malpli->kaŝi();
devicecommHandle-> TimerStopReadDeviceST ();
ĉi->ui->progressBar->setValue(0);
});
malplena BLE_PairPage::on_pushButton_clicked (){
bluetooth_ble_Tool->SetOperUuidServer (QBluetoothUuid (servoUuid));
//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 ("Serĉante ");
konekti(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_Find Device finita,
ĉi tio,[=](bool bone){
ui->pushButton->setEnabled(vera);
ui->pushButton->setText ("Komencu detekti konektitan Bluetooth ");
se(ok==malvera) {
QMessageBox::information(this,tr(“Serĉa stato “),” La aparato ne povas esti serĉata, bonvolu kontroli ĉu la aparato jam estas ŝaltita, aŭ ĉu alia poŝtelefono jam estas konektita al ĝi?”);} }); }
void BLE_PairPage::BlueSearchConnectState(Bluetooth_ble_Tool::startStateprogressBar_em Linkst, int progreso){
ui->progresBaro->setValue(progreso);
se(Linkst>=Bluetooth_ble_Tool::Ble_OtherError){
QMessageBox::information(this,tr(“konekto prompto”),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(bluetooth_ble_Tool->getErrorinfo());}
else if(Linkst>=Bluetooth_ble_Tool::Ble_Deconnect_device){
QMessageBox::informoj(this,tr(“konekto prompto “),” bug “);
ui->label_tips->setText(“buggy“);}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
this,tr(“sukcese konektita“), bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText ("sukcese konektita ");
ĉi-> kaŝi();
mwin->montri();
devicecommHandle-> TimerStartReadDeviceST (100);
//btchat->montri();
//malkonekti(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//this,&BLE_PairPage::BlueSearchConnectState); }
alia{
ui->label_tips->setText ("Serĉante konektojn "); }


Afiŝtempo: majo-23-2024