public TestCoreController(Func <TestCoreMessages.TypeMessage, string, int> callback)
        {
            this.Rack      = new Rack();
            this.DtvGen    = new DtvGen();
            this.Jig       = new Jig(this);
            this.Andon     = new Andon();
            this.Mod       = new Mod(this);
            this.MotoZPCBA = new MotoZPCBA();
            this.MQS       = new MQS();
            this.FlexFlow  = new FlexFlow(MQS.GetLogResult());
            this.PwrSupply = new PwrSupply();

            //Access to IniParser
            var parser = new FileIniDataParser();

            data = parser.ReadFile(CONFIG_APP_FILE);

            //Callback
            this.callback = callback;

            logLocalTestSummary = Boolean.Parse(GetValueConfiguration("SETTINGS", "TEST_SUMMARY_LOCAL_RECORD").ToLower());
            logLocalTestReport  = Boolean.Parse(GetValueConfiguration("SETTINGS", "TEST_RESULT_LOCAL_RECORD").ToLower());
            pathTest            = GetValueConfiguration("SETTINGS", "PATH_LOG_TEST").ToLower();
            runTest             = true;
            this.isPostEnable   = Boolean.Parse(GetValueConfiguration("SETTINGS", "POST_ENABLE").ToLower());
        }
        public void StartTests(string trackId, TestCoreMessages.StationType stationType)
        {
            //Do POST of this trackid
            if (isPostEnable)
            {
                MQS.Post();
            }

            TestCoreRunner tcr = new TestCoreRunner(this, trackId, stationType);

            tcr.RunTestsToStation();
        }