/// <summary> /// 设置I2C运行参数 /// </summary> /// <param name="addr"></param> /// <param name="para"></param> /// <param name="er"></param> /// <returns></returns> public bool SetRunPara(int addr, CI2C_RunPara para, out string er) { er = string.Empty; try { if (!_Mon.ContainsKey(addr)) { er = "I2C地址[" + addr.ToString("D2") + "不存在"; return(false); } _Mon[addr].Para.wRunPara = para.Clone(); _Mon[addr].Para.wRunPara_OP = EOP.写入; return(true); } catch (Exception ex) { er = ex.ToString(); return(false); } finally { } }
/// <summary> /// 读取I2C设置参数状态 /// </summary> /// <param name="addr"></param> /// <param name="er"></param> /// <returns></returns> private bool readRunPara(int addr, out string er) { er = string.Empty; try { _syncLock.AcquireWriterLock(-1); CI2C_RunPara para = new CI2C_RunPara(); Thread.Sleep(_delayMs); if (!_devMon.ReadI2C_RunPara(addr, ref para, out er)) { Thread.Sleep(_delayMs); if (!_devMon.ReadI2C_RunPara(addr, ref para, out er)) { er = _Mon[addr].ToString() + "读参数;"; return(false); } } _Mon[addr].Para.rRunPara = para.Clone(); _Mon[addr].Para.rRunPara_OP = EOP.读取OK; return(true); } catch (Exception ex) { er = ex.ToString(); return(false); } finally { _syncLock.ReleaseWriterLock(); } }