ht9045-lotinfo-flow

Documents HT9045 LotInfo batch management flows including Lot Start, Lot End, and recipe download.

Updated May 28, 2026
One-click install
npx skills add https://github.com/HPI-Jimmy-Chiu/HT904_V899 --skill ht9045-lotinfo-flow-hpi-jimmy-chiu
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: ht9045-lotinfo-flow
Source: https://github.com/HPI-Jimmy-Chiu/HT904_V899/tree/main/.agents/skills/ht9045-lotinfo-flow
Command: npx skills add https://github.com/HPI-Jimmy-Chiu/HT904_V899 --skill ht9045-lotinfo-flow-hpi-jimmy-chiu

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Engineers maintaining the HT9045 handler codebase struggle to trace the LotInfo batch management logic spread across an 11,886-line uLotInfo.cpp file, making it hard to understand Lot Start/End flows, recipe download/upload, and SECS/GEM event triggers. ## Core Features & Use Cases - Lot Lifecycle Reference: Maps the complete SetLotStart and sbSECSLotEndClick state machines, including caller tables, guard conditions, and config.ini persistence keys. - Recipe Download/Upload Internals: Explains DownloadFromServer, DoBackupSetupFile, DoOverWriteSetupFile, and the Security_new.def parameter-protection flags that decide which local settings survive a server download. - Use Case: When a field engineer reports that Contact Height is overwritten after a recipe download, load this Skill to identify the Security_new.def [Network] Contact High flag and the DoOverWriteSetupFile restore logic responsible. ## Quick Start Ask the AI to explain how the HT9045 Lot Start flow works from sbSECSLotStartClick through SetLotStart and the DoLotStart SECS event.

Frequently Asked Questions about ht9045-lotinfo-flow

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How does the HT9045 Lot Start flow work?▼

Lot Start begins at sbSECSLotStartClick or an OLP LotInfo_REQUEST, then calls SetLotStart which writes the Lot ID and start time to config.ini, clears by-lot statistics, fires the DoLotStart SECS event, and locks the UI. The full state machine is defined around line 1438 of uLotInfo.cpp.

How do I trace recipe download logic in uLotInfo.cpp?▼

Recipe download runs through DownloadFromServer, which validates the RMS connection, backs up local parameters via DoBackupSetupFile, unzips the package with 7z.exe, verifies eight required data files, then restores protected local settings via DoOverWriteSetupFile.

Why is Contact Height overwritten after a recipe download?▼

Contact Height is overwritten when the Security_new.def [Network] Contact High flag is true, meaning server values are accepted. The default is false, which preserves local Contact Height during DoOverWriteSetupFile; Greatek builds force all flags to true.

When does the DoLotStart SECS event fire?▼

DoLotStart fires inside SetLotStart only when the customer is not TSMC Tainan, SECS/GEM is enabled, and RunInfo.bLotStart is false, preventing duplicate events. In 2DID sorting mode, DoVisualSortLotStart is sent instead.

Why does Lot End get rejected on the HT9045?▼

sbSECSLotEndClick rejects Lot End when SystemStart is true, CheckCanChangeRealDummy fails, or iTestHeadMotorTask equals 1, meaning the index is currently pressing down. These guards prevent ending a lot during active machine operation.

Where is LotInfo data persisted between restarts?▼

All Lot Info fields persist to config.ini under the [Lot Info] section at AuthPath, including Lot ID, LotStartTime, OP ID, Run Mode, and Station. On FormShow, SetLotStart runs in restore mode with bReadFromFile=true to reload these values.