コード例 #1
0
        private void CmdHandle(EquCYGCmd input)
        {
            Task task = new Task((state) =>
            {
                EquCYGCmd pCYGCmd = state as EquCYGCmd;
                OutputRunInfo(rtxtOutput, "处理命令,命令代码:" + pCYGCmd.CmdCode + "  编码:" + pCYGCmd.SampleCode);

                Thread.Sleep(5000);
                pCYGCmd.ResultCode = 1;
                pCYGCmd.FinishTime = DateTime.Now;
                pCYGCmd.DataFlag   = 1;
                this.EquDber.Update(pCYGCmd);
                OutputRunInfo(rtxtOutput, "取样成功,编码:" + pCYGCmd.SampleCode);
                EquCYGSample equcygsample = this.EquDber.Entity <EquCYGSample>(" where SampleCode='" + pCYGCmd.SampleCode + "'");
                if (equcygsample != null)
                {
                    equcygsample.SampleCode = "";
                    equcygsample.DataFlag   = 0;
                    this.EquDber.Update(equcygsample);
                }
                OutputRunInfo(rtxtOutput, "清理样柜成功,编码:" + pCYGCmd.SampleCode);
                autoResetEvent.Set();
            }, input);

            task.Start();
        }
コード例 #2
0
        private void CreateMainTask()
        {
            taskSimpleScheduler = new TaskSimpleScheduler();

            autoResetEvent.Reset();

            taskSimpleScheduler.StartNewTask("模拟业务", () =>
            {
                if (!this.IsStartSimulator)
                {
                    return;
                }

                // 心跳
                this.EquDber.Execute("update " + EntityReflectionUtil.GetTableName <EquCYGSignal>() + " set TagValue=@TagValue where TagName=@TagName", new { TagName = GlobalVars.EquHeartbeatName, TagValue = DateTime.Now.ToString() });

                // 控制命令
                EquCYGCmd pCYGCmd = this.EquDber.Entity <EquCYGCmd>("where DataFlag=0 order by CreateDate desc");
                if (pCYGCmd != null)
                {
                    CmdHandle(pCYGCmd);

                    autoResetEvent.WaitOne();
                }
            }, 3000);
        }
コード例 #3
0
        /// <summary>
        /// 连锁确定存样柜
        /// </summary>
        /// <param name="czplx"></param>
        /// <param name="yplx"></param>
        /// <returns></returns>
        private bool AutoCheckSentInfCYGBill(InfCYGControlCMDDetail cmcscygcontrolcmddetail, Action <string, eOutputType> output)
        {
            bool returnvalue = false;

            if (cmcscygcontrolcmddetail.Status == "正在处理")
            {
                EquCYGCmd    equcygcmd    = new EquCYGCmd();
                EquCYGSample equcygsample = this.EquDber.Entity <EquCYGSample>(" where SampleCode='" + cmcscygcontrolcmddetail.MakeCode + "'");
                if (equcygsample == null)
                {
                    cmcscygcontrolcmddetail.ResultCode = eEquInfCmdResultCode.默认.ToString();
                    cmcscygcontrolcmddetail.Status     = "处理完成";
                    cmcscygcontrolcmddetail.Errors     = "存样柜无此样:请处理!";
                    returnvalue = false;
                }
                else
                {
                    equcygcmd.MachineCode          = equcygsample.MachineCode;
                    equcygcmd.SampleCode           = cmcscygcontrolcmddetail.MakeCode;
                    cmcscygcontrolcmddetail.Status = "等待结果";
                    if (this.EquDber.Insert(equcygcmd) > 0 && Dbers.GetInstance().SelfDber.Update(cmcscygcontrolcmddetail) > 0)
                    {
                        returnvalue = true;
                        output(string.Format("成功发送命令等待结果" + cmcscygcontrolcmddetail.MakeCode), eOutputType.Normal);
                    }
                }
            }
            if (cmcscygcontrolcmddetail.Status == "等待结果")
            {
                EquCYGCmd equcygcmds = this.EquDber.Entity <EquCYGCmd>(String.Format(" where SampleCode='{0}' order by createdate desc", cmcscygcontrolcmddetail.MakeCode));
                if (equcygcmds.ResultCode == 1)
                {
                    cmcscygcontrolcmddetail.ResultCode = eEquInfCmdResultCode.默认.ToString();
                    cmcscygcontrolcmddetail.Status     = "处理完成";
                    Dbers.GetInstance().SelfDber.Update(cmcscygcontrolcmddetail);
                    output(string.Format("取样成功" + cmcscygcontrolcmddetail.MakeCode), eOutputType.Normal);
                }
                else if (equcygcmds.ResultCode == 2)
                {
                    cmcscygcontrolcmddetail.ResultCode = eEquInfCmdResultCode.默认.ToString();
                    cmcscygcontrolcmddetail.Status     = "处理完成";
                    cmcscygcontrolcmddetail.Errors     = "存样柜系统异常:请处理!";
                    Dbers.GetInstance().SelfDber.Update(cmcscygcontrolcmddetail);
                    output(string.Format("取样失败" + cmcscygcontrolcmddetail.MakeCode), eOutputType.Normal);
                }
                else if (DateTime.Now - equcygcmds.CreateDate > TimeSpan.FromMinutes(15))
                {
                    cmcscygcontrolcmddetail.ResultCode = eEquInfCmdResultCode.默认.ToString();
                    cmcscygcontrolcmddetail.Status     = "处理完成";
                    cmcscygcontrolcmddetail.Errors     = "存样柜超时异常:请处理!";
                    Dbers.GetInstance().SelfDber.Update(cmcscygcontrolcmddetail);
                    output(string.Format("取样失败" + cmcscygcontrolcmddetail.MakeCode), eOutputType.Normal);
                }
            }
            return(returnvalue);
        }