/// <summary> /// 发送开始采样命令 /// </summary> /// <returns></returns> bool SendSamplingCMD(bool isStart) { CurrentSampleCMD = new InfBeltSampleCmd { DataFlag = 0, InterfaceType = this.CurrentSampleMachine.InterfaceType, MachineCode = this.CurrentSampleMachine.EquipmentCode, ResultCode = eEquInfCmdResultCode.默认.ToString(), SampleCode = this.CurrentRCSampling.SampleCode, CmdCode = (isStart == true ? eEquInfSamplerCmd.开始采样.ToString() : eEquInfSamplerCmd.结束采样.ToString()) }; return(Dbers.GetInstance().SelfDber.Insert <InfBeltSampleCmd>(CurrentSampleCMD) > 0); }
/// <summary> /// 获取控制命令的执行结果 /// </summary> /// <param name="cmdId">控制命令记录Id</param> /// <returns></returns> public eEquInfCmdResultCode GetSampleCmdResult(string cmdId) { eEquInfCmdResultCode res; InfBeltSampleCmd beltSampleCmd = Dbers.GetInstance().SelfDber.Get <InfBeltSampleCmd>(cmdId); if (beltSampleCmd == null) { throw new ArgumentException("未找到采样控制命令,cmdId:" + cmdId); } Enum.TryParse <eEquInfCmdResultCode>(beltSampleCmd.ResultCode, out res); return(res); }
/// <summary> /// 发送采样命令 /// </summary> /// <returns></returns> bool SendSamplingCMD(eEquInfSamplerCmd cmd) { CurrentSampleCMD = new InfBeltSampleCmd { DataFlag = 0, InterfaceType = this.CurrentSampleMachine.InterfaceType, MachineCode = this.CurrentSampleMachine.EquipmentCode, ResultCode = eEquInfCmdResultCode.默认.ToString(), SampleCode = this.CurrentRCSampling == null ? "" : this.CurrentRCSampling.SampleCode, CmdCode = cmd.ToString() }; if (Dbers.GetInstance().SelfDber.Insert <InfBeltSampleCmd>(CurrentSampleCMD) > 0) { this.rTxtOutputer.Output("采样命令发送成功"); return(true); } return(false); }
/// <summary> /// 发送停止采样命令 /// </summary> /// <returns></returns> bool SendSamplingCMD(string machineCode) { InfBeltSampleCmd samplecmd = new InfBeltSampleCmd { DataFlag = 0, InterfaceType = GlobalVars.InterfaceType_HCJXCYJ, MachineCode = machineCode, ResultCode = eEquInfCmdResultCode.默认.ToString(), SampleCode = "", CmdCode = eEquInfSamplerCmd.系统暂停.ToString() }; if (Dbers.GetInstance().SelfDber.Insert <InfBeltSampleCmd>(samplecmd) > 0) { return(true); } return(false); }
/// <summary> /// 发送采样命令 /// </summary> /// <returns></returns> bool SendSamplingCMD(eEquInfSamplerCmd cmd) { CmcsCMEquipment Equipment = CommonDAO.GetInstance().GetCMEquipmentByMachineCode(this.CurrentMachineCode); InfBeltSampleCmd CurrentSampleCMD = new InfBeltSampleCmd { DataFlag = 0, InterfaceType = Equipment.InterfaceType, MachineCode = Equipment.EquipmentCode, ResultCode = eEquInfCmdResultCode.默认.ToString(), SampleCode = commonDAO.GetSignalDataValue(this.CurrentMachineCode, "采样编码"), CmdCode = cmd.ToString() }; if (Dbers.GetInstance().SelfDber.Insert <InfBeltSampleCmd>(CurrentSampleCMD) > 0) { return(true); } return(false); }
/// <summary> /// 同步采样命令 /// </summary> /// <param name="output"></param> /// <param name="MachineCode">设备编码</param> public void SyncSampleCmd(Action <string, eOutputType> output) { int res = 0; // 集中管控 > 第三方 foreach (InfBeltSampleCmd entity in BeltSamplerDAO.GetInstance().GetWaitForSyncBeltSampleCmd(this.MachineCode)) { bool isSuccess = false; // 需调整:命令中的水分等信息视接口而定 EquHCQSCYJSampleCmd samplecmdEqu = this.EquDber.Get <EquHCQSCYJSampleCmd>(entity.Id); if (samplecmdEqu == null) { isSuccess = this.EquDber.Insert(new EquHCQSCYJSampleCmd { // 保持相同的Id Id = entity.Id, SampleCode = entity.SampleCode, CmdCode = entity.CmdCode, ResultCode = entity.ResultCode, MachineCode = this.MachineCode, DataFlag = 0 }) > 0; } else { samplecmdEqu.SampleCode = entity.SampleCode; samplecmdEqu.CmdCode = entity.CmdCode; samplecmdEqu.ResultCode = entity.ResultCode; samplecmdEqu.DataFlag = 0; isSuccess = this.EquDber.Update(samplecmdEqu) > 0; } if (isSuccess) { entity.SyncFlag = 1; Dbers.GetInstance().SelfDber.Update(entity); res++; } } output(string.Format("同步采样计划 {0} 条(集中管控 > 第三方)", res), eOutputType.Normal); res = 0; // 第三方 > 集中管控 foreach (EquHCQSCYJSampleCmd entity in this.EquDber.Entities <EquHCQSCYJSampleCmd>("where DataFlag=2 and datediff(dd,CreateDate,getdate())=0")) { InfBeltSampleCmd samplecmdInf = Dbers.GetInstance().SelfDber.Get <InfBeltSampleCmd>(entity.Id); if (samplecmdInf == null) { continue; } //samplecmdInf.Point1 = entity.Point1; //samplecmdInf.Point2 = entity.Point2; //samplecmdInf.Point3 = entity.Point3; //samplecmdInf.Point4 = entity.Point4; //samplecmdInf.Point5 = entity.Point5; //samplecmdInf.Point6 = entity.Point6; if (entity.ResultCode.Contains("失败")) { samplecmdInf.ResultCode = eEquInfCmdResultCode.失败.ToString(); commonDAO.SaveEquInfHitch(this.MachineCode, DateTime.Now, entity.ResultCode); } else { samplecmdInf.ResultCode = entity.ResultCode; } if (Dbers.GetInstance().SelfDber.Update(samplecmdInf) > 0) { // 我方已读 entity.DataFlag = 3; this.EquDber.Update(entity); res++; } } output(string.Format("同步采样计划 {0} 条(第三方 > 集中管控)", res), eOutputType.Normal); }
/// <summary> /// 同步控制命令 /// </summary> /// <param name="output"></param> /// <returns></returns> public void SyncCmd(Action <string, eOutputType> output) { int res = 0; // 集中管控 > 第三方 foreach (InfBeltSampleCmd entity in BeltSamplerDAO.GetInstance().GetWaitForSyncBeltSampleCmd(Type == "入场" ? GlobalVars.InterfaceType_PDCYJ_In : GlobalVars.InterfaceType_PDCYJ_Out)) { bool isSuccess = false; EquPDCYJCmd pDCYControlCMD = this.EquDber.Get <EquPDCYJCmd>(entity.Id); if (pDCYControlCMD == null) { isSuccess = this.EquDber.Insert(new EquPDCYJCmd { // 保持相同的Id Id = entity.Id, DataFlag = 0, CreateDate = entity.CreateDate, SampleCode = entity.SampleCode, MachineCode = ConvertToInfMachineCode(entity.MachineCode), CmdCode = entity.CmdCode, ResultCode = eEquInfCmdResultCode.默认.ToString() }) > 0; } else { isSuccess = true; } if (isSuccess) { entity.SyncFlag = 1; Dbers.GetInstance().SelfDber.Update(entity); res++; } } output(string.Format("同步控制命令 {0} 条(集中管控 > 第三方)", res), eOutputType.Normal); res = 0; // 第三方 > 集中管控 foreach (EquPDCYJCmd entity in this.EquDber.Entities <EquPDCYJCmd>("where DataFlag=2")) { InfBeltSampleCmd beltSampleCmd = Dbers.GetInstance().SelfDber.Get <InfBeltSampleCmd>(entity.Id); if (beltSampleCmd == null) { continue; } // 更新执行结果等 beltSampleCmd.ResultCode = entity.ResultCode; beltSampleCmd.DataFlag = 3; if (Dbers.GetInstance().SelfDber.Update(beltSampleCmd) > 0) { // 我方已读 entity.DataFlag = 3; this.EquDber.Update(entity); res++; } } output(string.Format("同步控制命令 {0} 条(第三方 > 集中管控)", res), eOutputType.Normal); }