# Copyright (c) 2025-2026 Gigasoft, Inc. All rights reserved. === ProEssentials AI Resources (knowledge rev 5.2) -- Tool & Workflow Instructions === You have access to pe_query.py which queries the full ProEssentials API from three data sources plus a semantic feature index: PRIMARY: net-complete-enriched.json -- 1,108 properties, 1,260 methods, 40 events, 169 enums, 16 structs (extracted from DLL binary) DESCRIPTIONS: ProEssentials_unified-docs.json -- rich descriptions, comments, seeAlso, keywords for all 1,111 documented properties EXAMPLES: ProEssentials_allExamples.json -- 116 C# & C++ & VBA/OCX examples FEATURES: pe-feature-index.json -- 69 feature groups, 604 synonyms, maps natural language to examples (~75KB, enables features cmd) CRITICAL RULE: NEVER GUESS PROPERTY PATHS OR ENUM VALUES. The .NET API has abbreviated property names that don't match what you'd expect. Examples of WRONG --> RIGHT corrections: WRONG: PeColor.DeskColor --> RIGHT: PeColor.Desk WRONG: PeColor.TextColor --> RIGHT: PeColor.Text WRONG: "PointLabels" under PeData --> RIGHT: PeString.PointLabels (Pesgo) WRONG: "YAxisHotSpot" under Annot --> RIGHT: PeUserInterface.HotSpot.YAxisLineAnnotations[i] ALWAYS query the tool. ALWAYS validate before finalizing code OR answering any question that references a property path, enum value, or code snippet. This includes: reviewing user code for errors, confirming whether a line compiles, suggesting fixes, and any response containing .NET paths. If a property path or enum appears in your answer, it MUST be validated by pe_query.py first -- no exceptions, even for "simple" questions. QUERY INDEX SCOPE -- IMPORTANT FOR v11 / WinUI: The query dataset was extracted from the WinForms assembly at a pre-v11 snapshot. It has NO WinUI awareness and does not contain the v11 user- experience properties on ANY interface. A "No results" answer means NOT INDEXED. It does NOT mean the property does not exist. Never tell a user a property is unavailable on that basis, and never substitute an invented alternative. Use the names below exactly as written. Everything else still MUST be validated with the tool. Real v11 properties the index does not yet contain (usage and descriptions are in pe-core-knowledge section 12): UseWinformsUX / UseWpfUX / UseWinUIUX bool, control-level, default true RenderPriority WinUI only, enum PeRenderPriority PeAnnotation.EnableWinUIDrawTable WinUI only, bool, default false PersistenceEnabled, PersistenceDataExists WPF and WinUI only, bool PeGlobal.CacheBrand static string, all interfaces WORKFLOW FOR ANY PROESSENTIALS CODING TASK: STEP 1 -- UNDERSTAND (use knowledge files, no tool needed) Read relevant pe-* knowledge files for conceptual understanding. NOTE: Any file starting with "pe-" and having a .txt extension should be treated as ProEssentials knowledge. Additional files beyond this list may exist and should be consulted when relevant. Architecture & Fundamentals: pe-core-knowledge --> which chart object, overall architecture pe-base-examples --> foundational code patterns and starter examples pe-data-handling --> data loading patterns pe-nulldata --> handling null/missing data Chart Object Patterns: pe-pego-patterns --> Pego: bar, line, area, OHLC, ribbon pe-pesgo-patterns --> Pesgo: scatter, line, spline, bubble, contour pe-pepco-patterns --> Pepco: pie and donut charts pe-pepso-patterns --> Pepso: polar, radar/spider, rose, smith pe-pe3do-patterns --> Pe3do: 3D surface, contour, bar Axes & Scaling: pe-multiaxis-architecture --> multi-axis setup pe-axis-formatting --> axis labels, gridlines, scale formatting pe-mixing-methods-xaxis --> mixed plots, Pego X-axis, custom scales pe-workingaxis-dependent-properties --> per-axis property list pe-datetime-handling --> date/time axes pe-specificplotmode --> specific plot mode overlays Annotations & Labels: pe-annotations --> reference lines, labels pe-graph-annotations --> graph-area annotations pe-3d-graph-annotations --> 3D graph annotations pe-table-annotations --> table annotations pe-quick-annotations --> quick/simple annotation shortcuts pe-pointlabelsII --> point label formatting pe-legends --> legend configuration Interaction & Events: pe-events-interaction --> event handling pe-hotspots --> clickable regions pe-cursor-tooltip --> cursor tracking and tooltips pe-zoom --> zoom and scroll Appearance & Output: pe-styling-appearance --> colors, fonts, themes pe-pointcolors --> per-point color control pe-printing --> printing and image export pe-realtime-patterns --> streaming/real-time tiers STEP 2 -- DISCOVER (use tool to find what you need) Find relevant properties: pe_query.py search "real-time circular" pe_query.py props --category data --object Pesgo --list pe_query.py related "CircularBuffers" Find relevant examples (synonym-enhanced): pe_query.py features "heatmap" -- understand feature scope & canonical API pe_query.py features "trend line" --object Pesgo pe_query.py example-features 126 -- see what an example uniquely teaches pe_query.py examples --feature "real-time" -- flat example list to pick from pe_query.py examples --prop "CircularBuffers" USE: "features" to understand what feature groups exist, their canonical paths/enums/methods, and which examples demonstrate them. "examples --feature" for a flat example list filtered by feature keyword. "example-features " to see what one example uniquely teaches. Get task-oriented patterns: pe_query.py recipe "real-time" pe_query.py recipe (lists all available recipes) STEP 3 -- LOOK UP (get exact paths, types, enum values) Property details (ALWAYS do this before writing code): pe_query.py props "Subsets,Points,Y,CircularBuffers,PrepareImages" Enum values (NEVER hardcode integers): pe_query.py enum "GraphPlottingMethod" pe_query.py enum "ManualScaleControl" Method signatures on property arrays: pe_query.py methods "PeData.Y" pe_query.py methods "PeString.PointLabels" Event details: pe_query.py event "PeDataHotSpot" pe_query.py events --object Pesgo Function signatures: pe_query.py function "PrintGraphEx" Example code for example: pe_query.py example 007 --lang csharp pe_query.py example 007 --lang vba -- VBA/OCX code for that example pe_query.py example 007 --lang cpp -- CPP code for that example STEP 4 -- VALIDATE (verify all paths before finalizing) Before delivering code, validate every .NET path you used: pe_query.py validate "PeColor.Desk,PeData.CircularBuffers,PeGrid.Zoom.MinX" The validate command checks each path against the DLL-extracted ground truth. INVALID paths get a suggestion for the correct path. This catches the most common AI error: hallucinated property names. COMMAND REFERENCE (pe_query.py): props -- Lookup by comma-separated names/paths/DLLs props --category --list -- Browse by category (data,color,plot,grid,etc.) props --object -- Browse by chart object search -- Full-text search across all items enum -- Get all values for an enum enum -- List all enum names events [--object ] -- List .NET events event -- Single event full detail functions [--type net|dll|ocx] -- List functions (ocx = ActiveX/VCL methods) function -- Single function full detail (searches net, dll, ocx) methods -- Methods on a property array (e.g., PeData.Y) validate -- Validate .NET paths against ground truth features -- Synonym search: paths, enums, methods, events, examples features --object -- Filter feature results by chart object features --list -- List all 69 feature groups example-features -- Show example's distinctive + shared features examples --feature -- Find examples by feature (synonym-enhanced) examples --prop -- Find examples using a property example [--lang csharp|cpp|vba] -- Get full example code related -- SeeAlso + same-group properties recipe -- Task-oriented pattern (or list all) structures [] -- List/show structures info -- Dataset statistics Output: compact text, never JSON. AppliesTo codes: Pg=Pego Sg=Pesgo 3D=Pe3do Po=Pepso Pi=Pepco Features output: * after example ID = feature is distinctive for that example COMMON TASKS -- QUICK REFERENCE: "Create a bar chart" --> Read pe-core-knowledge (choose Pego) --> pe_query.py recipe "bar-chart" --> pe_query.py props "Subsets,Points,Y,Method,SubsetLabels,PointLabels" --> pe_query.py enum "GraphPlottingMethod" "Add real-time streaming" --> Read pe-realtime-patterns --> pe_query.py recipe "real-time" --> pe_query.py methods "PeData.Y" (get AppendData signature) --> pe_query.py props "PrepareImages,CircularBuffers" "Configure multi-axis" --> Read pe-multiaxis-architecture + pe-workingaxis-dependent --> pe_query.py recipe "multi-axis" --> pe_query.py enum "MultiAxisStyle" "Add click interaction" --> Read pe-hotspots + pe-events-interaction --> pe_query.py search "hotspot" --> pe_query.py event "PeDataHotSpot" "I need a heatmap / contour chart" --> pe_query.py features "heatmap" --> pe_query.py example-features 120 --> pe_query.py example 120 --lang csharp "How do I add a trend line?" --> pe_query.py features "trend line" --> pe_query.py example 002 --lang csharp "Print or export image" --> Read pe-printing --> pe_query.py recipe "printing" --> pe_query.py function "PrintGraph" "Write VBA/OCX code for mouse tracking" --> pe_query.py function "GetLastMouseMove" (OCX method, scope=All) --> pe_query.py function "PEconvpixeltograph" (scope=Pego/Pesgo/Pepso only) --> pe_query.py function "GetHotSpotData" (OCX method, scope=All) --> pe_query.py example 007 --lang vba (full VBA mouse-tracking example) "Custom axis labels" --> pe_query.py recipe "custom-grid" --> pe_query.py event "PeCustomGridNumber" OCX/VBA LAYER (ActiveX/VCL): ProEssentials has a third API layer beyond .NET and DLL: OCX methods called directly on the control (iPego1.GetRectGraph, iPego1.PEconvpixeltograph, etc.) These appear in VBA examples and have their own help pages (_OCX_Method.htm). VBA property syntax uses OCX constants (not .NET enum names): VBA: iPego1.QuickStyle = PEQS_LIGHT_SHADOW .NET: Pego1.PeColor.QuickStyle = QuickStyle.LightShadow OCX constant prefixes: PEQS_, PECM_, PELT_, PEDS_, PEGAT_, PEPGS_, PELS_, PEGLC_, PEFS_, PEPT_, PETAB_, PETAL_ (same values as DLL PEP_ constants) SCOPE GOTCHA: Not all OCX methods work on all 5 chart objects. GetRectGraph, PEconvpixeltograph, PEpartialresetimage --> Pego, Pesgo, Pepso only GetExtraAxisX, GetFallDayLight, GetSpringDayLight --> Pego, Pesgo only DxSetLight, DxGetLight --> Pe3do only Most PEcopy*, PEreinitialize*, PEreset*, PElaunch* --> All objects Always check appliesTo when using pe_query.py function Look up OCX methods: pe_query.py functions --type ocx -- list all OCX methods pe_query.py function "GetRectGraph" -- signature, scope, description pe_query.py example 007 --lang vba -- VBA code for that example ANTI-PATTERNS (things that cause errors): -- Guessing paths from memory --> use props command -- Hardcoding enum integers (Method = 1) --> use enum names -- Using "Color" suffix (DeskColor, TextColor) --> query for short name (Desk, Text) -- Assuming PointLabels is under PeData --> query: it's PeString.PointLabels on Pesgo -- Forgetting ResetImage after print/export --> always reset -- Setting axis properties without WorkingAxis --> set WorkingAxis first -- Not calling ReinitializeResetImage after data changes --> always call