/// <summary> /// 设置负载值 /// </summary> /// <param name="wAddr"></param> /// <param name="wDataSet"></param> /// <param name="er"></param> /// <returns></returns> public bool SetELData(int wAddr, CEL_SetPara wDataSet, out string er) { er = string.Empty; try { string cmd0 = "01"; string cmd1 = "01"; string wCmd = cmd0 + cmd1; string wData = string.Empty; string rData = string.Empty; int rLen = 9; wData += wDataSet.SaveEEPROM.ToString("X2"); // D0 ――>设定写EEPROM状态00:不擦除旧数据及写新数据 01:擦除旧数据 02:写新数据 wData += wDataSet.PWM_Status.ToString("X2"); //D1――>设定PWM状态 00:PWM_stop 01:PWM_start wData += wDataSet.PWM_Freq.ToString("X4"); //D2.D3=Data ――>设定PWM频率 wData += wDataSet.PWM_DutyCycle.ToString("X4"); //D4.D5=Data ――>设定PWM占空比 wData += wDataSet.Run_Status.ToString("X2"); //D6. ――>设定工作状态 00:停止 01:运行 wData += "00"; //D7. ――>设定工作功率 00:40W 01:80W for (int i = 0; i < ELCH; i++) //(D8-D12) X4 { //D8 ――>设定工作模式 00:CC模式 01:CV模式02:LED模式(1通道工作方式) wData += ((int)wDataSet.Run_Mode[i]).ToString("X2"); //D9.D10=Data ――>设定工作状态 工作数据 if (wDataSet.Run_Mode[i] == EMode.CC) { wData += ((int)(wDataSet.Run_Val[i] * 1000)).ToString("X4"); } else { wData += ((int)(wDataSet.Run_Val[i] * 10)).ToString("X4"); } //D11.D12=Data ――>设定工作状态 V_ON数据 wData += ((int)(wDataSet.Run_Von[i] * 10)).ToString("X4"); } wData = CalDataFromELCmd(wAddr, wCmd, wData); if (!SendCmdToELoad(wData, rLen, out rData, out er)) { return(false); } return(true); } catch (Exception ex) { er = ex.ToString(); return(false); } }
/// <summary> /// 设置负载值 /// </summary> /// <param name="wAddr"></param> /// <param name="wDataSet"></param> /// <param name="er"></param> /// <returns></returns> public bool SetELData(int wAddr, CEL_SetPara wDataSet, out string er) { er = string.Empty; try { int[] Val = new int[ELCH * 4]; for (int i = 0; i < ELCH; i++) { //设定工作模式--0x0A08 Val[i * ELCH + 0] = (int)wDataSet.Run_Mode[i]; //设定通道工作数据1--0x0A09 if (wDataSet.Run_Mode[i] == EMode.CC) { Val[i * ELCH + 1] = (int)(wDataSet.Run_Val[i] * 1000); } else { Val[i * ELCH + 1] = (int)(wDataSet.Run_Val[i] * 100); } //设定通道工作数据2--0x0A0A Val[i * ELCH + 2] = (int)(wDataSet.Run_Von[i] * 100); //设定通道工作数据3--0x0A0B Val[i * ELCH + 3] = 0; } if (!Write(wAddr, 0x0A08, Val, out er)) { return(false); } return(true); } catch (Exception ex) { er = ex.ToString(); return(false); } }
/// <summary> /// 设置负载值 /// </summary> /// <param name="wAddr"></param> /// <param name="wDataSet"></param> /// <param name="er"></param> /// <returns></returns> public bool SetELData(int wAddr, CEL_SetPara wDataSet, out string er) { er = string.Empty; try { string cmd0 = "01"; string cmd1 = "01"; string wCmd = cmd0 + cmd1; string wData = string.Empty; string rData = string.Empty; int rLen = 0; wData += wDataSet.SaveEEPROM.ToString("X2"); //D0 wData += wDataSet.OTP_Start.ToString("X2"); //D1 wData += wDataSet.OTP_Stop.ToString("X2"); //D2 wData += wDataSet.PWM_Status.ToString("X2"); //D3 wData += wDataSet.PWM_Freq.ToString("X4"); //D4,D5 wData += wDataSet.PWM_DutyCycle.ToString("X4"); //D6,D7 wData += wDataSet.Run_Status.ToString("X2"); //D8 wData += wDataSet.Run_Power[0].ToString("X2"); //D9 for (int i = 0; i < ELCH; i++) { wData += ((int)wDataSet.Run_Mode[i]).ToString("X2"); //D10 if (wDataSet.Run_Mode[i] == EMode.CC) { wData += ((int)(wDataSet.Run_Val[i] * 1000)).ToString("X4"); //D11,D12 } else { wData += ((int)(wDataSet.Run_Val[i] * 100)).ToString("X4"); } wData += ((int)(wDataSet.Run_Von[i] * 100)).ToString("X4"); //D13,D14 } wData = CalDataFromELCmd(wAddr, wCmd, wData); if (!SendCmdToELoad(wData, rLen, out rData, out er)) { return(false); } return(true); } catch (Exception ex) { er = ex.ToString(); return(false); } }
/// <summary> /// 设置负载 /// </summary> /// <param name="wAddr"></param> /// <param name="wDataSet"></param> /// <param name="er"></param> /// <returns></returns> public bool SetELData(int wAddr, CEL_SetPara wDataSet, out string er) { return(_devMon.SetELData(wAddr, wDataSet, out er)); }