using Bro.Common.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Bro.Common.Model
{
public class ScrewResult : ICSVOutput
{
public DateTime DT { get; set; }
///
/// 锁螺丝PSet序号
///
public int PSetNo { get; set; } = 1;
///
/// 产品序号
///
public string SN { get; set; }
///
/// 螺丝序号
///
public int ScrewIndex { get; set; }
///
/// 螺丝枪反馈的结果 true OK false NG
///
public bool Result { get; set; } = false;
///
/// 检测是否浮钉 true:浮钉 false: 不是浮钉
///
public bool IsFloatingScrew { get; set; } = false;
///
/// 浮钉检测的扭矩相关角度
///
public float TorqueRelatedAngle { get; set; }
///
/// 浮钉检测的步骤相关角度
///
public float StepRelatedAngle { get; set; }
///
/// 扭矩变化最大斜率
///
public float MaxTorqueSlope { get; set; }
///
/// 最终力矩
///
public float LastTorque { get; set; }
///
/// 最终角度
///
public float LastAngle { get; set; }
///
/// 力矩波形图数据
///
public List CurveTorque { get; set; } = new List();
///
/// 角度波形图数据
///
public List CurveAngle { get; set; } = new List();
///
/// NG描述
///
public string ErrorCode { get; set; }
///
/// 步骤扭矩集合
///
public float[] TorqueList { get; set; } = new float[3];
///
/// 步骤角度集合
///
public float[] AngleList { get; set; } = new float[3];
public string GetCSVHead()
{
List heads = new List()
{
"Time",
"SN",
"ScrewIndex",
"Result",
"PSetNo",
"IsFloating",
"FinalTorque",
"FinalAngle",
"Step1Torque",
"Step1Angle",
"Step2Torque",
"Step2Angle",
"Step3Torque",
"Step3Angle",
"TorqueRelatedAngle",
"StepRelatedAngle",
"MaxTorqueSlope",
"NGDesc"
};
return string.Join(",", heads);
}
public string GetCSVData()
{
List datas = new List()
{
DT.ToString("HH:mm:ss"),
SN,
ScrewIndex.ToString(),
Result?"OK":"NG",
PSetNo.ToString(),
IsFloatingScrew?"Floating":"No",
LastTorque.ToString("f2"),
LastAngle.ToString("f2"),
TorqueList[0].ToString("f2"),
AngleList[0].ToString("f2"),
TorqueList[1].ToString("f2"),
AngleList[1].ToString("f2"),
TorqueList[2].ToString("f2"),
AngleList[2].ToString("f2"),
TorqueRelatedAngle.ToString("f2"),
StepRelatedAngle.ToString("f2"),
MaxTorqueSlope.ToString("f2"),
ErrorCode,
};
return string.Join(",", datas);
}
}
}