| | |
| | | private static void WriteParameterData(object instance, ParameterData data) |
| | | { |
| | | SequenceContext context = (SequenceContext)instance; |
| | | if (data.Type == "Bool") |
| | | string name = $"DUTSetting.{data.Name}"; |
| | | |
| | | if (data.IsArray) |
| | | { |
| | | context.FileGlobals.SetValBoolean($"DUTSetting.{data.Name}", 1, bool.Parse(data.Value)); |
| | | } |
| | | else if (data.Type == "Int") |
| | | { |
| | | context.FileGlobals.SetValInteger64($"DUTSetting.{data.Name}", 1, int.Parse(data.Value)); |
| | | } |
| | | else if (data.Type == "Double") |
| | | { |
| | | context.FileGlobals.SetValNumber($"DUTSetting.{data.Name}", 1, double.Parse(data.Value)); |
| | | PropertyValueTypes type; |
| | | if (data.Type == "Bool") |
| | | { |
| | | type = PropertyValueTypes.PropValType_Boolean; |
| | | } |
| | | else if (data.Type == "Int") |
| | | { |
| | | type = PropertyValueTypes.PropValType_Number; |
| | | } |
| | | else if (data.Type == "Double") |
| | | { |
| | | type = PropertyValueTypes.PropValType_Number; |
| | | } |
| | | else |
| | | { |
| | | type = PropertyValueTypes.PropValType_String; |
| | | } |
| | | string[] arr = data.Value?.Split(',') ?? new string[0]; |
| | | if (arr.Length > 0) |
| | | { |
| | | context.FileGlobals.DeleteSubProperty(name, 2); |
| | | |
| | | context.FileGlobals.NewSubProperty(name, type, true, null, 1); |
| | | context.FileGlobals.GetPropertyObject(name, 0).SetNumElements(arr.Length); |
| | | for (int i = 0; i < arr.Length; i++) |
| | | { |
| | | if (type == PropertyValueTypes.PropValType_String) |
| | | { |
| | | context.FileGlobals.SetValString($"{name}[{i}]", 0, arr[i]); |
| | | } |
| | | if (data.Type == "Int") |
| | | { |
| | | context.FileGlobals.SetValNumber($"{name}[{i}]", 0, int.Parse(arr[i])); |
| | | } |
| | | if (data.Type == "Double") |
| | | { |
| | | context.FileGlobals.SetValNumber($"{name}[{i}]", 0, double.Parse(arr[i])); |
| | | } |
| | | if (data.Type == "Bool") |
| | | { |
| | | context.FileGlobals.SetValBoolean($"{name}[{i}]", 0, bool.Parse(arr[i])); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | context.FileGlobals.SetValString($"DUTSetting.{data.Name}", 1, data.Value); |
| | | if (data.Type == "Bool") |
| | | { |
| | | context.FileGlobals.SetValBoolean(name, 1, bool.Parse(data.Value)); |
| | | } |
| | | else if (data.Type == "Int") |
| | | { |
| | | context.FileGlobals.SetValNumber(name, 1, int.Parse(data.Value)); |
| | | } |
| | | else if (data.Type == "Double") |
| | | { |
| | | context.FileGlobals.SetValNumber(name, 1, double.Parse(data.Value)); |
| | | } |
| | | else |
| | | { |
| | | context.FileGlobals.SetValString(name, 1, data.Value); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | private static string GetDataFilePath() |
| | | { |
| | | string path = ParameterUtil.GetCommonParameterValue("ShareConfig", out _); |
| | | if (path == null) |
| | | { |
| | | path = Path.Combine(RegUtil.GetLocaltion(), "Config"); |
| | | } |
| | | return path; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据产品型号写配置 |
| | | /// </summary> |
| | | /// <param name="model">产品型号</param> |
| | | /// <param name="instance">TestStand上下文</param> |
| | | /// <param name="errMsg">异常信息</param> |
| | | /// <returns>是否成功</returns> |
| | | public static bool WriteConfigToContextByModel(string model, object instance, out string errMsg) |
| | | { |
| | | errMsg = string.Empty; |
| | | try |
| | | { |
| | | string dir = RegUtil.GetLocaltion(); |
| | | string path = Path.Combine(dir, "Config", "Product","Parameter", $"Parameter_{model}.data"); |
| | | string path = Path.Combine(GetDataFilePath(), "Product", "Parameter", $"Parameter_{model}.data"); |
| | | return WriteConfigToContextByPath(path, instance, out errMsg); |
| | | } |
| | | catch (Exception ex) |
| | |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据路径写配置 |
| | | /// </summary> |
| | | /// <param name="path">绝对路径</param> |
| | | /// <param name="instance">TestStand上下文</param> |
| | | /// <param name="errMsg">异常信息</param> |
| | | /// <returns>是否成功</returns> |
| | | public static bool WriteConfigToContextByPath(string path, object instance, out string errMsg) |
| | | { |
| | | errMsg = string.Empty; |
| | |
| | | { |
| | | if (!File.Exists(path)) |
| | | { |
| | | throw new Exception("未找到该配置,请检查"); |
| | | throw new Exception($"未找到该配置[{path}],请检查"); |
| | | } |
| | | List<ParameterData> datas = XmlHelper.DeserializeFromXml<List<ParameterData>>(path); |
| | | foreach (var data in datas) |