using System; using System.Text; using TeamAAS_VP.Core.RFID; namespace TeamAAS_VP.Core.Sfis { public static class SfisRfidMapper { public static SfisUnitContext FromRfidTag(RFIDTagData tag, SfisConfig config) { if (tag == null) throw new ArgumentNullException(nameof(tag)); string raw = tag.ToASCIIString()?.Trim(); if (string.IsNullOrWhiteSpace(raw) && tag.Data != null) raw = Encoding.ASCII.GetString(tag.Data).Trim('\0', ' ', '\r', '\n'); if (string.IsNullOrWhiteSpace(raw)) throw new ArgumentException("RFID 标签 ASCII/数据为空,无法作为 ISN"); return new SfisUnitContext { Isn = raw, ReelIdSn = raw, MoNumber = config.DefaultMoNumber, PassType = config.InputDataPassType, AoiLocTag = config.InputDataAoiLocTag, TestPassed = true, TestRecords = { new SfisTestRecord { TestName = "RFID Read", Passed = true, Value = raw } } }; } } }