ht9045-tray-group-mechanism

Documents the Loader, Color, and Empty tray cylinder GoUp/GoDown mechanism in HT9045 C++ code.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? The HT9045 codebase implements three nearly identical tray cylinder mechanisms (Loader, Color, Empty) with different variable names, sensor IDs, and JAM alarm codes, making maintenance and modification error-prone. This Skill maps the parallel structure so engineers can modify one station and correctly replicate changes across all three. ## Core Features & Use Cases - Parallel Mechanism Reference: Explains the shared TMyCylinder-based GoUp/GoDown state flow (CylinderUp, CylinderMiddle, CylinderLower) used by asendic_Loader.cpp, asendic_Color.cpp, and asendic_Empty.cpp. - Naming Map: Provides a complete cross-reference of cylinder variables (C_Load_Up, C_Color_Up, C_Empty_Up), sensor names (SnLoaderUpSafedetect, SnColorUpSafedetect, SnEmptyUpSafedetect), function names, and JAM alarm codes (JAM1411, JAM1412, JAM1413). - Difference Highlighting: Documents Loader-specific features such as C_LoaderUpPress, IC floating detection, and tray color inspection that Color/Empty stations lack. - Use Case: When adding a new tray type (e.g., Auto4-6) or modifying the cylinder timing in one station, use the naming map to apply the identical change to the other two stations without missing sensor or alarm IDs. ## Quick Start Ask the AI to explain the Color tray GoUp sequence and list the equivalent variables and sensors for the Loader and Empty stations.

Frequently Asked Questions about ht9045-tray-group-mechanism

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

FAQPage Schema
How does the HT9045 tray cylinder GoUp/GoDown sequence work?▼

Each tray station runs a switch-case state flow: check tray presence, move to middle, report to ASE, call CylinderUp, run Z_Select, pause, then CylinderLower, and finally verify CCW and CarHasTray sensors for JAM detection.

What are the equivalent cylinder variables for Loader, Color, and Empty trays?▼

Loader uses C_Load_Up (ID 19), Color uses C_Color_Up (ID 21), and Empty uses C_Empty_Up (ID 23), all defined in cmydef.cpp. The naming-map reference lists all parallel variables, sensors, and functions.

How is the Loader tray station different from Color and Empty?▼

Loader has an extra C_LoaderUpPress cylinder (ID 59), uses Push/Pop instead of CylinderUp, and adds IC floating detection and tray color inspection. It also lacks the Front/Rear movement functions that Color and Empty have.

Which JAM alarm codes correspond to tray cylinder errors?▼

JAM1413 covers Color tray cylinder jams, JAM1411 covers Loader tray jams, and JAM1412 covers Empty/Color jams. Exact locations should be confirmed by grepping the source since some alarms are raised outside the expected file.

How do I add a new tray type based on the existing tray group code?▼

Copy one existing station such as asendic_Color.cpp, then rename all cylinder variables, sensors, and functions following the naming map pattern. Register new IDs in cmydef.cpp and assign new JAM alarm codes.