Teasdale Validation Mode¶
What This Mode Does¶
Teasdale mode performs the most comprehensive validation in the GateKeeper system. It reads a DataMatrix barcode, a UCC-128 barcode, and an RFID tag from each case using a single hybrid scanner (Zebra DS9908R). It then verifies the GTIN, lot number, and pack date against production data imported from a JSON file, and confirms that the DataMatrix barcode matches the RFID tag EPC exactly.
Sites Using This Mode¶
- Teasdale Carrollton (Line 7 and Line 9)
Required Hardware¶
- Zebra DS9908R hybrid barcode/RFID scanner (USB connection)
- LattePanda Delta 3 controller (serial USB, for reject signal and stack lights)
- Production data from JSON file import (DCOM system)
How It Works: Step by Step¶
- The DCOM system drops a JSON file in the import directory.
- The TeasdaleImporter reads the JSON and extracts production data (GTIN, lot, pack date, cases per pallet).
- Label printing is triggered via BarTender.
- An operator scans a case using the DS9908R scanner.
- The DS9908R reads all three components in one scan:
- DataMatrix barcode (contains SGTIN-96 identifier)
- UCC-128 barcode (contains GS1 data: GTIN, lot, pack date)
- RFID tag (contains EPC that should match the DataMatrix)
- The system checks:
- DataMatrix value matches RFID EPC exactly
- UCC-128 GTIN matches expected GTIN
- UCC-128 lot number matches expected lot
- UCC-128 pack date matches expected date (AI 13, 15, or 17)
- Only PASS results count toward the pallet case count.
- When a pallet is complete, export files are created.
Pallet Tracking¶
Teasdale mode tracks cases in pallets:
- The UI shows "Pallet X of Y | Case Z of N" (e.g., "Pallet 1 of 3 | Case 13 of 35")
- Only cases that PASS validation count toward the pallet total
- When all cases in a pallet are validated, a "Pallet Complete" dialog appears
- The system auto-advances to the next pallet
- A "Complete Partial Pallet" button allows early pallet completion
- When all pallets are finished, the job is complete and the system returns to idle
What Makes a PASS¶
All of the following must be true: - Production data is loaded from JSON import - DataMatrix barcode found - UCC-128 barcode found - RFID tag read - DataMatrix value matches RFID EPC exactly - UCC-128 GTIN matches expected GTIN - UCC-128 lot number matches expected lot - UCC-128 date matches expected date
What Makes a FAIL¶
| Error Message | What It Means | What to Check |
|---|---|---|
Missing expected production data |
No JSON file imported yet | Has DCOM system dropped a file? Is import directory accessible? |
Missing: DataMatrix barcode |
Scanner did not read the 2D barcode | Label quality, scanner alignment, try re-scanning |
Missing: UCC-128 barcode |
Scanner did not read the linear barcode | Label quality, barcode print quality |
Missing: RFID tag |
Scanner did not read the RFID tag | Tag applied to case? Tag damaged? Scanner RFID enabled? |
Missing: DataMatrix barcode, UCC-128 barcode, RFID tag |
Multiple components missing (comma-separated list) | Multiple scan issues -- check scanner operation |
DataMatrix '{X}' does not match RFID '{Y}' |
The 2D barcode and RFID tag do not match | Wrong tag on case? Tag from different case? |
Invalid UCC-128 format: {error} |
UCC-128 barcode could not be parsed as GS1 | Barcode print quality issue, damaged label |
Invalid GS1 barcode format in UCC-128 |
Barcode parsed but is missing required GTIN | Label printed incorrectly |
GTIN mismatch: expected '{X}', found '{Y}' |
Barcode GTIN does not match production data | Wrong product? Using old labels? |
Lot number mismatch: expected '{X}', found '{Y}' |
Lot number does not match | Old labels from previous lot? Midnight rollover occurred? |
No date found in barcode (requires Pack Date AI 13, Best Before AI 15, or Expiration AI 17) |
UCC-128 has no date encoded | Label printing issue |
Pack date mismatch: expected '{X}', found '{Y}' |
Pack date (AI 13) does not match | Old labels? Wrong date printed? |
Best before date mismatch: expected '{X}', found '{Y}' |
Best before date (AI 15) does not match | Old labels? Wrong date printed? |
Expiration date mismatch: expected '{X}', found '{Y}' |
Expiration date (AI 17) does not match | Old labels? Wrong date printed? |
Common Failure Reasons and What to Check¶
| Symptom | Likely Cause | What to Do |
|---|---|---|
| "Missing expected production data" | No JSON file received | Verify DCOM system is running, check import directory |
| Scanner reads barcodes but not RFID | RFID module disabled or misconfigured | Check scanner RFID settings via 123Scan |
| Lot mismatch after midnight | Midnight rollover incremented expected lot | Use new labels printed after rollover |
| GTIN mismatch for all cases | Wrong production data loaded, or wrong product on line | Verify JSON file matches current product |
| DataMatrix/RFID mismatch | Tag from adjacent case picked up, or tag not matching label | Re-scan, verify label and tag match |
Midnight Rollover¶
For shifts that cross midnight, the system can automatically update lot numbers and dates:
- A warning dialog appears a few minutes before midnight (configurable).
- The operator acknowledges the warning.
- When the current pallet completes, remaining pallets are rolled over with updated lot and dates.
- Cases labeled with the OLD lot number will FAIL validation after rollover. Operators must use newly printed labels.
Pause/Resume Feature¶
The Teasdale mode supports pausing and resuming a job:
- Job state (pallet progress, validated cases) is saved to a state file.
- If the application restarts, it can automatically resume where it left off.
- If
AutoStartValidationis enabled, the job resumes on startup. Otherwise a "Resume Job" button appears.
Troubleshooting Steps¶
- Check the diagnostics panel for DS9908R scanner connection status.
- Look at the log file for entries with
[TEASDALE]prefix for validation issues. - Check
[TEASDALE-IMPORTER]log entries for file import issues. - Check
[DS9908]log entries for scanner hardware issues. - Verify the import directory is accessible and contains files.
- Check BarTender is running if labels are not printing (see BarTender Printing).
Log Search Reference¶
| Log Prefix | What It Shows |
|---|---|
[TEASDALE] |
Validation results, GTIN/lot/date checks |
[TEASDALE-IMPORTER] |
JSON file import status and errors |
[DS9908] |
Scanner connection, barcode/RFID events |
[MOJIX-EXPORT] |
Export submission status |
When to Escalate¶
- DS9908R scanner not discovered via USB (shows "No scanners discovered")
- JSON import files consistently fail to parse
- Pallet tracking counts are incorrect (cases skipped or doubled)
- Export files accumulating in the
error/folder - Midnight rollover not triggering or rolling over incorrectly