Teasdale Carrollton¶
Configuration Disclaimer: The configuration values shown here are based on repository reference files. Production configurations may differ. Always verify against the actual
appsettings.jsonon the production machine.
Quick Reference¶
| Field | Value |
|---|---|
| Site | Teasdale Foods -- Carrollton, TX |
| Validation Mode | Teasdale |
| Version | teasdale-v1.0 |
| Config Files | appsettings-teasdale-carrollton-line7.json, appsettings-teasdale-carrollton-line9.json |
| Controller | LattePanda Delta 3 (Serial USB) |
| Lines | Line 7, Line 9 (separate machines, separate configs) |
Hardware Inventory (Both Lines)¶
| Device | Type | Connection | Address/Port |
|---|---|---|---|
| Scanner | Zebra DS9908R hybrid (barcode + RFID) | USB (CoreScanner SDK) | SNAPI |
| Controller | LattePanda Delta 3 | Serial USB | COM4:115200 |
| Stack Lights | Via LattePanda | Digital outputs | Pins 10/11/12 (G/Y/R) |
Controller Pin Map (LattePanda)¶
| Pin | Function |
|---|---|
| 10 | Stack Light Green |
| 11 | Stack Light Yellow |
| 12 | Stack Light Red |
| -1 | Horn (StackLightAlarm -- disabled, pin -1) |
Line-Specific Configuration¶
| Setting | Line 7 | Line 9 |
|---|---|---|
| Config file | appsettings-teasdale-carrollton-line7.json |
appsettings-teasdale-carrollton-line9.json |
TeasdaleFilePrefix |
"RFID-CT7" | "RFID-CT9" |
MojixReadPoint |
"Line 7" | "Line 9" |
MojixGln |
0022254000001 | 0022254000001 |
MaximumLabelsToPrint |
10 | 48 |
| BarTender Printer | CAR-RFID-9 | CAR-RFID-9 |
| Network username | abetech.support | abetech.support@teasdalefoods.com |
| Network domain | TEASDALE | (empty -- UPN format) |
| Deacom export folder | C:\GateKeeper\Conveyor\Data\DeacomExport (local) |
\\tfcoloapp04\Deacom$\Model\RFID\Inbound (network) |
Export Configuration¶
| Export | Enabled | Endpoint |
|---|---|---|
| Mojix | Yes | https://chipotle.mojixretail.io/statemachine-epcis-events-input-rest/rest/events |
| MWE | No (configured) | http://10.100.10.22 |
| AIS | No | -- |
| Deacom | Yes | Per-pallet export (JSON file) |
Data Source¶
| Setting | Value |
|---|---|
| Importer | TeasdaleImporter (JSON file polling) |
| Import path | \\tfcoloapp04\Deacom$\Model\RFID\Outbound |
| Processed path | C:\gatekeeper\conveyor\data\teasdale\processed |
| Poll interval | 10 seconds |
| Retention | 60 days |
| Network auth | Domain credentials (DPAPI encrypted password) |
Normal Operating State¶
When everything is working correctly at Teasdale:
- Screen: GateKeeper application shows "Teasdale" validation mode. Scanner and Controller show connected. The pallet progress panel shows "Pallet X of Y | Case N of M."
- Stack lights: Teasdale profile -- All three lights (Green + Yellow + Red) are ON when idle. When validation is active, only Yellow is ON. Green flashes on pass (5 seconds). Red flashes + horn on fail.
- Data flow: JSON files from Deacom ERP arrive on the network share. The importer picks them up and loads the multi-pallet queue. An operator scans each case with the DS9908R handheld scanner.
- Exports: Per-pallet exports go to Mojix and Deacom after each pallet is completed.
- Label printing: Labels are auto-printed at pallet start via BarTender.
Validation Flow¶
- Deacom sends a JSON file to the network share (
\\tfcoloapp04\Deacom$\Model\RFID\Outbound). - The TeasdaleImporter detects files matching the prefix ("RFID-CT7" for Line 7, "RFID-CT9" for Line 9) and loads all pallets into a queue.
- The operator sees "Pallet 1 of N" on the screen and begins scanning cases.
- For each case, the operator holds the case near the DS9908R scanner. The scanner reads:
- A DataMatrix 2D barcode
- A UCC-128 (GS1-128) linear barcode
- An RFID tag (EPC via the built-in RFID antenna)
- The application correlates the barcode and RFID reads (5-second timeout).
- Validation checks:
- DataMatrix content must match RFID EPC (after SGTIN-96 URN-to-Hex conversion)
- UCC-128 GTIN (AI 01) must match expected GTIN
- UCC-128 Lot (AI 10) must match expected lot
- Date validation: PackDate (AI 13) OR ExpirationDate (AI 17) must match
- PASS: Green flash (5s), case count increments. FAIL: Red flash + horn (5s).
- After all cases in a pallet are passed, a "Pallet Complete" dialog appears. The pallet is exported to Mojix/Deacom, and the system advances to the next pallet.
- When all pallets are complete, validation returns to OFF state.
Common Issues¶
Job Not Appearing in Queue¶
What you see: Operator sends a job from Deacom, but nothing shows in GateKeeper.
What to check:
1. Is the JSON file on the network share? Check \\tfcoloapp04\Deacom$\Model\RFID\Outbound for files starting with the correct prefix.
2. Check the application logs for "rejected" messages -- the file may have been rejected due to missing GTIN or invalid format.
3. Verify network credentials. The password may need to be re-encrypted if the machine was reimaged. Go to Settings -> Teasdale tab -> Encrypt Password.
4. Check if the file was already processed -- look in C:\gatekeeper\conveyor\data\teasdale\processed.
5. Try restarting the application.
Labels Not Printing¶
What you see: No labels come out of the printer when a new pallet starts.
What to check:
1. Is BarTender Integration Platform running on the label PC (172.18.33.6)?
2. Is the printer (CAR-RFID-9) online and ready?
3. Check network connectivity from the GateKeeper machine to 172.18.33.6.
4. Check EnableAutomaticLabelPrinting is true in appsettings.
5. Check the application logs for BarTender-related errors.
RFID Timeout¶
What you see: Validation fails with "RFID timeout" or "No RFID data."
What to check: - The DS9908R has a built-in RFID antenna. Is the RFID tag on the case within scanning range? - The correlation timeout is 5000ms (5 seconds). Make sure the scanner is held close enough to the case. - Check if the RFID tag is damaged or missing. - The DS9908R must be connected via USB and recognized by the CoreScanner SDK.
Duplicate EPC Rejected¶
What you see: "Duplicate EPC" failure message when scanning a case.
What to check: - This is expected behavior. Each EPC can only be validated once per job. The system tracks the last 100 EPCs to detect duplicates. - The operator should scan a different case. - Duplicate EPCs are cleared only when the entire job is complete, not between pallets.
Midnight Rollover Issues¶
What you see: Lot numbers are wrong after midnight, or cases fail after midnight.
What to check:
- EnableMidnightRollover should be true.
- A warning dialog should appear 5 minutes before midnight. If the operator dismissed it, the rollover will occur at the next pallet completion.
- After rollover, lot numbers increment by 1 day (YYJJJ format). Cases printed with the OLD lot number will FAIL validation after rollover. New labels must be printed.
- Check logs for "MIDNIGHT-ROLLOVER" messages.
Paused Job Won't Resume¶
What you see: Job was paused (or application was restarted mid-job) but the job doesn't resume.
What to check:
- The job state is saved in C:\gatekeeper\conveyor\data\teasdale_job_state.json.
- If the state file is corrupted, delete it and restart. The job will be lost and must be re-sent from Deacom.
- If AutoStartValidation is false, look for a "Resume Job" button on the screen after restart.
Pallet Skipping (Double-Advance)¶
What you see: The system skips a pallet, or the job shows complete with fewer pallets than expected.
What to check: - This was a known bug fixed in v0.123. Scanning during the pallet completion dialog could cause a double-advance. - If you see this on teasdale-v1.0, the fix should be included. Report to engineering if it recurs.
Known Quirks¶
- Two separate machines: Line 7 and Line 9 each have their own GateKeeper PC with a separate config file. They are independent systems.
- Teasdale stack light profile: All three lights ON when idle (unlike CargillRfid where all lights are OFF). This is the Teasdale-specific profile.
- Horn disabled via pin -1: The horn output is configured with pin -1, which effectively disables it at the hardware level. But
StackLightHornOnFail: trueis set, so the software will attempt to trigger it. In practice, the pin -1 mapping means no physical horn sounds from the LattePanda. Verify actual horn behavior on the production machine. - SGTIN-96 URN-to-Hex conversion: The DS9908R reports RFID tags as URN strings (e.g.,
urn:epc:tag:sgtin-96:...). The application converts these to raw hex for comparison with the DataMatrix barcode. This conversion is automatic. - Network credentials require DPAPI encryption: The password for the network share must be encrypted using DPAPI (Settings -> Teasdale tab -> Encrypt Password). DPAPI encryption is machine-bound, so if the PC is reimaged, the password must be re-encrypted.
- Reject is disabled:
Reject.Enabledisfalsein the reference config. Teasdale does not use a physical reject mechanism -- validation results are communicated visually and via the pallet progress UI. - Failures before stop is 99: The line does not stop on failures. The operator is expected to re-scan cases that fail.
- 5-second post-validation delay: After each scan, there is a 5-second cooldown before the next scan can be processed. This prevents rapid re-scans of the same case.
- Config audit: Changes to appsettings.json are automatically tracked in
C:\gatekeeper\conveyor\config-audit\config-changes.log.