📄 _main_form.cpp
字号:
FileName = FileName + ".txt";
}
else
FileName = FileName + ".txt";
FILE *rf;
rf = fopen(FileName.c_str(), "w+");
if(rf == NULL)
{
Application->MessageBoxA("Open File Error!", "Error!", MB_OK);
return;
}
for(int i=0;i<ZV_PRINT_LIST->Count;i++)
{
fputs(ZV_PRINT_LIST->Items->Strings[i].c_str(), rf);
fputs("\r\n", rf);
}
fclose(rf);
}
void __fastcall TMAIN_FORM::ZV_ENGINEER_LISTClick(TObject *Sender)
{
for(int i=0; i<ZV_ENGINEER_LIST->Items->Count; i++)
if(EngineerCtrl[i].Panel)
EngineerCtrl[i].Panel->Hide();
ZV_ENGINEER_PANEL_NOOPEN->Hide();
ZV_ENGINEER_PANEL_NONE->Show();
if(ZV_ENGINEER_LIST->ItemIndex >= 0)
{
if(!EngineerCtrl[ZV_ENGINEER_LIST->ItemIndex].CanUse)
{
ZV_ENGINEER_PANEL_NONE->Hide();
ZV_ENGINEER_PANEL_NOOPEN->Show();
}
else
{
if(EngineerCtrl[ZV_ENGINEER_LIST->ItemIndex].Panel)
{
ZV_ENGINEER_PANEL_NONE->Hide();
EngineerCtrl[ZV_ENGINEER_LIST->ItemIndex].Panel->Caption = EngineerCtrl[ZV_ENGINEER_LIST->ItemIndex].Description;
ZV_ENGINEER_PANNELCLEAR(EngineerCtrl[ZV_ENGINEER_LIST->ItemIndex].Type);
EngineerCtrl[ZV_ENGINEER_LIST->ItemIndex].Panel->Show();
if(strlen(EngineerCtrl[ZV_ENGINEER_LIST->ItemIndex].InitCmd))
ctrlfsm.CmdConsole(EngineerCtrl[ZV_ENGINEER_LIST->ItemIndex].InitCmd);
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TMAIN_FORM::ZV_ENGINEER_PANNELCLEAR(_CtrlCmd type)
{
switch(type){
case CC_BUILD:
ZEP_BUILD_BUILD->Clear();
ZEP_BUILD_SIGNATURE->Clear();
ZEP_BUILD_COMMENT->Clear();
ZEP_BUILD_DATE->Clear();
ZEP_BUILD_CHIP->Clear();
ZEP_BUILD_RFPARAM->Clear();
ZEP_BUILD_PKG->Clear();
ZEP_BUILD_HI->Clear();
ZEP_BUILD_CHIPBASE->Clear();
ZEP_BUILD_BTLLSTACK->Clear();
break;
case CC_SETBDADDR:
ZEP_BDADDR_BDADDR->Clear();
ZEP_BDADDR_TYPE->Clear();
break;
case CC_DEVCMD:
ZEP_DEV_STATUS->Caption = "";
break;
case CC_CRYSTAL:
ZEP_CRYSTAL_TUNNING_FLASH->Clear();
ZEP_CRYSTAL_COUNT->Clear();
ZEP_CRYSTAL_TUNNING_01STEP1->Enabled = true;
ZEP_CRYSTAL_TUNNING_01STEP2->Enabled = false;
ZEP_CRYSTAL_TUNNING_01STEP3->Enabled = false;
ZEP_CRYSTAL_TUNNING_02STEP1->Enabled = true;
ZEP_CRYSTAL_TUNNING_02STEP2->Enabled = false;
ZEP_CRYSTAL_TUNNING_02STEP3->Enabled = false;
ZEP_CRYSTAL_TUNNING_02STEP4->Enabled = false;
ZEP_CRYSTAL_TUNNING_03STEP1->Enabled = true;
ZEP_CRYSTAL_TUNNING_01REG->ItemIndex = 0;
ZEP_CRYSTAL_TUNNING_02REG->ItemIndex = 0;
break;
};
}
//---------------------------------------------------------------------------
void __fastcall TMAIN_FORM::ZV_ENGINEER_PANEL_ResetClick(TObject *Sender)
{
if(hcomm_sets.item || MENU_CFG_USEUSB->Checked)
{
if(MENU_CFG_INTEFACE_HCI->Checked)
ctrlfsm.CmdReset();
else
ctrlfsm.CmdConsole("reset");
Sleep(1500);
ZV_ENGINEER_LISTClick(Sender);
}
}
//---------------------------------------------------------------------------
void __fastcall TMAIN_FORM::ZV_ENGINEER_PANEL_READClick(TObject *Sender)
{
ZV_ENGINEER_LISTClick(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TMAIN_FORM::ZEP_BDADDR_SETClick(TObject *Sender)
{
if(hcomm_sets.item || MENU_CFG_USEUSB->Enabled)
{
if(ZEP_BDADDR_BDADDR->Text.Length() == 12)
{
unsigned __int8 bdaddr[13];
char cmd[128];
strcpy(bdaddr, ZEP_BDADDR_BDADDR->Text.c_str());
for(int i=0; i<12; i++)
{
if((bdaddr[i] >= '0' && bdaddr[i] <= '9'))
{
}
else if(bdaddr[i] >= 'a' && bdaddr[i] <= 'f')
{
}
else if(bdaddr[i] >= 'A' && bdaddr[i] <= 'F' )
{
}
else
{
Application->MessageBoxA("Format Error", "Note", MB_OK);
return;
}
}
sprintf(cmd,"setbdaddr %s", bdaddr);
ctrlfsm.CmdConsole(cmd);
}
else
Application->MessageBoxA("Format Error", "Note", MB_OK);
}
}
//---------------------------------------------------------------------------
void __fastcall TMAIN_FORM::ZEP_DEV_SENDClick(TObject *Sender)
{
if(hcomm_sets.item || MENU_CFG_USEUSB->Enabled)
{
char cmd[64];
if(ZEP_DEV_CONTINUOUSRX->Checked)
sprintf(cmd, "continousrx");
else if(ZEP_DEV_CONTINUOUSTX->Checked)
sprintf(cmd, "continoustx %d", ZEP_DEV_CONTINUOUSTX_PATTERN->ItemIndex);
else if(ZEP_DEV_CONTINUOUSNULLTX->Checked)
sprintf(cmd, "continousnulltx");
else if(ZEP_DEV_PULSETX->Checked)
sprintf(cmd, "pulsetx %d", ZEP_DEV_PULSETX_PATTERN->ItemIndex);
else if(ZEP_DEV_TXPOW->Checked)
{
const char *param[] = {"up","down","min","max"};
sprintf(cmd, "txpower %s", param[ZEP_DEV_TXPOW_PARAM->ItemIndex]);
}
else if(ZEP_DEV_FREQ->Checked)
sprintf(cmd, "freq %d %d", ZEP_DEV_FREQ_RX->ItemIndex, ZEP_DEV_FREQ_TX->ItemIndex);
ctrlfsm.CmdConsole(cmd);
ZEP_DEV_STATUS->Caption = "";
}
}
//---------------------------------------------------------------------------
void __fastcall TMAIN_FORM::ZEP_CRYSTAL_TUNNING_01STEP1Click(
TObject *Sender)
{
if(hcomm_sets.item || MENU_CFG_USEUSB->Enabled)
{
ctrlfsm.CmdConsole("xtaltest");
ZEP_CRYSTAL_TUNNING_02STEP1->Enabled = false;
ZEP_CRYSTAL_TUNNING_03STEP1->Enabled = false;
}
}
//---------------------------------------------------------------------------
void __fastcall TMAIN_FORM::ZEP_CRYSTAL_TUNNING_02STEP1Click(
TObject *Sender)
{
if(hcomm_sets.item || MENU_CFG_USEUSB->Enabled)
{
ctrlfsm.CmdConsole("preparedut");
ZEP_CRYSTAL_TUNNING_01STEP1->Enabled = false;
ZEP_CRYSTAL_TUNNING_03STEP1->Enabled = false;
}
}
//---------------------------------------------------------------------------
void __fastcall TMAIN_FORM::ZEP_CRYSTAL_TUNNING_02STEP2Click(
TObject *Sender)
{
if(hcomm_sets.item || MENU_CFG_USEUSB->Enabled)
{
ctrlfsm.CmdConsole("freq 0 0");
}
}
//---------------------------------------------------------------------------
void __fastcall TMAIN_FORM::ZEP_CRYSTAL_TUNNING_03STEP1Click(
TObject *Sender)
{
if(hcomm_sets.item || MENU_CFG_USEUSB->Enabled)
{
ctrlfsm.CmdConsole("preparedut");
ZEP_CRYSTAL_TUNNING_01STEP1->Enabled = false;
ZEP_CRYSTAL_TUNNING_02STEP1->Enabled = false;
}
}
//---------------------------------------------------------------------------
void __fastcall TMAIN_FORM::ZEP_CRYSTAL_TUNNING_01STEP2Click(
TObject *Sender)
{
if(hcomm_sets.item || MENU_CFG_USEUSB->Enabled)
{
char cmd[64];
sprintf(cmd,"wctr %x", ZEP_CRYSTAL_TUNNING_01REG->ItemIndex);
ctrlfsm.CmdConsole(cmd);
}
}
//---------------------------------------------------------------------------
void __fastcall TMAIN_FORM::ZEP_CRYSTAL_TUNNING_01STEP3Click(
TObject *Sender)
{
if(hcomm_sets.item || MENU_CFG_USEUSB->Enabled)
{
char cmd[64];
sprintf(cmd,"wctf %x", ZEP_CRYSTAL_TUNNING_01REG->ItemIndex);
ctrlfsm.CmdConsole(cmd);
}
}
//---------------------------------------------------------------------------
void __fastcall TMAIN_FORM::ZEP_CRYSTAL_TUNNING_02STEP3Click(
TObject *Sender)
{
if(hcomm_sets.item || MENU_CFG_USEUSB->Enabled)
{
char cmd[64];
sprintf(cmd,"wctr %x", ZEP_CRYSTAL_TUNNING_02REG->ItemIndex);
ctrlfsm.CmdConsole(cmd);
}
}
//---------------------------------------------------------------------------
void __fastcall TMAIN_FORM::ZEP_CRYSTAL_TUNNING_02STEP4Click(
TObject *Sender)
{
if(hcomm_sets.item || MENU_CFG_USEUSB->Enabled)
{
char cmd[64];
sprintf(cmd,"wctf %x", ZEP_CRYSTAL_TUNNING_02REG->ItemIndex);
ctrlfsm.CmdConsole(cmd);
}
}
//---------------------------------------------------------------------------
void __fastcall TMAIN_FORM::MENU_CFG_USEUSBClick(TObject *Sender)
{
if(MENU_CFG_USEUSB->Checked)
{
USB_Close();
}
else
{
// Close Serial First
if(hcomm_sets.item)
{
//close the port
hcomm_sets.item->Checked = false;
hcomm_sets.selected = 0;
hcomm_sets.item = NULL;
hcomm.Close();
MAIN_FORM->Caption = "Zeevo MP Tool";
DebugPrintf("Serial Communication Closed");
MENU_CFG_COMM_OPEN->Checked = false;
ZV_ENGINEER_LIST->Enabled = false;
}
// then open usb
husb[0] = new TUsbDevice;
if(ERROR_SUCCESS == husb[0]->getDeviceStatus())
{
MENU_CFG_USEUSB->Checked = true;
DebugPrintf("USB Communication Opened");
hcomm_sets.used_interface = CI_HCI;
ctrlfsm.Interface = hcomm_sets.used_interface;
MENU_CFG_INTEFACE_HCI->Checked = true;
//USB_READ_TASK->Enabled = true;
ctrlfsm.CmdReset();
Sleep(1500);
UsbReadThreadBegin();
ZV_ENGINEER_DELAY->Enabled = true;
husb[0]->OnClose = ZEEVO_OnUSBClose;
}
else
{
MENU_CFG_USEUSB->Checked = false;
}
}
}
//---------------------------------------------------------------------------
HANDLE USB_THREAD;
DWORD USB_THREAD_ID;
unsigned long __stdcall ReadUSBThread(LPVOID lpData)
{
char buff[1024];
memset(buff, 0, 1024);
DWORD read_size = 0;
while(1)
{
if(MAIN_FORM->husb[0]->getHCIEvent(&buff[1], read_size))
{
buff[0] = 0x04;
if(read_size)
HCOMM_ON_RECEIVE(buff, read_size+1);
}
}
}
void __fastcall TMAIN_FORM::UsbReadThreadBegin(void)
{
USB_THREAD = CreateThread( (LPSECURITY_ATTRIBUTES) NULL,
0,
(LPTHREAD_START_ROUTINE)ReadUSBThread,
NULL,
0,
&USB_THREAD_ID);
}
void __fastcall TMAIN_FORM::UsbReadThreadEnd(void)
{
DWORD exitcode;
if(GetExitCodeThread(USB_THREAD, &exitcode))
{
TerminateThread(USB_THREAD, exitcode);
}
}
void __fastcall TMAIN_FORM::ZV_ENGINEER_DELAYTimer(TObject *Sender)
{
static int count = 0;
if(count == 5)
{
count = 0;
ZV_ENGINEER_LIST->Enabled = true;
ZV_ENGINEER_DELAY->Enabled = false;
}
else
count ++;
}
//---------------------------------------------------------------------------
void ZEEVO_OnUSBClose(void)
{
if(MAIN_FORM->husb[0])
{
MAIN_FORM->ZV_ENGINEER_LIST->Enabled = false;
MAIN_FORM->MENU_CFG_USEUSB->Checked = false;
MAIN_FORM->UsbReadThreadEnd();
MAIN_FORM->husb[0] = NULL;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -