/// <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); }
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); }
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); }
/// <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)); }
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(); }
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(); }
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(); }
/* * 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); }
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(); }