/// <summary> /// 读取时序控制模式D8070 /// </summary> /// <param name="addr"></param> /// <param name="mode"></param> /// <param name="er"></param> /// <returns></returns> public bool ReadOnOffMode(int addr, out EOnOffMode mode, out string er) { mode = EOnOffMode.位机控制; er = string.Empty; try { string rData = string.Empty; if (!Read(addr, ERegType.D, 0x8070, 1, out rData, out er)) { return(false); } mode = (EOnOffMode)System.Convert.ToInt16(rData, 16); return(true); } catch (Exception ex) { er = ex.ToString(); return(false); } }
/// <summary> /// 时序控制模式D8070 /// </summary> /// <param name="addr"></param> /// <param name="mode"></param> /// <param name="er"></param> /// <returns></returns> public bool SetOnOffMode(int addr, EOnOffMode mode, out string er) { try { return(Write(addr, ERegType.D, 0x8070, (int)mode, out er)); } catch (Exception ex) { er = ex.ToString(); return(false); } }
/// <summary> /// 读取时序控制模式D8070 /// </summary> /// <param name="addr"></param> /// <param name="mode"></param> /// <param name="er"></param> /// <returns></returns> public bool ReadOnOffMode(int addr, out EOnOffMode mode, out string er) { return(_devFCMB.ReadOnOffMode(addr, out mode, out er)); }
/// <summary> /// 时序控制模式D8070 /// </summary> /// <param name="addr"></param> /// <param name="mode"></param> /// <param name="er"></param> /// <returns></returns> public bool SetOnOffMode(int addr, EOnOffMode mode, out string er) { return(_devFCMB.SetOnOffMode(addr, mode, out er)); }
/// <summary> /// 读取ONOFF时序 /// </summary> /// <param name="addr"></param> /// <param name="er"></param> /// <returns></returns> private bool readTimer(int addr, out string er) { er = string.Empty; try { _syncLock.AcquireWriterLock(-1); EOnOffMode mode = EOnOffMode.位机控制; Thread.Sleep(_delayMs); if (!_devFMB.ReadOnOffMode(addr, out mode, out er)) { Thread.Sleep(_delayMs); if (!_devFMB.ReadOnOffMode(addr, out mode, out er)) { er = _Mon[addr].ToString() + CLanguage.Lan("读ONOFF模式"); return(false); } } int runMin = 0; Thread.Sleep(_delayMs); if (!_devFMB.ReadTotalTime(addr, out runMin, out er)) { Thread.Sleep(_delayMs); if (!_devFMB.ReadTotalTime(addr, out runMin, out er)) { er = _Mon[addr].ToString() + "读总时间;"; return(false); } } List <COnOff> OnOff = null; Thread.Sleep(_delayMs); if (!_devFMB.ReadOnOffTime(addr, out OnOff, out er)) { Thread.Sleep(_delayMs); if (!_devFMB.ReadOnOffTime(addr, out OnOff, out er)) { er = _Mon[addr].ToString() + CLanguage.Lan("读时序时间") + ";"; return(false); } } _Mon[addr].Para.OnOff.mode = mode; _Mon[addr].Para.OnOff.TotalTime = runMin * 60; for (int i = 0; i < OnOff.Count; i++) { _Mon[addr].Para.OnOff.OnOff[i].OnOffTime = OnOff[i].OnOffTime; _Mon[addr].Para.OnOff.OnOff[i].OnTime = OnOff[i].OnTime; _Mon[addr].Para.OnOff.OnOff[i].OffTime = OnOff[i].OffTime; } _Mon[addr].Para.OnOff.op = EOP.读取OK; return(true); } catch (Exception ex) { er = ex.ToString(); return(false); } finally { _syncLock.ReleaseWriterLock(); } }