void CSerialCommunicationTestDlg::start_method(char * method_exe, char * parameter,int x,int y,int z)//运行PSO程序
{
SHELLEXECUTEINFO sei;
printf("parameter=%s\n", parameter);
// 启动进程
WCHAR exe[MAXLEN_NAME];
swprintf_s(exe, L"D:\\PSOtest\\PSOtest\\PSO1\\Release\\PSO.exe", method_exe);//D:\\PSOtest\\PSOtest\\PSO1\\Release\\PSO.exe//E:\PSOtest\PSOtest\data_process\R0
//LPCWSTR m_szFilename = wsz;
char parameter1[1000];
sprintf_s(parameter1, "%d %d %d %d %f %f %f %d %d %d %f %f %f %s %d %d %d %d %d %d %d %d %d %s %s", x,y,z,6,0.123,-2000.0,2000.0,6,1000,50,2.0,2.0,1.7,"./",3,1,64,80,0,0,1,60,10, "../../opt_filter_structure_module/Release/opt_filter_structure_module.dll", "DE");
//sprintf_s(parameter1, "%d %d %d %d %f %f %f %d %d %d %f %f %f", x, y, z, 6, 0.123, -2000.0, 2000.0, 6, 1000, 50, 2.0, 2.0, 1.7);
WCHAR par[MAXLEN_NAME];
swprintf_s(par, L"%S", parameter1);
ZeroMemory(&sei, sizeof(SHELLEXECUTEINFO));
sei.cbSize = sizeof(SHELLEXECUTEINFO);
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
sei.hwnd = NULL;
sei.lpVerb = _T("open");
sei.lpFile = exe;//_T("D:\\PSOtest\\PSOtest\\PSO1\\Release\\PSO.exe");
sei.lpParameters = par;
sei.lpDirectory = NULL;
sei.nShow = SW_SHOW;
sei.hInstApp = NULL;
ShellExecuteEx(&sei);
// 加入下面这句就是等待该进程结束
WaitForSingleObject(sei.hProcess, INFINITE);//comment this sentence is equel to parallel; otherwise cascade
printf("%s process is over!\n", method_exe);
CString solution;
solution =ReadFitnessFromFiles("PSO_best_code");//"D:\\Cktsds\\SerialCommunicationTest\\PSO_best_code"
m_SerialPort.WriteToPort(solution);
has_started = false;
}
void CSerialCommunicationTestDlg::OnCbnSelchangeComboBaud()//波特率选择对话框
{
// TODO: 在此添加控件通知处理程序代码
int Index;
CString strCBText;
Index = m_CommBaud.GetCurSel();
m_CommBaud.GetLBText(Index, strCBText);
edit_recv += strCBText;
m_BaudNo = atoi((LPSTR)(LPCTSTR)strCBText);
SetDlgItemText(IDC_EDIT_RECV, edit_recv);
}