|
|
@@ -124,14 +124,24 @@ namespace TeamAAS_VP.Models
|
|
|
set { SetProperty(ref __Pressure, value); }
|
|
|
}
|
|
|
|
|
|
- private float __TargetTorque;
|
|
|
+ private float __TargetTorqueUpperLimit;
|
|
|
/// <summary>
|
|
|
- /// 目标扭矩
|
|
|
+ /// 目标扭矩上限
|
|
|
/// </summary>
|
|
|
- public float TargetTorque
|
|
|
+ public float TargetTorqueUpperLimit
|
|
|
{
|
|
|
- get { return __TargetTorque; }
|
|
|
- set { SetProperty(ref __TargetTorque, value); }
|
|
|
+ get { return __TargetTorqueUpperLimit; }
|
|
|
+ set { SetProperty(ref __TargetTorqueUpperLimit, value); }
|
|
|
+ }
|
|
|
+
|
|
|
+ private float __TargetTorqueLowerLimit;
|
|
|
+ /// <summary>
|
|
|
+ /// 目标扭矩下限
|
|
|
+ /// </summary>
|
|
|
+ public float TargetTorqueLowerLimit
|
|
|
+ {
|
|
|
+ get { return __TargetTorqueLowerLimit; }
|
|
|
+ set { SetProperty(ref __TargetTorqueLowerLimit, value); }
|
|
|
}
|
|
|
|
|
|
private float __TargetTurnsUpperLimit;
|
|
|
@@ -174,24 +184,24 @@ namespace TeamAAS_VP.Models
|
|
|
set { SetProperty(ref _ScrewdriverGetDataSucceed, value); }
|
|
|
}
|
|
|
|
|
|
- private float __StartPositionX;
|
|
|
+ private float __PositionX;
|
|
|
/// <summary>
|
|
|
- /// 锁付位置坐标 X 起始值
|
|
|
+ /// 锁付位置坐标 X 值
|
|
|
/// </summary>
|
|
|
- public float StartPositionX
|
|
|
+ public float PositionX
|
|
|
{
|
|
|
- get { return __StartPositionX; }
|
|
|
- set { SetProperty(ref __StartPositionX, value); }
|
|
|
+ get { return __PositionX; }
|
|
|
+ set { SetProperty(ref __PositionX, value); }
|
|
|
}
|
|
|
|
|
|
- private float __StartPositionY;
|
|
|
+ private float __PositionY;
|
|
|
/// <summary>
|
|
|
- /// 锁付位置坐标 Y 起始值
|
|
|
+ /// 锁付位置坐标 Y 值
|
|
|
/// </summary>
|
|
|
- public float StartPositionY
|
|
|
+ public float PositionY
|
|
|
{
|
|
|
- get { return __StartPositionY; }
|
|
|
- set { SetProperty(ref __StartPositionY, value); }
|
|
|
+ get { return __PositionY; }
|
|
|
+ set { SetProperty(ref __PositionY, value); }
|
|
|
}
|
|
|
|
|
|
private float __StartPositionZ;
|
|
|
@@ -206,7 +216,7 @@ namespace TeamAAS_VP.Models
|
|
|
|
|
|
private float __EndPositionZ;
|
|
|
/// <summary>
|
|
|
- /// Z 终点值
|
|
|
+ /// 锁付位置坐标 Z 终点值
|
|
|
/// </summary>
|
|
|
public float EndPositionZ
|
|
|
{
|
|
|
@@ -246,7 +256,7 @@ namespace TeamAAS_VP.Models
|
|
|
|
|
|
private string __NozzleNumber;
|
|
|
/// <summary>
|
|
|
- /// 披头编号
|
|
|
+ /// 吸嘴编号
|
|
|
/// </summary>
|
|
|
[SugarColumn(IsNullable = true)]
|
|
|
public string NozzleNumber
|
|
|
@@ -255,6 +265,17 @@ namespace TeamAAS_VP.Models
|
|
|
set { SetProperty(ref __NozzleNumber, value); }
|
|
|
}
|
|
|
|
|
|
+ private string _HeadNumber;
|
|
|
+ /// <summary>
|
|
|
+ /// 披头编号
|
|
|
+ /// </summary>
|
|
|
+ [SugarColumn(IsNullable = true)]
|
|
|
+ public string HeadNumber
|
|
|
+ {
|
|
|
+ get { return _HeadNumber; }
|
|
|
+ set { SetProperty(ref _HeadNumber, value); }
|
|
|
+ }
|
|
|
+
|
|
|
//当前的操作员名称
|
|
|
private string _OperatorName;
|
|
|
[SugarColumn(IsNullable = true)]
|
|
|
@@ -275,6 +296,17 @@ namespace TeamAAS_VP.Models
|
|
|
set { SetProperty(ref _ProductImagePath, value); }
|
|
|
}
|
|
|
|
|
|
+ private string _LockCurveImagePath;
|
|
|
+ /// <summary>
|
|
|
+ /// 锁付曲线图路径
|
|
|
+ /// </summary>
|
|
|
+ [SugarColumn(IsNullable = true)]
|
|
|
+ public string LockCurveImagePath
|
|
|
+ {
|
|
|
+ get { return _LockCurveImagePath; }
|
|
|
+ set { SetProperty(ref _LockCurveImagePath, value); }
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 锁付曲线数据列表
|
|
|
/// </summary>
|
|
|
@@ -310,21 +342,24 @@ namespace TeamAAS_VP.Models
|
|
|
LockPassed = this.LockPassed,
|
|
|
ScrewdriverProgramNumber = this.ScrewdriverProgramNumber,
|
|
|
Pressure = this.Pressure,
|
|
|
- TargetTorque = this.TargetTorque,
|
|
|
+ TargetTorqueUpperLimit = this.TargetTorqueUpperLimit,
|
|
|
+ TargetTorqueLowerLimit = this.TargetTorqueLowerLimit,
|
|
|
TargetTurnsUpperLimit = this.TargetTurnsUpperLimit,
|
|
|
TargetTurnsLowerLimit = this.TargetTurnsLowerLimit,
|
|
|
TargetLockSpeed = this.TargetLockSpeed,
|
|
|
- StartPositionX = this.StartPositionX,
|
|
|
- StartPositionY = this.StartPositionY,
|
|
|
+ PositionX = this.PositionX,
|
|
|
+ PositionY = this.PositionY,
|
|
|
StartPositionZ = this.StartPositionZ,
|
|
|
EndPositionZ = this.EndPositionZ,
|
|
|
LockDescentSpeed = this.LockDescentSpeed,
|
|
|
FeederNumber = this.FeederNumber,
|
|
|
NozzleNumber = this.NozzleNumber,
|
|
|
+ HeadNumber= this.HeadNumber,
|
|
|
OperatorName = this.OperatorName,
|
|
|
ProductImagePath = this.ProductImagePath,
|
|
|
ScrewdriverGetDataSucceed = this.ScrewdriverGetDataSucceed,
|
|
|
- WaveDatas = new List<WaveData>(this.WaveDatas)
|
|
|
+ WaveDatas = new List<WaveData>(this.WaveDatas),
|
|
|
+ LockCurveImagePath = this.LockCurveImagePath,
|
|
|
};
|
|
|
}
|
|
|
|
|
|
@@ -353,8 +388,8 @@ namespace TeamAAS_VP.Models
|
|
|
using (var writer = new System.IO.StreamWriter(filePath, false, System.Text.Encoding.UTF8))
|
|
|
{
|
|
|
// 写入锁付结果信息表头(已新增字段)
|
|
|
- writer.WriteLine("Number,ProductNumber,Timestamp,LockTurns,LockTorque,LockDuration,LockPassed,ScrewdriverProgramNumber,Pressure,TargetTorque,TargetTurnsUpperLimit,TargetTurnsLowerLimit,TargetLockSpeed,StartPositionX,StartPositionY,StartPositionZ,EndPositionZ,LockDescentSpeed,FeederNumber,FeederBatchNumber,NozzleNumber,ResultDetails,ScrewdriverGetDataSucceed,OperatorName,ProductImagePath");
|
|
|
-
|
|
|
+ writer.WriteLine("Number,ProductNumber,Timestamp,LockTurns,LockTorque,LockDuration,LockPassed,ScrewdriverProgramNumber,Pressure,TargetTorque,TargetTurnsUpperLimit,TargetTurnsLowerLimit,TargetLockSpeed,StartPositionX,StartPositionY,StartPositionZ,EndPositionZ,LockDescentSpeed,FeederNumber,FeederBatchNumber,NozzleNumber,HeadNumber,ResultDetails,ScrewdriverGetDataSucceed,OperatorName,ProductImagePath,LockCurveImagePath");
|
|
|
+
|
|
|
// 写入锁付结果数据行(所有字段均做 CSV 转义)
|
|
|
writer.WriteLine(string.Join(",",
|
|
|
EscapeCsv(Number),
|
|
|
@@ -366,22 +401,25 @@ namespace TeamAAS_VP.Models
|
|
|
EscapeCsv(LockPassed),
|
|
|
EscapeCsv(ScrewdriverProgramNumber),
|
|
|
EscapeCsv(Pressure),
|
|
|
- EscapeCsv(TargetTorque),
|
|
|
+ EscapeCsv(TargetTorqueUpperLimit),
|
|
|
+ EscapeCsv(TargetTorqueLowerLimit),
|
|
|
EscapeCsv(TargetTurnsUpperLimit),
|
|
|
EscapeCsv(TargetTurnsLowerLimit),
|
|
|
EscapeCsv(TargetLockSpeed),
|
|
|
- EscapeCsv(StartPositionX),
|
|
|
- EscapeCsv(StartPositionY),
|
|
|
+ EscapeCsv(PositionX),
|
|
|
+ EscapeCsv(PositionY),
|
|
|
EscapeCsv(StartPositionZ),
|
|
|
EscapeCsv(EndPositionZ),
|
|
|
EscapeCsv(LockDescentSpeed),
|
|
|
EscapeCsv(FeederNumber),
|
|
|
EscapeCsv(FeederBatchNumber),
|
|
|
EscapeCsv(NozzleNumber),
|
|
|
+ EscapeCsv(HeadNumber),
|
|
|
EscapeCsv(ResultDetails),
|
|
|
EscapeCsv(ScrewdriverGetDataSucceed),
|
|
|
EscapeCsv(OperatorName),
|
|
|
- EscapeCsv(ProductImagePath)
|
|
|
+ EscapeCsv(ProductImagePath),
|
|
|
+ EscapeCsv(LockCurveImagePath)
|
|
|
));
|
|
|
|
|
|
// 写入波形数据
|
|
|
@@ -402,5 +440,25 @@ namespace TeamAAS_VP.Models
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 异步保存到csv
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="filePath"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public async System.Threading.Tasks.Task SaveToCsvAsync(string filePath)
|
|
|
+ {
|
|
|
+ await System.Threading.Tasks.Task.Run(() =>
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ SaveToCsv(filePath);
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ LogHelper.WriteLogError("保存锁付数据至CSV时出错!", ex);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|