Esempio n. 1
0
        /// <summary>
        /// </summary>
        /// <param name="aeqp"/>
        /// <param name="hb"/>
        /// <param name="state">SETUP/BUSY/IDLERUN/IDLE/WAIT_SETUP(PM/DOUWN 호출 안됨)</param>
        /// <param name="handled"/>
        public void LOADING_STATE_CHANGED0(Mozart.SeePlan.Simulation.AoEquipment aeqp, Mozart.SeePlan.Simulation.IHandlingBatch hb, Mozart.SeePlan.Simulation.LoadingStates state, ref bool handled)
        {
            var eqp = aeqp.ToFabAoEquipment();
            var now = eqp.NowDT;

            if (eqp.IsParallelChamber)
            {
                return;
            }

            if (ModelContext.Current.EndTime == now)
            {
                return;
            }

            //PM/Down 이벤트 예외사항 처리
            if (SimHelper.IgnoreStateChange(eqp, state))
            {
                return;
            }

            var lot = hb.ToFabLot();

            if (state == LoadingStates.SETUP || state == LoadingStates.BUSY)
            {
                SetCurrentMask(eqp, lot);
            }

            eqp.OnStateChanged(state, lot);
        }
Esempio n. 2
0
        public void CHAMBER_LOADING_STATE_CHANGED0(Mozart.SeePlan.Simulation.AoEquipment aeqp, ChamberInfo chamber, IHandlingBatch hb, LoadingStates state, ref bool handled)
        {
            var eqp = aeqp.ToFabAoEquipment();
            var now = eqp.NowDT;

            if (ModelContext.Current.EndTime == now)
            {
                return;
            }

            var subEqp = eqp.FindSubEqp(chamber);

            if (subEqp == null)
            {
                return;
            }

            var lot = hb.ToFabLot();

            //if (eqp.EqpID == "THCVD300" && lot != null && lot.LotID == "TH011661N0H")
            //    Console.WriteLine("B");

            //PM/Down 이벤트 예외사항 처리
            if (SimHelper.IgnoreStateChange(eqp, state))
            {
                return;
            }

            if (state == LoadingStates.SETUP || state == LoadingStates.BUSY)
            {
                SetCurrentMask(eqp, lot);
            }

            subEqp.OnStateChanged(eqp, state, lot);
        }
        public static object GetBattleTechFloat(TsEnvironment env, object[] inputs)
        {
            int    statScope = env.ToInt(inputs[0]);
            string statName  = env.ToString(inputs[1]);

            Main.Logger.Log($"[GetBattleTechFloat] Triggered with scope {statScope} and statName {statName}.");

            StatCollection statCollection = SimHelper.GetStatCollection(statScope);

            if (statCollection == null) // GUARD
            {
                Main.Logger.LogError($"[GetBattleTechFloat] StatCollection is null for {statScope}");
                return(null);
            }

            if (statCollection.ContainsStatistic(statName))
            {
                float stat = statCollection.GetValue <float>(statName);
                Main.Logger.Log($"[GetBattleTechFloat] Stat {statName} found with value {stat}.");
                return(stat);
            }

            Main.Logger.LogError($"[GetBattleTechFloat] Stat {statName} does not exist for conversation operation.");
            return(null);
        }
Esempio n. 4
0
        public static object EvaluateBattleTechString(TsEnvironment env, object[] inputs)
        {
            int    statScope    = env.ToInt(inputs[0]);
            string statName     = env.ToString(inputs[1]);
            int    operation    = env.ToInt(inputs[2]);
            string compareValue = env.ToString(inputs[3]);

            Main.Logger.Log($"[EvaluateBattleTechString] Triggered with scope '{statScope}', statName '{statName}', operation '{operation}', compareValue '{compareValue}");

            StatCollection statCollection = SimHelper.GetStatCollection(statScope);

            if (statCollection.ContainsStatistic(statName))
            {
                string stat = statCollection.GetValue <string>(statName);

                switch (operation)
                {
                case 1: // equal to
                    return(stat == compareValue);

                case 2: // not equal to
                    return(stat != compareValue);

                default:
                    return(false);
                }
            }

            Main.Logger.Log($"[EvaluateBattleTechString] Stat {statName} does not exist for conversation operation.");
            return(false);
        }
Esempio n. 5
0
        /// <summary>
        /// </summary>
        /// <param name="entity"/>
        /// <param name="now"/>
        /// <param name="target"/>
        /// <param name="factor"/>
        /// <param name="ctx"/>
        /// <returns/>
        public WeightValue MASK_MOVE_PREVENT_PRIORITY(Mozart.Simulation.Engine.ISimEntity entity, DateTime now, Mozart.Simulation.Engine.ActiveObject target, Mozart.SeePlan.DataModel.WeightFactor factor, Mozart.SeePlan.Simulation.IDispatchContext ctx)
        {
            if (factor.Factor == 0)
            {
                return(new WeightValue(0));
            }

            FabLot lot = entity as FabLot;
            var    eqp = target as FabAoEquipment;

            if (SimHelper.IsMaskConst(lot) == false)
            {
                return(new WeightValue(0));
            }

            var currentMask = eqp.InUseMask;

            if (currentMask == null)
            {
                return(new WeightValue(0));
            }

            float score = 0f;

            if (currentMask == lot.CurrentMask)
            {
                score = 1f;
            }

            return(new WeightValue(score * factor.Factor));
        }
Esempio n. 6
0
        private void btnRead_Click(object sender, EventArgs e)
        {
            var dskq = from sd in SimHelper.ReadFromTextLog()
                       select new
            {
                sd.MaSim,
                sd.Sim.SoSim,
                sd.TgBd,
                sd.TgKt,
                MaKh = sd.Sim?.HdDk != null ? sd.Sim.HdDk.MaKh + "" : ""
            };

            Data.DataSource = dskq.ToList();
        }
Esempio n. 7
0
        private void Simulate_Click(object sender, RoutedEventArgs e)
        {
            var   context = (SimQueueData)this.DataContext;
            Model selectedModel;
            var   potentialMatch = models.Where((model) =>
            {
                return(model.dispName.Equals(context.SelectedModel));
            });

            if (potentialMatch.Count() > 0)
            {
                selectedModel = potentialMatch.ElementAt(0);
            }
            else
            {
                return;
            }
            var guid    = Guid.NewGuid().ToString().Substring(0, 8);
            var simList = new List <string>();

            foreach (var sim in selectedModel.model.Keys)
            {
                if (selectedModel.timeModel.Count != 0)
                {
                    foreach (var time in selectedModel.timeModel.Keys)
                    {
                        simList.Add(SimHelper.CreateSimForModel(sim, time, context.PTRMode, context.FixedIterationOrError != 0, context.Sims.ToList(), !context.DisableStatWeights,
                                                                context.ReforgeEnabled, context.ReforgeHaste, context.ReforgeCrit, context.ReforgeVers, context.ReforgeMastery, context.ReforgeAmount,
                                                                context.ReforgeStepSize, context.Threads, guid, false, true));
                    }
                }
                else
                {
                    simList.Add(SimHelper.CreateSimForModel(sim, null, context.PTRMode, context.FixedIterationOrError != 0, context.Sims.ToList(), !context.DisableStatWeights,
                                                            context.ReforgeEnabled, context.ReforgeHaste, context.ReforgeCrit, context.ReforgeVers, context.ReforgeMastery, context.ReforgeAmount,
                                                            context.ReforgeStepSize, context.Threads, guid, false, true));
                }
            }
            var window = new SimcRunner();

            window.Top             = App.Current.MainWindow.Top;
            window.Left            = App.Current.MainWindow.Left;
            App.Current.MainWindow = window;
            LoadMagicsimLoadout((SimcRunnerData)window.DataContext, simList, context.Processes, selectedModel);
            this.Close();
            window.Show();
        }
Esempio n. 8
0
        protected void btnLogSms_Click(object sender, EventArgs e)
        {
            var dskq = from sd in SimHelper.ReadFromTextLog()
                       select new
            {
                sd.MaSim,
                sd.TgBd,
                sd.TgKt,
                MaKh = sd.Sim?.HdDk != null ? sd.Sim.HdDk.MaKh + "" : ""
            };

            gvLogSms.DataSource = dskq;
            gvLogSms.DataBind();

            rdlKh.DataSource = (from kh in _khBus.TatCa()
                                join kq in dskq.Where(m => m.MaKh != "") on kh.MaKh equals int.Parse(kq.MaKh)
                                select new { kh.MaKh, kh.TenKh }).Distinct();
            rdlKh.DataTextField  = "MaKh";
            rdlKh.DataValueField = "MaKh";
            rdlKh.DataBind();
            drlLogSmsKh_GetData();
        }
Esempio n. 9
0
        /*
         * Looks up any stats element and replaces that over the placeholder
         */
        private string InterpolateStats(string text, string[] lookups)
        {
            if (lookups.Length < 3)
            {
                Main.Logger.LogError($"[InterpolateStats] {{Expression}} needs to be in the format of {{CI.StatType.StatKey}}");
                return($"[InterpolateStats] {{Expression}} needs to be in the format of {{CI.StatType.StatKey}}");
            }

            string         statType       = lookups[1];
            string         statName       = lookups[2];
            StatCollection statCollection = SimHelper.GetStatCollection(statType);

            if (statCollection.ContainsStatistic(statName))
            {
                string statValue = Convert.ToString(statCollection.GetStatistic(statName).CurrentValue.objVal);
                return(statValue);
            }
            else
            {
                Main.Logger.LogError($"[InterpolateStats] Stat '{statName}' does not exist for stat collection '{statType}'");
                return($"[InterpolateStats] Stat {statName} does not exist for stat collection {statType}");
            }
        }
        private void drlLogSmsKh_GetData()
        {
            if (rdlKh.SelectedIndex <= -1)
            {
                return;
            }
            var maKh = int.Parse(rdlKh.SelectedValue);
            var kq   = from sd in SimHelper.ReadFromTextLog().Where(m => m.Sim != null)
                       where sd.Sim.HdDk.MaKh == maKh
                       select new
            {
                sd.MaSim,
                sd.Sim.SoSim,
                sd.TgBd,
                sd.TgKt,
                Money = $"{SimHelper.CaculateSmsMoney(new List<Sd> { sd }):n0}"
            };


            if (ViewState["vsLogSmsKh"] != null && JsonConvert.SerializeObject(kq) == (string)ViewState["vsLogSmsKh"])
            {
                var data       = (string)ViewState["vsLogSmsKh"];
                var definition = new[] { new { MaSim = 0, SoSim = "", TgBd = new DateTime(), TgKt = new DateTime(), Money = "0" } };
                var dynObject  = JsonConvert.DeserializeAnonymousType(data, definition);

                gvLogSmsKh.DataSource = dynObject.ToList();
            }
            else
            {
                var data = JsonConvert.SerializeObject(kq);
                gvLogSmsKh.DataSource   = kq.ToList();
                ViewState["vsLogSmsKh"] = data;
            }


            gvLogSmsKh.DataBind();
        }
        private void gvLogSmsBindFilter()
        {
            if (txtDateFrom.Text == "" || txtDateTo.Text == "")
            {
                return;
            }
            DateTime dtTxtFrom = DateTime.Parse(txtDateFrom.Text);
            DateTime dtTxtTo   = DateTime.Parse(txtDateTo.Text);

            DateTime dtFrom = new DateTime(dtTxtFrom.Year, dtTxtFrom.Month, dtTxtFrom.Day, 0, 0, 0);
            DateTime dtTo   = new DateTime(dtTxtTo.Year, dtTxtTo.Month, dtTxtTo.Day, 23, 59, 59);

            var dskq = from sd in SimHelper.ReadFromTextLog()
                       where sd.TgBd.Value.CompareTo(dtFrom) >= 0

                       && sd.TgKt.Value.CompareTo(dtTo) <= 0
                       select new
            {
                sd.MaSim,
                sd.Sim.SoSim,
                sd.TgBd,
                sd.TgKt,
                MaKh = sd.Sim?.HdDk != null ? sd.Sim.HdDk.MaKh + "" : ""
            };

            gvLogSms.DataSource = dskq.ToList();
            gvLogSms.DataBind();

            rdlKh.DataSource = (from kh in _khBus.TatCa()
                                join kq in dskq.Where(m => m.MaKh != "") on kh.MaKh equals int.Parse(kq.MaKh)
                                select new { kh.MaKh, kh.TenKh }).Distinct();
            rdlKh.DataTextField  = "MaKh";
            rdlKh.DataValueField = "MaKh";
            rdlKh.DataBind();
            drlLogSmsKh_GetData();
        }
 protected void btnLogSmsRandom_Click(object sender, EventArgs e)
 {
     SimHelper.GenerateLogs(100);
 }
Esempio n. 13
0
        private void continueButton_Click(object sender, RoutedEventArgs e)
        {
            var guid    = Guid.NewGuid().ToString().Substring(0, 8);
            var window  = new SimcRunner();
            var context = (QuickSimCustomizationData)this.DataContext;

            window.Top             = App.Current.MainWindow.Top;
            window.Left            = App.Current.MainWindow.Left;
            App.Current.MainWindow = window;
            var nameCache = new HashSet <string>();
            var simList   = new List <string>();
            var threads   = Math.Min(8, Environment.ProcessorCount);
            var profile   = "";

            Model selectedModel;
            var   potentialMatch = models.Where((model) =>
            {
                return(model.dispName.Equals(context.SelectedModel));
            });

            if (potentialMatch.Count() > 0)
            {
                selectedModel = potentialMatch.ElementAt(0);
            }
            else
            {
                return;
            }


            if (CharacterSourceControl.SelectedItem as TabItem == SimC)
            {
                profile = SimCInput.Text;
            }
            else
            {
                Properties.Settings.Default.characterName = context.Name;
                Properties.Settings.Default.realmName     = context.SelectedServer;
                Properties.Settings.Default.regionName    = context.SelectedRegion;
                profile = String.Format("armory=" + context.SelectedRegion + "," + context.SelectedServer + "," + context.Name);
            }

            foreach (var sim in selectedModel.model.Keys)
            {
                if (selectedModel.timeModel.Count != 0)
                {
                    foreach (var time in selectedModel.timeModel.Keys)
                    {
                        simList.Add(SimHelper.CreateSimForModel(sim, time, false, true, new List <Sim>()
                        {
                            new Sim()
                            {
                                Name = guid, Profile = profile
                            }
                        }, !context.DisableStatWeights,
                                                                false, false, false, false, false, 0, 0, threads, guid, context.DisableBuffs, false));
                    }
                }
                else
                {
                    simList.Add(SimHelper.CreateSimForModel(sim, null, false, true, new List <Sim>()
                    {
                        new Sim()
                        {
                            Name = guid, Profile = profile
                        }
                    }, !context.DisableStatWeights,
                                                            false, false, false, false, false, 0, 0, threads, guid, context.DisableBuffs, false));
                }
            }

            LoadMagicsimLoadout((SimcRunnerData)window.DataContext, simList, 1, selectedModel);
            this.Close();
            window.Show();
        }