【Open Source】 DWIN မျက်နှာပြင်နှင့် Android ဖုန်း နှစ်လမ်းသွား ချိတ်ဆက်မှု ထိန်းချုပ်ရေး ဂီတဖွင့်ခြင်း။

- DWIN Developer Forum မှ

DWIN ဆော့ဖ်ဝဲဆော့ဖ်ဝဲဖိုရမ်- DWIN ဖန်သားပြင်နှင့် Android ဖုန်း၏ နှစ်လမ်းသွားချိတ်ဆက်မှု ချိတ်ဆက်မှု ထိန်းချုပ်မှု ဂီတဖွင့်ခြင်းအတွက် သင့်အတွက် ဤပြဿနာကို တွန်းအားပေးရန်။ DWIN အသိဉာဏ်မျက်နှာပြင်နှင့် Android ဖုန်းဒေတာအပြန်အလှန်ဆက်သွယ်မှုကိုရရှိရန် Bluetooth module မှအင်ဂျင်နီယာများသည်အသုံးပြုသူများသည် Android ဖုန်း၊ USB flash drive ကိုအလွယ်တကူထိန်းချုပ်နိုင်ပြီးသီချင်းဖွင့်ခြင်း၊ ခေတ္တရပ်ခြင်း၊ သီချင်းနှင့်အသံဆက်တင်များကိုပြောင်းလဲခြင်း၊ ဉာဏ်ရည်ထက်မြက်သောမျက်နှာပြင်နှင့် Android ဖုန်းနှစ်ခုကိုတွေ့ကြုံခံစားနိုင်သည်။ အဆင်ပြေပြေ ထိန်းချုပ်နည်း။

1.C51 ဒီဇိုင်း
(1) T5L အမှတ်စဉ်အပေါက်သည် ပြန်ဖွင့်ခြင်းအခြေအနေကို မွမ်းမံပြင်ဆင်ရန်၊ အသံအတိုးအကျယ်ကို သတ်မှတ်ရန်နှင့် Bluetooth အခြေအနေကို ဖတ်ရန် Bluetooth မော်ဂျူးနှင့် အပြန်အလှန်တုံ့ပြန်သည်၊ ကိုးကားချက်ကုဒ်၏အစိတ်အပိုင်းမှာ အောက်ပါအတိုင်းဖြစ်သည်-
int main(ပျက်ပြယ်)
{
INIT_CPU();
T2_Heat();
UART4_Init();
EA=1;
//UART4_SendStr(“ဟယ်လို”၊အရွယ်အစား(“ဟယ်လို”));
//WDT_ON();// Watchdog ကိုဖွင့်ပါ။
နေစဉ်(၁)
{
//WDT_RST();//ခွေးခြေရာ
လုပ်ငန်းစဉ်();
}
}
UART4_Init(ပျက်ပြယ်)
{
// UART4 Baud နှုန်းသတ်မှတ်ခြင်း-
//BODE2_DIV_H=CPU Mains ကြိမ်နှုန်း/(8*Baud နှုန်း)။
//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(ပျက်ပြယ်)
{
if(!TenmsFlag)
ပြန်လာ;
TenmsFlag=0;
အရင်းအမြစ်Press();// Tone မီးစက်
PlayCtrPress();//ပြန်ဖွင့်ခြင်း အခြေအနေ ပြောင်းလဲခြင်း။
VolCtrSlider();// အသံအတိုးအကျယ် ပြောင်းလဲခြင်း။
VolLogSlider();// အသံအတိုးအကျယ် ပြောင်းလဲခြင်း။
ReadBtState();//Bluetooth အခြေအနေကိုဖတ်ပါ။
}
ပျက်ပြယ်သော အရင်းအမြစ်Press(ပျက်ပြယ်)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3000၊TouchKey၊1);
if(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 (ပျက်ပြယ်)
{
charTouchKey[2]={0,0};
u8Sdata[2];
read_dgusii_vp(0×3001၊TouchKey၊1);
if(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 ချိတ်ဆက်မှုနှင့် စမတ်စခရင်ဖြင့် ဆက်သွယ်ရေးထိန်းချုပ်မှုကို နားလည်သဘောပေါက်ကာ ကိုးကားကုဒ်၏တစ်စိတ်တစ်ပိုင်းမှာ အောက်ပါအတိုင်းဖြစ်သည်။
ui->setupUi(ဤ);
bluetooth_ble_Tool=အသစ် Bluetooth_ble_Tool(“dwin_bt(BLE)”);
ui->label_localBT_Name->setText(bluetooth_ble_Tool->getLocalName());
ချိတ်ဆက်(ဘလူးတုသ်_ble_ကိရိယာ၊&ဘလူးတုသ်_ble_ကိရိယာ-: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);// Write mode အပြောင်းအလဲကို ထုတ်ပြန်ခဲ့သည်။
ချိတ်ဆက်ပါ(mwin၊&mainwin:layCtrPreNextSt၊
devicecommHandle၊&DeviceComm:layCtrPreNextSt);// lit သီချင်းတစ်ပုဒ်ရဲ့ အပေါ်ပိုင်းနဲ့ အောက်ပိုင်းတွေကို ချရေးပါ။
ချိတ်ဆက်ပါ(mwin၊&mainwin:layMusicVolChange၊
devicecommHandle၊&DeviceComm:layMusicVolChange);// အသံအတိုးအကျယ်ပြောင်းလဲမှုကို ချရေးပါ။
ချိတ်ဆက်(devicecommHandle၊&DeviceComm::ReadPlayMode၊
ဤ၊[=](int မုဒ်){// လက်ရှိမုဒ်ကို သတ်မှတ်ခြင်း။
qDebug() qDebug() B_Upan->setChecked(false);
mwin->B_AUX->setChecked(false);
mwin->B_BT->setChecked(false);
if(mode==1)
mwin->B_Upan->setChecked(true);
တခြား if(mode==2)
mwin->B_AUX->setChecked(true);
တခြား if(mode==3)
mwin->B_BT->setChecked(true);
});
ချိတ်ဆက်(devicecommHandle၊&DeviceComm::ReadPlayMusicVol၊
ဤ၊[=](int vol){// အသံအတိုးအကျယ်ပြသမှုကို သတ်မှတ်ခြင်း။
mwin->QS_MainVol->setValue(vol);
});
ချိတ်ဆက်မှု(bluetooth_ble_Tool၊&Bluetooth_ble_Tool::BLE_Link_error၊
ဤ၊[=](){
this->ရှိုး();
less->hide();
devicecommHandle->TimerStopReadDeviceST();
this->ui->progressBar->setValue(0);
});
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_FindDevice ပြီးပါပြီ၊
ဒါက၊[=](ကောင်းပြီ){
ui->pushButton->setEnabled(true);
ui->pushButton->setText(“ချိတ်ဆက်ထားသော ဘလူးတုသ်ကို စတင်ရှာဖွေတွေ့ရှိသည်”);
if(ok==false) {
QMessageBox::information(this,tr(“Search Status “),” စက်ပစ္စည်းကို ရှာဖွေ၍မရပါ၊ ကျေးဇူးပြု၍ စက်ပစ္စည်းကို ဖွင့်ထားပြီး၊ သို့မဟုတ် အခြားဆဲလ်ဖုန်းနှင့် ချိတ်ဆက်ထားပြီးသား ရှိမရှိ စစ်ဆေးပါ။) } }); }
ပျက်ပြယ်သွားသော BLE_PairPage::BlueSearchConnectState(Bluetooth_ble_Tool::startStateprogressBar_em Linkst၊ ဆက်လက်လုပ်ဆောင်ဆဲ){
ui->progressBar->setValue(တိုးတက်မှု);
if(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("ချိတ်ဆက်မှု prompt"),"buggy");
ui->label_tips->setText(“buggy”);}
else if(Linkst==Bluetooth_ble_Tool::Ble_Connect_characterOk){// QMessageBox::အချက်အလက်(
ဤ၊tr(“ချိတ်ဆက်ပြီးပါပြီ”),bluetooth_ble_Tool->getErrorinfo());
ui->label_tips->setText(“ချိတ်ဆက်ပြီးပါပြီ”);
this->hide();
mwin->ရှိုး();
devicecommHandle->TimerStartReadDeviceST(100);
//btchat->show();
//disconnect(bluetooth_ble_Tool၊&Bluetooth_ble_Tool::BlueSearchConnectState၊
//this,&BLE_PairPage::BlueSearchConnectState); }
အခြား{
ui->label_tips->setText(“ချိတ်ဆက်မှုများကို ရှာဖွေနေသည်”); }


စာတိုက်အချိန်- မေလ ၂၃-၂၀၂၄