Operator Console
|
Below are UML sequence diagrams for various actions performed by the user on the user interface. In each column is a different object where some are separate threads( m_blemishControl, m_sfrPlusControl, m_cameraControl, and m_jsonDlgThread). For simplicity, calls to the functions responsible for sending and capturing messages are omitted. In these diagrams messages are represented by arrows with open heads, function calls with arrows with closed heads, and state changes are indicated by highlighted sections.
The diagram below shows the initialization process of COperatorConsoleApp including the various image buffers, worker threads, and dialogs. The m_nThreadID listed in the various init() member functions refers to the thread ID of COperatorConsoleApp. Recall that m_blemishControl, m_sfrPlusControl, and m_cameraControl are ThreadControl objects whose initialization function is given by ThreadControl::Init. To view the syntax of the initialization member function of m_stderrThread and m_stdoutThread, please see StdoutThread::InitThread.
For this diagram recall that *m_test is the ThreadControl object that COperatorConsoleApp calls in COperatorConsoleApp::OnFrameReady().
Below is the diagram for when the user runs a SFRplus test; the diagram for running a Blemish test is functionally similar with the replacement of calls to m_blemishControl instead of m_sfrPlusControl. In this example m_test = &m_sfrPlusControl and COperatorConsoleApp actually calls m_test->Run in COperatorConsoleApp::OnFrameReady(). This detail has been left out for simplicity.