private void Update() { if (Input.GetKeyDown(KeyCode.F1)) { TimeScaleHelper.ShootPause(0.7f); } if (Input.GetKeyDown(KeyCode.F2)) { TimeScaleHelper.ShootPause(0.2f); } }
private void DoUpload() { CtrlWaiting waiting = new CtrlWaiting(() => { var ctrls = ControllerHelper.GetList("1=1"); if (ctrls.Count == 0) { WinInfoHelper.ShowInfoWindow(this, "没有控制器!"); return; } Maticsoft.BLL.SMT_TIMESCALE_INFO tsBll = new Maticsoft.BLL.SMT_TIMESCALE_INFO(); var models = tsBll.GetModelList(""); models = models.OrderBy(m => m.TIME_NO).ToList();//时段升序 Maticsoft.BLL.SMT_WEEKEX_INFO wbll = new Maticsoft.BLL.SMT_WEEKEX_INFO(); var weekexs = wbll.GetModelList(""); SmtLog.Info("设置", "上传时间段设置"); FrmDetailInfo.Show(false); FrmDetailInfo.AddOneMsg(string.Format("开始上传控制器时段:控制器数={0},时段数={1} ...", ctrls.Count, models.Count)); List <ManualResetEvent> eventList = new List <ManualResetEvent>(); foreach (var item in ctrls) { ManualResetEvent evt = new ManualResetEvent(false); eventList.Add(evt); ThreadPool.QueueUserWorkItem(new WaitCallback((o) => { try { var ctrl = ControllerHelper.ToController(item); using (IAccessCore acc = new WGAccess()) { if (acc.ClearTimeScales(ctrl)) { FrmDetailInfo.AddOneMsg(string.Format("清除控制器时间段成功:SN={0},IP={1},开始上传控制器时间段...", ctrl.sn, ctrl.ip)); foreach (var model in models) { var m = TimeScaleHelper.ToTimeScale(model); bool ret = acc.SetTimeScales(ctrl, m); if (!ret) { FrmDetailInfo.AddOneMsg(string.Format("上传控制器时间段失败:时段号={0},控制器IP={1}", model.TIME_NO, ctrl.ip), isRed: true); } else { FrmDetailInfo.AddOneMsg(string.Format("上传控制器时间段成功:时段号={0},控制器IP={1}", model.TIME_NO, ctrl.ip)); } } } else { FrmDetailInfo.AddOneMsg(string.Format("清除控制器时间段失败:SN={0},IP={1},结束该控制器上传...", ctrl.sn, ctrl.ip), isRed: true); } if (acc.SetHoliday(ctrl, new HolidayPrm() { IsClear = true, startDate = DateTime.Now, endDate = DateTime.Now.AddDays(1) })) { FrmDetailInfo.AddOneMsg(string.Format("清除控制器假期约束成功:SN={0},IP={1},开始上传假期约束...", ctrl.sn, ctrl.ip)); foreach (var w in weekexs) { bool ret = acc.SetHoliday(ctrl, new HolidayPrm() { IsClear = false, IsOnDuty = w.WEEKEX_ON_DUTY, startDate = w.WEEKEX_START_DATE, endDate = w.WEEKEX_END_DATE }); if (!ret) { FrmDetailInfo.AddOneMsg(string.Format("上传控制器假期约束失败:约束={0},起止时间={1}~{2},控制器IP={3}", w.WEEKEX_ON_DUTY ? "上班" : "假期", w.WEEKEX_START_DATE, w.WEEKEX_END_DATE, ctrl.ip), isRed: true); } else { FrmDetailInfo.AddOneMsg(string.Format("上传控制器假期约束成功:约束={0},起止时间={1}~{2},控制器IP={3}", w.WEEKEX_ON_DUTY ? "上班" : "假期", w.WEEKEX_START_DATE, w.WEEKEX_END_DATE, ctrl.ip)); } } } else { FrmDetailInfo.AddOneMsg(string.Format("清除控制器假期约束失败:SN={0},IP={1}", ctrl.sn, ctrl.ip), isRed: true); } } } catch (Exception ex) { FrmDetailInfo.AddOneMsg(string.Format("上传控制器时间段失败:SN={0},IP={1},异常信息:{2},结束该控制器上传...", item.SN_NO, item.IP, ex.Message), isRed: true); log.Error("上传控制器时间段失败,", ex); SmtLog.ErrorFormat("设置", "上传控制器时间段失败:SN={0},IP={1},异常信息:{2},结束该控制器上传...", item.SN_NO, item.IP, ex.Message); } finally { evt.Set(); } })); } foreach (var item in eventList) { item.WaitOne(60000); } FrmDetailInfo.AddOneMsg("结束控制器时段上传!"); }); waiting.Show(this); }