private string WriteParamRegionInside(FXRegionInfo[] infos) { List<byte[]> cmdList = new List<byte[]>(); FXRegionInfoList infoList = FXConfigReader.ParamRegionInfos[mFXModel]; try { foreach (FXRegionInfo info in infos) { if (infoList.Items.ContainsKey(info.Type)) { FXRegionInfoItem item = infoList.Items[info.Type]; info.SetClientValue(); byte[] cmdBytes = FXCommander1.CreateCommand(FXSeriesControl.STX, FXSeriesCmd.WriteProgram, infoList.From + item.Offset, item.Len, info.GetRegionValueStrArray()); cmdList.Add(cmdBytes); } } List<byte[]> readResultList; if (!this.mSerialPort.IsOpen) this.mSerialPort.Open(); readResultList = this.mSerialPort.Read(cmdList); this.mSerialPort.Close(); return null; } catch (System.Exception ex) { return ex.Message; } }
/// <summary> /// 这个方法在执行开始前打开串口,并负责在执行后关闭 /// </summary> /// <param name="infos"></param> /// <returns></returns> public string WriteParamRegion(FXRegionInfo[] infos) { return this.WriteParamRegionInside(infos); }