コード例 #1
0
        public void OnEvent(BaseEvent evt)
        {
            using (var l = new Logger("Listener")) {
                if (evt is FlexEvent) {
                    var fxe = evt as FlexEvent;
                    if (fxe.Operation.StartsWith("SQL.Corrections")) {
                        var fex = new FlexHelper(fxe);
                        if (fex.GetStr(MainWindow.ArgCommandName) == "GetScheme") {
                            if (fex.GetStr(MainWindow.ArgErrorCodeName) == "S_OK") {
                                var itemLst = (List<int>) fex.GetComplexArg("ITEM", typeof (List<int>));
                                var cminLst = (List<double>) fex.GetComplexArg("CMIN", typeof (List<double>));
                                var cmaxLst = (List<double>) fex.GetComplexArg("CMAX", typeof (List<double>));
                                var oxygenLst = (List<double>) fex.GetComplexArg("OXYGEN", typeof (List<double>));
                                var heatinLst = (List<double>) fex.GetComplexArg("HEATING", typeof (List<double>));
                                Pointer.PMainWindow.Dispatcher.Invoke(new Action(delegate() {
                                                                                     Pointer.PMainWindow.TableData = new List<TableRow>();
                                                                                     Pointer.PMainWindow.StandartTableData = new List<TableRow>();
                                                                                     for (int i = 0; i < fex.GetInt(MainWindow.ArgCountName); i++) {
                                                                                         var tr = new TableRow();
                                                                                         tr.Item = itemLst[i];
                                                                                         tr.CMin = cminLst[i];
                                                                                         tr.CMax = cmaxLst[i];
                                                                                         tr.Oxygen = oxygenLst[i];
                                                                                         tr.Heating = heatinLst[i];

                                                                                         Pointer.PMainWindow.StandartTableData.Add(new TableRow(tr));

                                                                                         tr.Item = i;
                                                                                         Pointer.PMainWindow.TableData.Add(new TableRow(tr));

                                                                                     }
                                                                                     Pointer.PMainWindow.dgScheme.ItemsSource =Pointer.PMainWindow.TableData;
                                                                                     Pointer.PMainWindow.dgScheme.Items.Refresh();
                                                                                     Pointer.PMainWindow.btnSave.IsEnabled = true;
                                                                                     Pointer.PMainWindow.LogWrite("Scheme loaded");
                                                                                 }));
                            }
                            else {
                                Pointer.PMainWindow.Dispatcher.Invoke(new Action(delegate() {
                                                                                     Pointer.PMainWindow.LogWrite(fex.GetStr(MainWindow.ArgErrorStringName));
                                                                                 }));
                            }
                        }

                        if (fex.GetStr(MainWindow.ArgCommandName) == "InsertSchemeRow") {
                            if (fex.GetStr(MainWindow.ArgErrorCodeName) == "S_OK") {
                                Pointer.PMainWindow.Dispatcher.Invoke(new Action(delegate() {
                                                                                     Pointer.PMainWindow.TableChangeCounter--;
                                                                                     if (Pointer.PMainWindow.TableChangeCounter == 0) {
                                                                                         Pointer.PMainWindow.ReqScheme(Pointer.PMainWindow.CurrentSchema);
                                                                                         Pointer.PMainWindow.LogWrite("Save complete");
                                                                                     }
                                                                                 }));
                            }
                            else {
                                Pointer.PMainWindow.Dispatcher.Invoke(new Action(delegate() {
                                                                                     Pointer.PMainWindow.LogWrite("Scheme save error");
                                                                                 }));
                            }
                        }
                        if (fex.GetStr(MainWindow.ArgCommandName) == "UpdateSchemeRow")
                        {
                            if (fex.GetStr(MainWindow.ArgErrorCodeName) == "S_OK")
                            {
                                Pointer.PMainWindow.Dispatcher.Invoke(new Action(delegate()
                                {
                                    Pointer.PMainWindow.TableChangeCounter--;
                                    if (Pointer.PMainWindow.TableChangeCounter == 0)
                                    {
                                        Pointer.PMainWindow.ReqScheme(Pointer.PMainWindow.CurrentSchema);
                                        Pointer.PMainWindow.LogWrite("Save complete");
                                    }
                                }));
                            }
                            else
                            {
                                Pointer.PMainWindow.Dispatcher.Invoke(new Action(delegate()
                                {
                                    Pointer.PMainWindow.LogWrite("Scheme Update error");
                                }));
                            }
                        }

                        if (fex.GetStr(MainWindow.ArgCommandName) == "DeleteSchemeRow")
                        {
                            if (fex.GetStr(MainWindow.ArgErrorCodeName) == "S_OK")
                            {
                                Pointer.PMainWindow.Dispatcher.Invoke(new Action(delegate()
                                {
                                    Pointer.PMainWindow.TableChangeCounter--;
                                    if (Pointer.PMainWindow.TableChangeCounter == 0)
                                    {
                                        Pointer.PMainWindow.ReqScheme(Pointer.PMainWindow.CurrentSchema);
                                        Pointer.PMainWindow.LogWrite("Save complete");
                                    }
                                }));
                            }
                            else
                            {
                                Pointer.PMainWindow.Dispatcher.Invoke(new Action(delegate()
                                {
                                    Pointer.PMainWindow.LogWrite("Scheme Delete error");
                                }));
                            }
                        }
                    }
                }
            }
        }
コード例 #2
0
        public void OnEvent(BaseEvent evt)
        {
            using (var l = new Logger("Listener")) {
                if (evt is HeatChangeEvent) {
                    var hce = evt as HeatChangeEvent;
                    if (hce.HeatNumber != CurrentHeatNumber) {
                        CurrentHeatNumber = hce.HeatNumber;
                        Program.Reset();
                    }
                }

                if (evt is LanceEvent) {
                    var le = evt as LanceEvent;
                    Program.LancePosition = le.LanceHeight;
                }

                if (evt is SublanceTemperatureEvent) {
                    var ste = evt as SublanceTemperatureEvent;

                    //Program.WaitSublanceData.Enabled = false;

                    const int maxT = 1770;
                    const int minT = 1550;
                    if ((ste.SublanceTemperature < maxT) && (ste.SublanceTemperature > minT)) {
                        Program.WaitSublanceData.Enabled = false;
                        Program.Data.CurrentT = ste.SublanceTemperature;

                        Program.Data.CurrentC = Program.FixedCalcCarbone;
                        l.msg("Calc carbone = {0}", Program.FixedCalcCarbone);

                        l.msg("SublanceTemperature = " + ste.SublanceTemperature);

                        Program.IsUncorrectMetering = false;

                        Program.Iterator();
                    }
                    else {
                        if (ste.SublanceTemperature == 1111)
                            Program.IsUncorrectMetering = false;
                        else {
                            Program.IsUncorrectMetering = true;
                            l.err("Uncorrect temperature data = " + ste.SublanceTemperature);
                        }
                    }
                }
                if (evt is SublanceCEvent) {
                    var sce = evt as SublanceCEvent;
                    //Program.WaitSublanceData.Enabled = false;
                    //Program.Data.CurrentC = sce.C;
                    //l.msg("sce.C = " + sce.C);
                    Program.Iterator();
                }
                if (evt is BlowingEvent) {
                    var be = evt as BlowingEvent;
                    Program.CurrentOxygen = be.O2TotalVol;
                    CurrentOxigen = be.O2TotalVol;

                    Program.Iterator();
                }
                if (evt is SublanceStartEvent) {
                    var sse = evt as SublanceStartEvent;
                    if (sse.SublanceStartFlag == 1) {
                        l.msg("Sublance begin metering");
                        const int uvm = 3;
                        if (Program.LanceMode == uvm) {
                            Program.WaitSublanceData.Interval = Program.MeteringWaitTimeUVM*1000;
                            Program.WaitSublanceData.Enabled = true;
                        }
                        else {
                            Program.WaitSublanceData.Interval = Program.MeteringWaitTimeManual*1000;
                            Program.WaitSublanceData.Enabled = true;
                        }
                    }
                    if (sse.SublanceStartFlag == 0) // sublance end metering
                    {
                        if (!Program.IsAfterMetering) {
                            Program.IsAfterMetering = true;
                            Program.MeteringOxygen = CurrentOxigen;
                        }
                    }
                }
                if (evt is ModeLanceEvent) {
                    var mle = evt as ModeLanceEvent;
                    Program.LanceMode = mle.LanceMode;
                }
                if (evt is CalculatedCarboneEvent) {
                    var cce = evt as CalculatedCarboneEvent;
                    //Program.CurrentCalcCarbone = cce.CarbonePercent;
                }
                if (evt is FixDataMfactorModelEvent) {
                    //Program.FixedCalcCarbone = Program.CurrentCalcCarbone;
                }

                if (evt is FlexEvent) {
                    var fxe = evt as FlexEvent;
                    if (fxe.Operation.StartsWith("ConverterUI.TargetValues")) {
                        var key = "C";
                        l.msg(fxe.ToString());
                        try {
                            Program.Data.TargetC = (double) fxe.Arguments[key];
                            //Program.Data.CurrentC = (double)fxe.Arguments[key];
                        }
                        catch (Exception e) {
                            l.err("ConverterUI.TargetValues - {1} : \n{0}", e.ToString(), key);
                        }

                        key = "T";
                        try {
                            Program.Data.TargetT = (int) fxe.Arguments[key];
                        }
                        catch (Exception e) {
                            l.err("ConverterUI.TargetValues - {1} : \n{0}", e.ToString(), key);
                        }

                        key = "TuMin";
                        try {
                            Program.Data.TargetTuMin = (int)fxe.Arguments[key];
                        }
                        catch (Exception e) {
                            l.err("ConverterUI.TargetValues - {1} : \n{0}", e.ToString(), key);
                        }

                        key = "TuMax";
                        try {
                            Program.Data.TargetTuMax = (int)fxe.Arguments[key];
                        }
                        catch (Exception e) {
                            l.err("ConverterUI.TargetValues - {1} : \n{0}", e.ToString(), key);
                        }
                    }
                    if (fxe.Operation.StartsWith("ConverterUI.RBBAccept")) {
                        var key = "SId";
                        l.msg(fxe.ToString());
                        try {
                            //if (Program.SidB == (Guid)fxe.Arguments[key])
                            //{
                            key = "AutomaticStop";
                            Program.AutomaticStop = (bool) fxe.Arguments[key];
                            if (!Program.IsActualOxygen) {
                                Program.EndBlowingOxygen = Program.CorrectionOxyT + Program.CurrentOxygen;
                                Program.IsActualOxygen = true;
                            }

                            key = "EndNow";
                            if ((bool) fxe.Arguments[key])
                                Program.EndNowHandler();
                            else
                                Program.EndMeteringAccept();

                            //key = "EndBlowingOxygen";
                            //Program.EndBlowingOxygen = (int) fxe.Arguments[key];
                            //}
                        }
                        catch (Exception e) {
                            l.err("ConverterUI.RBBAccept - {1} : \n{0}", e.ToString(), key);
                        }
                    }

                    if (fxe.Operation.StartsWith("CarbonSwitcher.Result")) {
                        var key = "C";
                        //InstantLogger.msg(fxe.ToString());
                        try {
                            //Carbon = (double)fxe.Arguments[key];
                            Program.CurrentCalcCarbone = (double) fxe.Arguments[key];
                        }
                        catch (Exception e) {
                            InstantLogger.err("CarbonSwitcher.Result - {1} : \n{0}", e.ToString(), key);
                        }
                    }

                    if (fxe.Operation.StartsWith("CarbonSwitcher.DataFix")) {
                        l.msg(fxe.ToString());
                        Program.FixedCalcCarbone = Program.CurrentCalcCarbone;
                    }

                    if (fxe.Operation.StartsWith("SQL.Corrections")) {
                        var fex = new FlexHelper(fxe);
                        if (fex.GetStr(Implements.DBFlex.ArgCommandName) == "GetScheme") {
                            if (fex.GetStr(Implements.DBFlex.ArgErrorCodeName) == "S_OK") {
                                Program.MatrixT = Program.LoadMatrixTFromFlex(Program.MatrixTDescription, fex);
                            }
                        }
                    }
                }
            }
        }