Commit d028f353 authored by 潘栩锋's avatar 潘栩锋 🚴

添加 下吹7层

parent 3dfc2a4d
......@@ -12,7 +12,7 @@ using System.Windows;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("佛山市枫莱尔自动化技术有限公司")]
[assembly: AssemblyProduct("枫莱尔--下吹服务器")]
[assembly: AssemblyCopyright("Copyright © 2022 FLYAutomation")]
[assembly: AssemblyCopyright("Copyright © 2023 FLYAutomation")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
......@@ -51,7 +51,7 @@ using System.Windows;
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("7.6.0")]
[assembly: AssemblyFileVersion("7.6.0")]
[assembly: AssemblyVersion("7.6.1")]
[assembly: AssemblyFileVersion("7.6.1")]
[assembly: Guid("A4B71A37-7B77-47AA-9F59-ACC3EF84C4E0")]
......@@ -185,7 +185,7 @@ namespace FLY.DownBlowing.Server
//从plcgroup 分析出 有多少层,每层的仓数
//温控
Regex r = new Regex($@"{nameof(TAreas)}\[([0-9])\]");
Regex r = new Regex($@"{nameof(TAreas)}\[([0-9]+)\]");
int tAreasCnt = 0;
foreach (PLCGroup.PLCVariable var in plcgroup.Variables)
{
......
......@@ -12,7 +12,7 @@ using System.Windows;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("佛山市枫莱尔自动化技术有限公司")]
[assembly: AssemblyProduct("枫莱尔--IBC服务器")]
[assembly: AssemblyCopyright("Copyright © 2022 FLYAutomation")]
[assembly: AssemblyCopyright("Copyright © 2023 FLYAutomation")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
......@@ -51,7 +51,7 @@ using System.Windows;
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("7.6.0.0")]
[assembly: AssemblyFileVersion("7.6.0.0")]
[assembly: AssemblyVersion("7.6.1.0")]
[assembly: AssemblyFileVersion("7.6.1.0")]
[assembly: Guid("47D1FF95-69E3-40E5-B094-D7DAEAA87AD9")]
......@@ -173,7 +173,7 @@ namespace FLY.IBC.Server
//从plcgroup 分析出 有多少层温控
Regex r = new Regex($@"{nameof(TAreas)}\[([0-9])\]");
Regex r = new Regex($@"{nameof(TAreas)}\[([0-9]+)\]");
int tAreasCnt = 0;
foreach (PLCGroup.PLCVariable var in plcgroup.Variables)
{
......
......@@ -51,6 +51,6 @@ using System.Windows;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("7.8.0.0")]
[assembly: AssemblyFileVersion("7.8.0.0")]
[assembly: AssemblyVersion("7.8.1.0")]
[assembly: AssemblyFileVersion("7.8.1.0")]
[assembly: Guid("38E0D8EC-4D1C-49FF-AB08-6289294C5BD4")]
......@@ -12,7 +12,7 @@ using System.Windows;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("佛山市枫莱尔自动化技术有限公司")]
[assembly: AssemblyProduct("称重服务器")]
[assembly: AssemblyCopyright("Copyright © 2022 FlyAutomation")]
[assembly: AssemblyCopyright("Copyright © 2023 FlyAutomation")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
......@@ -51,6 +51,6 @@ using System.Windows;
// 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,
// 方法是按如下所示使用“*”:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("7.7.0.0")]
[assembly: AssemblyFileVersion("7.7.0.0")]
[assembly: AssemblyVersion("7.7.1.0")]
[assembly: AssemblyFileVersion("7.7.1.0")]
[assembly: Guid("AC4FFE57-FF42-4B4D-9E23-FF583D78187D")]
......@@ -317,7 +317,7 @@ namespace FLY.Weight.UI.Server
plcgroup.Devices.RemoveRange(BinCnts.Count(), plcgroup.Devices.Count() - BinCnts.Count());
plcgroup.Variables.RemoveAll(var => var.DeviceIndex >= plcgroup.Devices.Count());
Regex r = new Regex(@"Items\[([0-9])\]");
Regex r = new Regex(@"Items\[([0-9]+)\]");
Regex r2 = new Regex(@"(?:\w+)_([1-9])");
//删除每层的仓
plcgroup.Variables.RemoveAll(var =>
......
......@@ -302,7 +302,7 @@ namespace FLY.Weight.UI.Server
//删除多余的设备
Regex r = new Regex($@"{nameof(IFeederSystemService.FeederDatas)}\[([0-9])\]");
Regex r = new Regex($@"{nameof(IFeederSystemService.FeederDatas)}\[([0-9]+)\]");
Regex r2 = new Regex(@"(?:\w+)([1-9])");
//删除每层的仓
plcgroup.Variables.RemoveAll(var =>
......
......@@ -123,7 +123,7 @@ namespace FLY.Weight.Server
//从plcgroup 分析出 有多少层,每层的仓数
//吸料
List<int> feederCntOfEachs = new List<int>();
Regex r = new Regex($@"{nameof(FeederDatas)}\[([0-9])\]");
Regex r = new Regex($@"{nameof(FeederDatas)}\[([0-9]+)\]");
Regex r2 = new Regex(@"IsFeederOn([1-9])");
foreach (PLCGroup.PLCVariable var in plcgroup.Variables)
......
......@@ -516,7 +516,7 @@ namespace FLY.Weight.Server
{
//从plcgroup 分析出 有多少层,每层的仓数
List<int> bincnts = new List<int>();
Regex r = new Regex(@"Items\[([0-9])\]");
Regex r = new Regex(@"Items\[([0-9]+)\]");
Regex r2 = new Regex("MixPSet_([1-9])");
foreach (PLCGroup.PLCVariable var in plcgroup.Variables)
......
......@@ -24,4 +24,9 @@ v4_20220424
v4_20220424
温控9层,
有内外收卷,
把 v3_20220308 的温控9层,复制过来
\ No newline at end of file
把 v3_20220308 的温控9层,复制过来
//--------------------------------------------
v4_20230407
温控11层,展会用
有内外收卷,
\ No newline at end of file
using System.ComponentModel;
namespace XXX.Common
{
public class FeederAccessory : INotifyPropertyChanged
{
public FeederAccessory()
{
}
#region 辅助代码生成
/// <summary>
/// 1号电机运行时间
/// </summary>
[Description("1号电机运行时间")]
public float No1MotorRunTime{ get; set; }
/// <summary>
/// 2号电机运行时间
/// </summary>
[Description("2号电机运行时间")]
public float No2MotorRunTime{ get; set; }
/// <summary>
/// 吸料急停开启!!!请检查
/// </summary>
[Description("吸料急停开启!!!请检查")]
[IsError()]
public bool Warning001{ get; set; }
/// <summary>
/// 吸料1号电机过载!!!请检查
/// </summary>
[Description("吸料1号电机过载!!!请检查")]
[IsError()]
public bool Warning002{ get; set; }
/// <summary>
/// 吸料2号电机过载!!!请检查
/// </summary>
[Description("吸料2号电机过载!!!请检查")]
[IsError()]
public bool Warning003{ get; set; }
#endregion
public event PropertyChangedEventHandler PropertyChanged;
}
}
using System.ComponentModel;
namespace XXX.Common
{
public class FeederData : INotifyPropertyChanged
{
public FeederData()
{
}
#region 辅助代码生成
/// <summary>
/// 吸料开1
/// </summary>
[Description("吸料开1")]
public bool IsFeederOn1{ get; set; }
/// <summary>
/// 吸料开2
/// </summary>
[Description("吸料开2")]
public bool IsFeederOn2{ get; set; }
/// <summary>
/// 吸料开3
/// </summary>
[Description("吸料开3")]
public bool IsFeederOn3{ get; set; }
/// <summary>
/// 吸料开4
/// </summary>
[Description("吸料开4")]
public bool IsFeederOn4{ get; set; }
/// <summary>
/// 吸料开5
/// </summary>
[Description("吸料开5")]
public bool IsFeederOn5{ get; set; }
/// <summary>
/// 吸料开6
/// </summary>
[Description("吸料开6")]
public bool IsFeederOn6{ get; set; }
/// <summary>
/// 吸料状态1(0:,1:等待,2:满桶,3:吸料,4:排空)
/// </summary>
[Description("吸料状态1(0:,1:等待,2:满桶,3:吸料,4:排空)")]
public float FeederStatus1{ get; set; }
/// <summary>
/// 吸料状态2
/// </summary>
[Description("吸料状态2")]
public float FeederStatus2{ get; set; }
/// <summary>
/// 吸料状态3
/// </summary>
[Description("吸料状态3")]
public float FeederStatus3{ get; set; }
/// <summary>
/// 吸料状态4
/// </summary>
[Description("吸料状态4")]
public float FeederStatus4{ get; set; }
/// <summary>
/// 吸料状态5
/// </summary>
[Description("吸料状态5")]
public float FeederStatus5{ get; set; }
/// <summary>
/// 吸料状态6
/// </summary>
[Description("吸料状态6")]
public float FeederStatus6{ get; set; }
/// <summary>
/// 吸料复位1(按1)
/// </summary>
[Description("吸料复位1(按1)")]
public bool FeederReset1{ get; set; }
/// <summary>
/// 吸料复位2(按1)
/// </summary>
[Description("吸料复位2(按1)")]
public bool FeederReset2{ get; set; }
/// <summary>
/// 吸料复位3(按1)
/// </summary>
[Description("吸料复位3(按1)")]
public bool FeederReset3{ get; set; }
/// <summary>
/// 吸料复位4(按1)
/// </summary>
[Description("吸料复位4(按1)")]
public bool FeederReset4{ get; set; }
/// <summary>
/// 吸料复位5(按1)
/// </summary>
[Description("吸料复位5(按1)")]
public bool FeederReset5{ get; set; }
/// <summary>
/// 吸料复位6(按1)
/// </summary>
[Description("吸料复位6(按1)")]
public bool FeederReset6{ get; set; }
/// <summary>
/// 吸料复位有效1
/// </summary>
[Description("吸料复位有效1")]
public bool IsFeederResetValid1{ get; set; }
/// <summary>
/// 吸料复位有效2
/// </summary>
[Description("吸料复位有效2")]
public bool IsFeederResetValid2{ get; set; }
/// <summary>
/// 吸料复位有效3
/// </summary>
[Description("吸料复位有效3")]
public bool IsFeederResetValid3{ get; set; }
/// <summary>
/// 吸料复位有效4
/// </summary>
[Description("吸料复位有效4")]
public bool IsFeederResetValid4{ get; set; }
/// <summary>
/// 吸料复位有效5
/// </summary>
[Description("吸料复位有效5")]
public bool IsFeederResetValid5{ get; set; }
/// <summary>
/// 吸料复位有效6
/// </summary>
[Description("吸料复位有效6")]
public bool IsFeederResetValid6{ get; set; }
/// <summary>
/// 1号吸料时间
/// </summary>
[Description("1号吸料时间")]
public float FeederTimeSet1{ get; set; }
/// <summary>
/// 2号吸料时间
/// </summary>
[Description("2号吸料时间")]
public float FeederTimeSet2{ get; set; }
/// <summary>
/// 3号吸料时间
/// </summary>
[Description("3号吸料时间")]
public float FeederTimeSet3{ get; set; }
/// <summary>
/// 4号吸料时间
/// </summary>
[Description("4号吸料时间")]
public float FeederTimeSet4{ get; set; }
/// <summary>
/// 5号吸料时间
/// </summary>
[Description("5号吸料时间")]
public float FeederTimeSet5{ get; set; }
/// <summary>
/// 6号吸料时间
/// </summary>
[Description("6号吸料时间")]
public float FeederTimeSet6{ get; set; }
/// <summary>
/// 1号排空时间
/// </summary>
[Description("1号排空时间")]
public float DrainTimeSet1{ get; set; }
/// <summary>
/// 2号排空时间
/// </summary>
[Description("2号排空时间")]
public float DrainTimeSet2{ get; set; }
/// <summary>
/// 3号排空时间
/// </summary>
[Description("3号排空时间")]
public float DrainTimeSet3{ get; set; }
/// <summary>
/// 4号排空时间
/// </summary>
[Description("4号排空时间")]
public float DrainTimeSet4{ get; set; }
/// <summary>
/// 5号排空时间
/// </summary>
[Description("5号排空时间")]
public float DrainTimeSet5{ get; set; }
/// <summary>
/// 6号排空时间
/// </summary>
[Description("6号排空时间")]
public float DrainTimeSet6{ get; set; }
/// <summary>
/// 1号等待时间
/// </summary>
[Description("1号等待时间")]
public float WaitTimeSet1{ get; set; }
/// <summary>
/// 2号等待时间
/// </summary>
[Description("2号等待时间")]
public float WaitTimeSet2{ get; set; }
/// <summary>
/// 3号等待时间
/// </summary>
[Description("3号等待时间")]
public float WaitTimeSet3{ get; set; }
/// <summary>
/// 4号等待时间
/// </summary>
[Description("4号等待时间")]
public float WaitTimeSet4{ get; set; }
/// <summary>
/// 5号等待时间
/// </summary>
[Description("5号等待时间")]
public float WaitTimeSet5{ get; set; }
/// <summary>
/// 6号等待时间
/// </summary>
[Description("6号等待时间")]
public float WaitTimeSet6{ get; set; }
/// <summary>
/// 1号吸料次数
/// </summary>
[Description("1号吸料次数")]
public float FeederCount1{ get; set; }
/// <summary>
/// 2号吸料次数
/// </summary>
[Description("2号吸料次数")]
public float FeederCount2{ get; set; }
/// <summary>
/// 3号吸料次数
/// </summary>
[Description("3号吸料次数")]
public float FeederCount3{ get; set; }
/// <summary>
/// 4号吸料次数
/// </summary>
[Description("4号吸料次数")]
public float FeederCount4{ get; set; }
/// <summary>
/// 5号吸料次数
/// </summary>
[Description("5号吸料次数")]
public float FeederCount5{ get; set; }
/// <summary>
/// 6号吸料次数
/// </summary>
[Description("6号吸料次数")]
public float FeederCount6{ get; set; }
/// <summary>
/// NO.1未吸到料!!!请检查
/// </summary>
[Description("NO.1未吸到料!!!请检查")]
[IsError()]
public bool Warning001{ get; set; }
/// <summary>
/// NO.2未吸到料!!!请检查
/// </summary>
[Description("NO.2未吸到料!!!请检查")]
[IsError()]
public bool Warning002{ get; set; }
/// <summary>
/// NO.3未吸到料!!!请检查
/// </summary>
[Description("NO.3未吸到料!!!请检查")]
[IsError()]
public bool Warning003{ get; set; }
/// <summary>
/// NO.4未吸到料!!!请检查
/// </summary>
[Description("NO.4未吸到料!!!请检查")]
[IsError()]
public bool Warning004{ get; set; }
/// <summary>
/// NO.5未吸到料!!!请检查
/// </summary>
[Description("NO.5未吸到料!!!请检查")]
[IsError()]
public bool Warning005{ get; set; }
/// <summary>
/// NO.6未吸到料!!!请检查
/// </summary>
[Description("NO.6未吸到料!!!请检查")]
[IsError()]
public bool Warning006{ get; set; }
#endregion
public event PropertyChangedEventHandler PropertyChanged;
}
}
{
"InstallZipVersion":"7.8.0.0",
"InstallZipUrl":"http://server.flyautomation.net:8889/download/和美安装包_v7.8.0.0_20230323.7z"
"InstallZipVersion":"7.8.1.0",
"InstallZipUrl":"http://server.flyautomation.net:8889/download/和美安装包_v7.8.1.0_20230407.7z"
}
\ No newline at end of file
......@@ -24,4 +24,9 @@ v4_20220424
v4_20220424
温控9层,
有内外收卷,
把 v3_20220308 的温控9层,复制过来
\ No newline at end of file
把 v3_20220308 的温控9层,复制过来
//--------------------------------------------
v4_20230407
温控11层,展会用
有内外收卷,
\ No newline at end of file
......@@ -8,12 +8,12 @@
24847051,
44866487,
43552930,
8223768,
10487112,
66283545
],
"DynAreaItems": [
31616714,
38141718,
32487918,
27935207,
64726287,
48687165,
......@@ -198,7 +198,7 @@
{
"Graphs": [
{
"ID": 53704147,
"ID": 64784526,
"Rect": "0, 0, 1, 1"
}
],
......@@ -211,6 +211,23 @@
false
],
"Header": "吸料"
},
{
"Graphs": [
{
"ID": 21887914,
"Rect": "0, 0, 1, 1"
}
],
"ColumnCount": 1,
"RowCount": 1,
"RowDefinitions": [
false
],
"ColumnDefinitions": [
false
],
"Header": "趋势2"
}
],
"Components": [
......@@ -290,8 +307,13 @@
"ServiceContainerName": "gage0.service"
},
{
"ID": 53704147,
"Module": "FLY.DownBlowing.UI.Client.UiModule.UiModule2_FeederPanel",
"ID": 64784526,
"Module": "FLY.Weight.UI.Client.UiModule.UiModule2_FeederPanel",
"ServiceContainerName": "gage0.service"
},
{
"ID": 21887914,
"Module": "FLY.Thick.Blowing.UI.UiModule.UiModule2_TrendGraph2",
"ServiceContainerName": "gage0.service"
},
{
......@@ -315,8 +337,8 @@
"ServiceContainerName": "gage0.service"
},
{
"ID": 8223768,
"Module": "FLY.Thick.Blowing.UI.UiModule.UiModule2_MenuProfile",
"ID": 10487112,
"Module": "FLY.Unions.UI.UiModule.UiModule2_MenuProfile",
"ServiceContainerName": "gage0.service"
},
{
......@@ -330,8 +352,8 @@
"ServiceContainerName": "gage0.service"
},
{
"ID": 38141718,
"Module": "FLY.Thick.Blowing.UI.UiModule.UiModule2_DynAreaProfile",
"ID": 32487918,
"Module": "FLY.Unions.UI.UiModule.UiModule2_DynAreaProfile",
"ServiceContainerName": "gage0.service"
},
{
......
[
{
"Key": "LCUS1_PortName",
"Value": "COM1"
},
{
"Key": "LCUS1_Enable",
"Value": false
},
{
"Key": "XStep",
"Value": 5
},
{
"Key": "HaveOSK",
"Value": true
},
{
"Key": "HaveOSK_mouse",
"Value": true
},
{
"Key": "gage0.service.stateChanged",
"Value": null
},
{
"Key": "HaveThick",
"Value": true
},
{
"Key": "HaveWeight",
"Value": true
},
{
"Key": "HaveIbc",
"Value": false
},
{
"Key": "HaveWinder",
"Value": false
},
{
"Key": "HaveDownBlowing",
"Value": true
},
{
"Key": "HaveTArea",
"Value": true
},
{
"Key": "HaveFeeder",
"Value": true
},
{
"Key": "WarningTipPath",
"Value": ""
},
{
"Key": "WarningDurationSec",
"Value": 5
},
{
"Key": "EnableScanErrBigTip",
"Value": false
}
]
\ No newline at end of file
{"Items":[{"UiModule":"scangraph2","YRangePercent":3.0,"Mix":2,"Number":-5,"IsPercent":true,"IsAutoTarget":true,"ID":1501989},{"UiModule":"scangraph2","YRangePercent":3.0,"Mix":2,"Number":0,"IsPercent":true,"IsAutoTarget":true,"ID":52015891},{"UiModule":"scangraph","YRangePercent":3.0,"Mix":1,"Number":-15,"IsPercent":true,"IsAutoTarget":true,"ID":44960719},{"UiModule":"scangraph","YRangePercent":3.0,"Mix":1,"Number":-10,"IsPercent":true,"IsAutoTarget":true,"ID":38016717},{"UiModule":"scangraph","YRangePercent":3.0,"Mix":1,"Number":-5,"IsPercent":true,"IsAutoTarget":true,"ID":6455868},{"UiModule":"scangraph2","YRangePercent":3.0,"Mix":1,"Number":0,"IsPercent":true,"IsAutoTarget":true,"ID":33594135}]}
\ No newline at end of file
{
"Items": [
{
"UiModule": "scangraph2",
"YRangePercent": 3.0,
"Mix": 2,
"Number": -5,
"IsPercent": true,
"IsAutoTarget": true,
"ID": 1501989
},
{
"UiModule": "scangraph2",
"YRangePercent": 3.0,
"Mix": 2,
"Number": 0,
"IsPercent": true,
"IsAutoTarget": true,
"ID": 52015891
},
{
"UiModule": "scangraph",
"YRangePercent": 3.0,
"Mix": 1,
"Number": -15,
"IsPercent": true,
"IsAutoTarget": true,
"ID": 44960719
},
{
"UiModule": "scangraph",
"YRangePercent": 3.0,
"Mix": 1,
"Number": -10,
"IsPercent": true,
"IsAutoTarget": true,
"ID": 38016717
},
{
"UiModule": "scangraph",
"YRangePercent": 3.0,
"Mix": 1,
"Number": -5,
"IsPercent": true,
"IsAutoTarget": true,
"ID": 6455868
},
{
"UiModule": "scangraph2",
"YRangePercent": 3.0,
"Mix": 1,
"Number": 0,
"IsPercent": true,
"IsAutoTarget": true,
"ID": 33594135
},
{
"UiModule": "scangraph",
"YRangePercent": 3.0,
"Mix": 1,
"Number": 0,
"IsPercent": true,
"IsAutoTarget": true,
"ID": 21887914
}
]
}
\ No newline at end of file
{"Items":[{"Len":120,"BeginNo":0,"EndNo":20,"IsAll":true,"Type":0,"XType":0,"BM":0,"YRangePercent":3.0,"Title":"趋势图","Mix":1,"IsAutoTarget":true,"IsPercent":true,"ID":48220637}]}
\ No newline at end of file
{
"Items": [
{
"Interval": 1,
"YRangePercent": 3.0,
"Mix": 1,
"ID": 64244561
},
{
"Interval": 1,
"YRangePercent": 3.0,
"Mix": 1,
"ID": 21887914
}
]
}
\ No newline at end of file
[
{
"Key": "LCUS1_PortName",
"Value": "COM1"
},
{
"Key": "LCUS1_Enable",
"Value": false
},
{
"Key": "XStep",
"Value": 5
},
{
"Key": "HaveOSK",
"Value": true
},
{
"Key": "HaveOSK_mouse",
"Value": true
},
{
"Key": "gage0.service.stateChanged",
"Value": null
},
{
"Key": "HaveThick",
"Value": true
},
{
"Key": "HaveWeight",
"Value": true
},
{
"Key": "HaveIbc",
"Value": false
},
{
"Key": "HaveWinder",
"Value": false
},
{
"Key": "HaveDownBlowing",
"Value": true
},
{
"Key": "HaveTArea",
"Value": true
},
{
"Key": "HaveFeeder",
"Value": true
},
{
"Key": "WarningTipPath",
"Value": ""
},
{
"Key": "WarningDurationSec",
"Value": 5
},
{
"Key": "EnableScanErrBigTip",
"Value": false
}
]
\ No newline at end of file
# 和美安装包_v7.8.1-20230407
## 测厚仪服务器 v7.8.0
## 测厚仪客户端 v7.7.4
## 扫描测厚仪服务器 v7.6.1
## 扫描测厚仪客户端 v7.8.1
## 自动风环 v7.6.1
## 称重 v7.7.1
1. 添加 11层6组分 称重与吸料
2. 修复 当层数>9 会加载出错
## 称重单组 v7.6.0
## 收卷 v7.8.0
## IBC v7.6.0
## 下吹 v7.6.1
1. 添加 11层6组分温控
2. 修复 当层数>9 会加载出错
## 吹膜数据库浏览器 v7.0.0
<br/>
<br/>
<br/>
# 和美安装包_v7.8.0-20230227
## 测厚仪服务器 v7.8.0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment