/// <summary> /// 读取快充模式 /// </summary> /// <param name="addr"></param> /// <param name="qcm">0x8007</param> /// <param name="qcv">0x8008</param> /// <param name="qci">0x8009</param> /// <param name="er"></param> /// <returns></returns> public bool ReadQCM(int addr, out EQCM qcm, out double qcv, out double qci, out string er) { qcm = EQCM.Normal; qcv = 0; qci = 0; er = string.Empty; try { int[] rVal = new int[3]; if (!Read(addr, ERegType.D, 0x8007, ref rVal, out er)) { return(false); } qcm = (EQCM)(rVal[0] % 0x100); qcv = ((double)rVal[1]) / 1000; qci = ((double)rVal[2]) / 1000; return(true); } catch (Exception ex) { er = ex.ToString(); return(false); } }
/// <summary> /// 快充模式配置D8007--D8009 /// </summary> /// <param name="addr"></param> /// <param name="qcm">8007</param> /// <param name="qcv">8008</param> /// <param name="qci">8009</param> /// <param name="er"></param> /// <returns></returns> public bool SetQCM(int addr, EQCM qcm, double qcv, double qci, out string er, bool cc2 = false) { try { int qcmVal = (int)qcm; if (cc2) { qcmVal += 0x600; } if (qcm == EQCM.MTK1_0 || qcm == EQCM.MTK2_0) { qcmVal = 0; } int qcvVal = (int)(qcv * 1000); int qciVal = (int)(qci * 1000); int[] wVal = new int[] { qcmVal, qcvVal, qciVal }; return(Write(addr, ERegType.D, 0x8007, wVal, out er)); } catch (Exception ex) { er = ex.ToString(); return(false); } }
/// <summary> /// 读取快充模式 /// </summary> /// <param name="addr"></param> /// <param name="er"></param> /// <returns></returns> private bool readQCM(int addr, out string er) { er = string.Empty; try { _syncLock.AcquireWriterLock(-1); EQCM qcm = EQCM.Normal; double qcv = 0; double qci = 0; Thread.Sleep(_delayMs); if (!_devFMB.ReadQCM(addr, out qcm, out qcv, out qci, out er)) { Thread.Sleep(_delayMs); if (!_devFMB.ReadQCM(addr, out qcm, out qcv, out qci, out er)) { er = _Mon[addr].ToString() + CLanguage.Lan("读快充模式") + ";"; return(false); } } _Mon[addr].Para.QCM.qcm = qcm; _Mon[addr].Para.QCM.qcv = qcv; _Mon[addr].Para.QCM.qci = qci; _Mon[addr].Para.QCM.op = EOP.读取OK; return(true); } catch (Exception ex) { er = ex.ToString(); return(false); } finally { _syncLock.ReleaseWriterLock(); } }
private void btnReadQCM_Click(object sender, EventArgs e) { try { btnReadQCM.Enabled = false; if (!checkSystem()) { return; } int addr = System.Convert.ToInt16(txtAddr.Text); string er = string.Empty; EQCM qcm = EQCM.Normal; double qcv = 0; double qci = 0; if (!comMon.ReadQCM(addr, out qcm, out qcv, out qci, out er)) { showInfo(CLanguage.Lan("读取快充模式地址") + "[" + addr.ToString("D2") + "]" + CLanguage.Lan("错误") + ":" + er, true); return; } cmbQCM.Text = qcm.ToString(); txtQCV.Text = qcv.ToString(); txtQCI.Text = qci.ToString(); showInfo(CLanguage.Lan("读取快充模式地址") + "[" + addr.ToString("D2") + "]OK"); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { btnReadQCM.Enabled = true; } }
private void btnWriteQCM_Click(object sender, EventArgs e) { try { btnWriteQCM.Enabled = false; if (!checkSystem()) { return; } int addr = System.Convert.ToInt16(txtAddr.Text); string er = string.Empty; EQCM qcm = (EQCM)Enum.Parse(typeof(EQCM), cmbQCM.Text); double qcv = System.Convert.ToDouble(txtQCV.Text); double qci = System.Convert.ToDouble(txtQCI.Text); if (!comMon.SetQCM(addr, qcm, qcv, qci, out er)) { showInfo(CLanguage.Lan("设置快充模式地址") + "[" + addr.ToString("D2") + "]" + CLanguage.Lan("错误") + ":" + er, true); return; } showInfo(CLanguage.Lan("设置快充模式地址") + "[" + addr.ToString("D2") + "]OK"); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { btnWriteQCM.Enabled = true; } }
/// <summary> /// 快充模式配置D8007 /// </summary> /// <param name="addr"></param> /// <param name="qcm"></param> /// <param name="er"></param> /// <returns></returns> public bool ReadQCM(int addr, out EQCM qcm, out double qcv, out double qci, out string er) { return(_devFCMB.ReadQCM(addr, out qcm, out qcv, out qci, out er)); }
/// <summary> /// 快充模式配置D8007 /// </summary> /// <param name="addr"></param> /// <param name="qcm"></param> /// <param name="er"></param> /// <returns></returns> public bool SetQCM(int addr, EQCM qcm, double qcv, double qci, out string er, bool cc2 = false) { return(_devFCMB.SetQCM(addr, qcm, qcv, qci, out er, cc2)); }