void wxGISGPToolManager::OnFinish(IProcess* pProcess, bool bHasErrors) { size_t nIndex; for(nIndex = 0; nIndex < m_ProcessArray.size(); nIndex++) if(pProcess == m_ProcessArray[nIndex].pProcess) break; wxDateTime end = wxDateTime::Now(); if(m_ProcessArray[nIndex].pTrackCancel) { if(bHasErrors) { m_ProcessArray[nIndex].pTrackCancel->PutMessage(wxString::Format(_("An error occured while executing %s. Failed to execute (%s)."), m_ProcessArray[nIndex].pTool->GetName().c_str(), m_ProcessArray[nIndex].pTool->GetName().c_str()), -1, enumGISMessageErr); m_ProcessArray[nIndex].pTrackCancel->PutMessage(_("Error!"), -1, enumGISMessageTitle); } else { m_ProcessArray[nIndex].pTrackCancel->PutMessage(wxString::Format(_("Executed (%s) successfully"), m_ProcessArray[nIndex].pTool->GetName().c_str()), -1, enumGISMessageInfo); m_ProcessArray[nIndex].pTrackCancel->PutMessage(_("Done"), -1, enumGISMessageTitle); } wxTimeSpan span = end - m_ProcessArray[nIndex].pProcess->GetBeginTime(); m_ProcessArray[nIndex].pTrackCancel->PutMessage(wxString::Format(_("End Time: %s (Elapsed Time: %s)"), end.Format().c_str(), span.Format(_("%H hours %M min. %S sec.")).c_str()), -1, enumGISMessageInfo); } wxGISProcessEvent event(wxPROCESS_FINISH, nIndex, bHasErrors); PostEvent(event); RunNextTask(); }
void main() { HAL_Init_Hardware(); APP_Init(); HPL_ISR_GLOBAL_SET(); while(1) { if(RunNextTask() == 0) { //SLEEP(); } } }
void wxGISGPToolManager::CancelProcess(size_t nIndex) { wxASSERT(nIndex >= 0); wxASSERT(nIndex < m_ProcessArray.size()); m_ProcessArray[nIndex].pProcess->Cancel(); wxGISProcessEvent event(wxPROCESS_CANCELED, nIndex); PostEvent(event); RunNextTask(); }