SfisRfidMapper.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using System;
  2. using System.Text;
  3. using TeamAAS_VP.Core.RFID;
  4. namespace TeamAAS_VP.Core.Sfis
  5. {
  6. public static class SfisRfidMapper
  7. {
  8. public static SfisUnitContext FromRfidTag(RFIDTagData tag, SfisConfig config)
  9. {
  10. if (tag == null)
  11. throw new ArgumentNullException(nameof(tag));
  12. string raw = tag.ToASCIIString()?.Trim();
  13. if (string.IsNullOrWhiteSpace(raw) && tag.Data != null)
  14. raw = Encoding.ASCII.GetString(tag.Data).Trim('\0', ' ', '\r', '\n');
  15. if (string.IsNullOrWhiteSpace(raw))
  16. throw new ArgumentException("RFID 标签 ASCII/数据为空,无法作为 ISN");
  17. return new SfisUnitContext
  18. {
  19. Isn = raw,
  20. ReelIdSn = raw,
  21. MoNumber = config.DefaultMoNumber,
  22. PassType = config.InputDataPassType,
  23. AoiLocTag = config.InputDataAoiLocTag,
  24. TestPassed = true,
  25. TestRecords =
  26. {
  27. new SfisTestRecord { TestName = "RFID Read", Passed = true, Value = raw }
  28. }
  29. };
  30. }
  31. }
  32. }