private static bool CheckTreatmentHeadPosition(ReadPLCModel model) { var part = Chest.PartsForLocate; if (part == null || part.Ignore) return true;

if (!VisualLocator.CompareDistance(Convert.ToDouble(part.Dist1), Convert.ToDouble(model.Column376)) ||
    !VisualLocator.CompareDistance(Convert.ToDouble(part.Dist2), Convert.ToDouble(model.Column377)) ||
    !VisualLocator.CompareDistance(Convert.ToDouble(part.Dist3), Convert.ToDouble(model.Column378)))
{
    return true;
}

var pos = new ArmPoint
{
    X = Convert.ToDouble(model.Column381),
    Y = Convert.ToDouble(model.Column382),
    Z = Convert.ToDouble(model.Column383),
    A = Convert.ToDouble(model.Column384),
    B = Convert.ToDouble(model.Column385),
    C = Convert.ToDouble(model.Column386),
};
return VisualLocator.ComparePoint(pos, Chest.PartsForLocate.Point);

}

private static void HandleAlarm(AlarmInfo alarm, ReadPLCModel model, List alarms) { if (alarm.Text == "治疗头到位联锁") { bool trigger = CheckTreatmentHeadPosition(model); alarms.Add(new AlarmTemp { Text = alarm.Text, Value = trigger ? "1" : "0", CanIgnore = alarm.CanIgnore, Ignore = alarm.CanIgnore && BytesTranfer.GetVal(model, alarm.IgnoreColumn) == "1" }); } else { alarms.Add(new AlarmTemp { Text = alarm.Text, Value = BytesTranfer.GetVal(model, alarm.Column), CanIgnore = alarm.CanIgnore, Ignore = alarm.CanIgnore && BytesTranfer.GetVal(model, alarm.IgnoreColumn) == "1" }); } }

private static void HandleAlarms(ReadPLCModel model) { var alarms = new List(); foreach (var alarm in AlarmInfo.All) { HandleAlarm(alarm, model, alarms); } Alarms = alarms.ToArray();

优化这段代码尽量拆分为多个函数private static void HandleAlarmsReadPLCModel model var alarms = new ListAlarmTemp; foreach var item in AlarmInfoAll if itemText

原文地址: https://www.cveoy.top/t/topic/cnel 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录