【ແຫຼ່ງເປີດ】 ຫນ້າຈໍ DWIN ແລະໂທລະສັບ Android ສອງທາງເຊື່ອມຕໍ່ການຄວບຄຸມການຫຼິ້ນດົນຕີ

- ຈາກ DWIN Developer Forum

ບັນ​ຫາ​ນີ້​ສໍາ​ລັບ​ທ່ານ​ທີ່​ຈະ​ຊຸກ​ດັນ​ໃຫ້​ກໍ​ລະ​ນີ open-source ທີ່​ໄດ້​ຮັບ​ລາງ​ວັນ​ຂອງ​ກອງ​ປະ​ຊຸມ​ຜູ້​ພັດ​ທະ​ນາ DWIN – ຫນ້າ​ຈໍ DWIN ແລະ​ໂທລະ​ສັບ Android ສອງ​ທາງ​ເຊື່ອມ​ຕໍ່​ການ​ຄວບ​ຄຸມ​ການ​ຫຼິ້ນ​ດົນ​ຕີ​. ວິສະວະກອນຜ່ານໂມດູນ Bluetooth ເພື່ອບັນລຸຫນ້າຈໍອັດສະລິຍະ DWIN ແລະການໂຕ້ຕອບຂໍ້ມູນໂທລະສັບ Android, ຜູ້ໃຊ້ສາມາດຄວບຄຸມໂທລະສັບ Android ໄດ້ຢ່າງງ່າຍດາຍ, USB flash drive ໃນການຫຼີ້ນເພງ, ຢຸດຊົ່ວຄາວ, ປ່ຽນການຕັ້ງຄ່າເພງແລະສຽງ, ປະສົບການຫນ້າຈໍອັດສະລິຍະແລະໂທລະສັບ Android ສອງ. ວິ​ທີ​ການ​ຄວບ​ຄຸມ​ສະ​ດວກ​.

1.C51 ການອອກແບບ
(1) ພອດ serial 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 ອັດຕາ Baud:
//BODE2_DIV_H=ຄວາມຖີ່ CPU Mains/(8*Baud rate).
//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 ອັດຕາ Baud
//BODE2_DIV_H=0×00;
//FCLK/(8*DIV)
//BODE2_DIV_L=0×70;
//ES3T=1;
ES2R=1;
EA=1;
}
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);
ຖ້າ(TouchKey[1]==0)
ກັບຄືນ;
Sdata[1]=0;
ສະຫຼັບ(TouchKey[1])
{
case1://U disk
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;
}
PlayCtrPress ຫວ່າງເປົ່າ(void)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3001,TouchKey,1);
ຖ້າ(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 ແລະ​ການ​ຄວບ​ຄຸມ​ການ​ສື່​ສານ​ກັບ​ຫນ້າ​ຈໍ smart​, ສ່ວນ​ຫນຶ່ງ​ຂອງ​ລະ​ຫັດ​ອ້າງ​ອີງ​ແມ່ນ​ດັ່ງ​ຕໍ່​ໄປ​ນີ້​:
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=new mainwin();
less->hide();
ເຊື່ອມຕໍ່(mwin,&mainwin:layChangeMode,
devicecommHandle,&DeviceComm:layChangeMode);// ການປ່ຽນຮູບແບບການຂຽນອອກແລ້ວ
ເຊື່ອມຕໍ່(mwin,&mainwin:layCtrPreNextSt,
devicecommHandle,&DeviceComm:layCtrPreNextSt);// lit. ຂຽນສ່ວນເທິງ ແລະລຸ່ມຂອງເພງ
ເຊື່ອມຕໍ່(mwin,&mainwin:layMusicVolChange,
devicecommHandle,&DeviceComm:layMusicVolChange);// ຂຽນການປ່ຽນແປງລະດັບສຽງລົງ
connect(devicecommHandle,&DeviceComm::ReadPlayMode,
ນີ້,[=](ໂໝດ int){// ຕັ້ງຄ່າໂໝດປັດຈຸບັນ
qDebug() qDebug() B_Upan->setChecked(false);
mwin->B_AUX->setChecked(false);
mwin->B_BT->setChecked(false);
ຖ້າ(ໂໝດ==1)
mwin->B_Upan->setChecked(ຈິງ);
ອື່ນຖ້າ(mode==2)
mwin->B_AUX->setChecked(true);
ອື່ນຖ້າ(mode==3)
mwin->B_BT->setChecked(true);
});
ເຊື່ອມຕໍ່(devicecommHandle,&DeviceComm::ReadPlayMusicVol,
ນີ້,[=](volume int){// ຕັ້ງຄ່າການສະແດງລະດັບສຽງ
mwin->QS_MainVol->setValue(vol);
});
ເຊື່ອມຕໍ່(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BLE_Link_error,
ນີ້,[=](){
this->show();
less->hide();
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(false);
ui->pushButton->setText(“ຊອກຫາ”);
ເຊື່ອມຕໍ່(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueBLE_FindDevicefinished,
ນີ້,[=](bool ok){
ui->pushButton->setEnabled(ຈິງ);
ui->pushButton->setText(“ເລີ່ມກວດພົບ Bluetooth ທີ່ເຊື່ອມຕໍ່”);
ຖ້າ(ok==false) {
QMessageBox::information(this,tr(“Search Status “),” ອຸ​ປະ​ກອນ​ບໍ່​ສາ​ມາດ​ຊອກ​ຫາ​ໄດ້, ກະ​ລຸ​ນາ​ກວດ​ສອບ​ວ່າ​ອຸ​ປະ​ກອນ​ໄດ້​ເປີດ​ຢູ່​ແລ້ວ​ຫຼື​ຍັງ​ໂທລະ​ສັບ​ມື​ຖື​ອື່ນ​ໄດ້​ເຊື່ອມ​ຕໍ່​ກັບ​ມັນ​ແລ້ວ​ບໍ?”);} }); }
void BLE_PairPage::BlueSearchConnectState(Bluetooth_ble_Tool::startStateprogressBar_em Linkst, ພວມດຳເນີນຢູ່){
ui->progressBar->setValue(ຄວາມຄືບໜ້າ);
ຖ້າ(Linkst>=Bluetooth_ble_Tool::Ble_OtherError){
QMessageBox::information(this,tr(“Connection prompt”),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(“Connection prompt “),” buggy“);
ui->label_tips->setText(“ບັກ”);}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::information(
ນີ້,tr(“ເຊື່ອມຕໍ່ຢ່າງສໍາເລັດຜົນ“), bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(“ເຊື່ອມຕໍ່ສຳເລັດແລ້ວ”);
this->ເຊື່ອງ();
mwin->show();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->show();
//disconnect(bluetooth_ble_Tool,&Bluetooth_ble_Tool::BlueSearchConnectState,
//this,&BLE_PairPage::BlueSearchConnectState); }
ອື່ນ{
ui->label_tips->setText(“ຊອກຫາການເຊື່ອມຕໍ່“); }


ເວລາປະກາດ: 23-05-2024