{ "repo_notes": [ { "content": "" } ], "pages": [ { "title": "Overview", "purpose": "Introduce ThingsGateway, explaining what it is, its core purpose as an industrial IoT gateway, and the high-level architecture", "page_notes": [ { "content": "" } ] }, { "title": "Key Features", "purpose": "List and describe the main features including multi-protocol support, plugin architecture, data persistence options, and deployment models", "parent": "Overview", "page_notes": [ { "content": "" } ] }, { "title": "System Requirements and Dependencies", "purpose": "Document the .NET versions, target frameworks, required NuGet packages, and system requirements", "parent": "Overview", "page_notes": [ { "content": "" } ] }, { "title": "Getting Started", "purpose": "Provide quick-start guide for installing and running ThingsGateway", "page_notes": [ { "content": "" } ] }, { "title": "Installation and Deployment", "purpose": "Explain deployment options including Docker (x64/ARM64), web server, desktop application, and configuration basics", "parent": "Getting Started", "page_notes": [ { "content": "" } ] }, { "title": "Initial Configuration", "purpose": "Guide users through initial setup including appsettings.json, environment variables, logging configuration, and first channel/device setup", "parent": "Getting Started", "page_notes": [ { "content": "" } ] }, { "title": "Architecture Overview", "purpose": "Explain the overall system architecture including layered design, separation of concerns, and component relationships", "page_notes": [ { "content": "" } ] }, { "title": "Layered Architecture", "purpose": "Describe the Foundation, Gateway Application, and UI/Admin layers and their responsibilities", "parent": "Architecture Overview", "page_notes": [ { "content": "" } ] }, { "title": "Plugin System Architecture", "purpose": "Explain the plugin architecture including Foundation vs Plugin layer separation, dynamic loading with AssemblyLoadContext, and plugin types", "parent": "Architecture Overview", "page_notes": [ { "content": "" } ] }, { "title": "Build System and Conditional Compilation", "purpose": "Document the MSBuild-based build system including Directory.Build.props, conditional plugin loading, multi-targeting, and NuGet package generation", "parent": "Architecture Overview", "page_notes": [ { "content": "" } ] }, { "title": "Foundation Layer", "purpose": "Document the core foundation libraries that provide protocol implementations and communication primitives", "page_notes": [ { "content": "" } ] }, { "title": "Device Communication", "purpose": "Explain DeviceBase abstraction, IDevice interface, protocol implementations, read/write operations, and data parsing", "parent": "Foundation Layer", "page_notes": [ { "content": "" } ] }, { "title": "Channel Architecture", "purpose": "Document IChannel interface, channel implementations (TCP/UDP/Serial), channel options, and connection lifecycle", "parent": "Foundation Layer", "page_notes": [ { "content": "" } ] }, { "title": "Data Handling and Transformation", "purpose": "Describe DataHandlingAdapter, message parsing, ThingsGatewayBitConverter for endianness/format conversion, and WaitHandlePool for request-response correlation", "parent": "Foundation Layer", "page_notes": [ { "content": "" } ] }, { "title": "Core Utilities", "purpose": "Document TimerX scheduling, ExpiringDictionary caching, WaitLock concurrency primitives, and Reflect utilities", "parent": "Foundation Layer", "page_notes": [ { "content": "" } ] }, { "title": "Gateway Application", "purpose": "Explain the main gateway application layer that orchestrates device communication and data flow", "page_notes": [ { "content": "" } ] }, { "title": "Runtime Management System", "purpose": "Document the entity-to-runtime conversion, GlobalData static registry, RuntimeServiceHelper, and runtime synchronization", "parent": "Gateway Application", "page_notes": [ { "content": "" } ] }, { "title": "Device Lifecycle Management", "purpose": "Explain DeviceThreadManage, driver initialization, StartAsync/StopAsync lifecycle, TaskSchedulerLoop, and thread management", "parent": "Gateway Application", "page_notes": [ { "content": "" } ] }, { "title": "Variable Management", "purpose": "Document VariableRuntime, VariableSourceRead, variable packing optimization, and data collection workflow", "parent": "Gateway Application", "page_notes": [ { "content": "" } ] }, { "title": "Concurrency and Read/Write Coordination", "purpose": "Explain AsyncReadWriteLock, reader/writer priority, duty cycle control, and concurrent operation management", "parent": "Gateway Application", "page_notes": [ { "content": "" } ] }, { "title": "Event System", "purpose": "Document GlobalData event dispatchers, VariableValueChangeEvent, DeviceStatusChangeEvent, AlarmChangedEvent, and event flow", "parent": "Gateway Application", "page_notes": [ { "content": "" } ] }, { "title": "Redundancy and Failover", "purpose": "Explain device redundancy system, master/slave configuration, failover triggers, and variable state transfer", "parent": "Gateway Application", "page_notes": [ { "content": "" } ] }, { "title": "Plugin Development", "purpose": "Guide for developing custom plugins for data collection and business logic integration", "page_notes": [ { "content": "" } ] }, { "title": "Collection Plugins (CollectBase)", "purpose": "Document how to create data collection plugins including protocol implementation, variable loading, and scheduled tasks", "parent": "Plugin Development", "page_notes": [ { "content": "" } ] }, { "title": "Business Plugins (BusinessBase)", "purpose": "Explain business plugin development for data persistence, distribution, and serving protocols", "parent": "Plugin Development", "page_notes": [ { "content": "" } ] }, { "title": "Plugin Service and Dynamic Loading", "purpose": "Document PluginService, AssemblyLoadContext usage, plugin discovery, driver instantiation, and property configuration", "parent": "Plugin Development", "page_notes": [ { "content": "" } ] }, { "title": "Plugin Packaging and Distribution", "purpose": "Explain how to package plugins as NuGet packages, versioning, and deployment via Directory.build.targets", "parent": "Plugin Development", "page_notes": [ { "content": "" } ] }, { "title": "Built-in Protocols", "purpose": "Document the built-in protocol implementations including Modbus, Siemens S7, OPC UA, OPC DA, and Dlt645", "page_notes": [ { "content": "" } ] }, { "title": "Modbus Protocol", "purpose": "Document Modbus Master/Slave implementations, RTU/TCP/UDP support, function codes, and address parsing", "parent": "Built-in Protocols", "page_notes": [ { "content": "" } ] }, { "title": "Siemens S7 Protocol", "purpose": "Explain S7 Master implementation, PLC types, area addressing, and data block access", "parent": "Built-in Protocols", "page_notes": [ { "content": "" } ] } ] }