12 KiB
Engineering Assistant: Information Requirements
Executive Summary
To build a comprehensive chatbot/engineering assistant for your DataPRO project (DAS data acquisition system), you need to gather information across 4 main categories: Source Code Documentation, Firmware, Schematics, and Domain-Specific Knowledge.
1. Source Code Documentation & Knowledge Base
1.1 API Documentation (HIGH PRIORITY)
Purpose: Enable the AI to understand how to use your code
What to gather:
-
Namespace:
DbAPI(DataPRO Database API - 375 lines)- All database stored procedures with parameters
- Connection string formats and error codes
- Example usage patterns
- Database versioning strategy
-
Namespace:
DTS.DASLib.Service(IService - ~2000 lines)- Hardware service interfaces (SLICE, TDAS, Ribeye, CANFD)
- ARM/Download/Realtime/Diagnostics action methods
- State machine transitions and triggers
- Callback mechanisms and event handling
-
Namespace:
DTS.Common(Common libraries - 19+ modules)- Data models: Channel, Sensor, TestSetup, Group, Hardware
- Serialization formats: IRIG CH10, ISO, CSV, TDM, HDF5
- Calculation engines: Linearization, Filtering, Decimation
- Communication interfaces: USB, Ethernet, Serial, CAN
Deliverables:
- Complete API reference with method signatures
- Examples of common workflows (create test setup, arm hardware, download data)
- Architecture diagrams (modular composition, dependency injection flow)
1.2 Code Structure Documentation (MEDIUM PRIORITY)
Purpose: Help AI understand architectural decisions
What to gather:
- Module Discovery System: Prism DirectoryModuleCatalog behavior
- Database Migration Pipeline: DatabaseMigrator.cs logic
- State Machine: DASState, States.cs, Triggers.cs
- Configuration System: app.config with 699 lines of settings
Key questions to document:
- How do modules communicate (EventAggregator patterns)?
- What's the upgrade/downgrade path for database versions?
- How are hardware-specific differences handled (SLICE vs TDAS)?
- What's the partitioning between DataPRO (UI) vs IService (hardware logic)?
2. Firmware Documentation (HIGH PRIORITY)
2.1 SLICE Hardware Family
Purpose: Enable firmware-specific troubleshooting and configuration
What to gather:
-
SLICE 1.5, SLICE 2, SLICE 6, SLICE 6A, SLICE 6AIR
- Protocol versions and compatibility matrix
- ADC specifications (resolution, sample rates, input ranges)
- Firmware update procedures
- Known firmware bugs and workarounds
-
SLICE PRO DB, SLICE PRO FD (CAN FD support)
- CAN FD configuration parameters
- Timestamp synchronization mechanisms
- Memory management (data buffering)
-
SLICE Service Implementation (
SLICE Service.cs~10 files)- Arming sequences and timing
- Calibration procedures
- Real-time streaming protocols
- Trigger check implementations
Key files to reference:
DTS.Common.Serialization/IRIGCH10/(data format specs)IService/Classes/SLICEService/(service implementations)DASFactoryDb/(device discovery logic)
2.2 TDAS (Test Data Acquisition System)
Purpose: Support TDAS-specific workflows
What to gather:
- TDAS module configuration
- Protocol differences from SLICE
- Firmware update procedures
- Specialized features (telemetry, external triggers)
2.3 PowerPRO & Ribeye
Purpose: Document specialized hardware support
What to gather:
- Power input monitoring capabilities
- Battery management features
- Ribeye command set
3. Schematics & Hardware Documentation (HIGH PRIORITY)
3.1 Hardware Architecture
Purpose: Enable hardware-level troubleshooting
What to gather:
-
Block Diagrams:
- SLICE main board architecture
- Channel architecture (analog, digital, CAN, UART, Stream)
- Power distribution system
- Communication bus topology (USB hub, Ethernet switch)
-
Pinouts & Connectors:
- J1-J? connector definitions
- analog input ranges and configurations
- digital I/O specifications
- CAN transceiver circuits
-
Hardware Module Details:
- DAS (Data Acquisition System) modules
- TOM (Test Object Monitor) modules
- Sensor interface circuits
Key areas to document:
- Channel types (AnalogInput, AnalogOutput, DigitalInput, DigitalOutput, CAN, UART, Stream, Timestamp)
- Excitation voltage options (2V, 5V, 10V, auto)
- Shunt calibration circuitry
- Level trigger circuits
3.2 Sensor Interface Documentation
Purpose: Help users configure sensors correctly
What to gather:
- Sensor database formats (CSV, CS3, TDC, SIF, XML, MOD)
- Sensor configuration parameters:
- Sensitivity, range, excitation
- Filters (low-pass, high-pass, notch)
- Calibration coefficients
- Units and scaling
- Sensor compatibility matrix
4. Domain-Specific Knowledge (MEDIUM PRIORITY)
4.1 Testing Workflows
Purpose: Enable workflow guidance
What to gather:
-
Test Setup Creation:
- Define test object (what you're testing)
- Add sensors (attach to test object)
- Add hardware (DAS modules, TOM modules)
- Configure channels (map sensors to hardware)
- Set triggers (level triggers, time triggers)
- Configure data export formats
-
Arming Sequences:
- Pre-arm checks (diagnostics, voltage, temperature)
- TOM safety checks
- Clock synchronization
- Final arm confirmation
-
Data Collection:
- Real-time monitoring options
- Data streaming modes
- Event detection
-
Post-Test:
- Download procedures
- Export formats (Diadem, CSV, HDF5, ISO, TDM)
- Report generation
4.2 Configuration Settings (Critical - 699-line config file)
Purpose: Explain obscure but critical settings
Key categories to document:
- Hardware Discovery: Multicast auto-discovery, IP ranges
- Real-time: Polling intervals, optimization settings
- Database: Connection strings, logging levels
- Export: ISO compliance, CSV delimiters, file naming
- Squib Fire: Fire modes (CAP, CONSTANT), tolerance settings
- Diagnostics: Sample rates, filtering options
Notable settings:
LocalDbHost: Database server locationRealtimeDelayBetweenPolls: 4ms defaultDiagnosticsSampleRateHz: 10000 HzSampleRateAAFilterRatio: 5 (anti-aliasing)AllowedVoltageInsertionErrorPercent: 1%PowerAndBattery: Battery monitoring settings
5. Error Handling & Troubleshooting (MEDIUM PRIORITY)
5.1 Common Error Codes
What to gather:
ErrorCodes.csdefinitions- Database error codes (sp_ procedures)
- Hardware-specific error messages
- Connection timeout scenarios
5.2 Diagnostic Procedures
What to gather:
- Hardware discovery diagnostics
- Digital input diagnostics
- CAN diagnostics
- TCDiagnosticResult handling
- Squib resistance checks
6. Export & Integration Formats (LOW PRIORITY but important)
6.1 Supported Export Formats
What to gather:
- IRIG CH10 (standard for test data)
- ISO 17469 (automotive test data)
- Diadem XML (National Instruments)
- CSV/TSV (text formats)
- HDF5 (hierarchical data)
- TDM/TDMS (NI test data)
6.2 External System Integration
What to gather:
- CANFD API integration
- Equipment exchange formats
- Third-party sensor import (CS3, TDC, EQX, SIF, XML)
7. Testing & Validation Data (MEDIUM PRIORITY)
7.1 Unit Tests
What to gather:
- Existing NUnit test suite (DatabaseUnitTesting, StateMachine.Tests, SensorDB.Test)
- Test data examples
- Expected output formats
- Regression test scenarios
7.2 Sample Test Setups
What to gather:
- Sample test configuration files
- Test setup templates (.tts files)
- Hardware configuration files
- Sensor databases
8. Installation & Deployment (LOW PRIORITY)
8.1 Installer Documentation
What to gather:
- InstallShield custom actions
- SQL LocalDB instance management
- Driver installation (WINUSB, HID)
- Licensing system (Portable.BouncyCastle, CoreCompat.Portable.Licensing)
8.2 Database Schema
What to gather:
- Database version table structure
- Stored procedure versions
- Migration scripts (473 SQL files in
DataPRO_sql/) - Indexes and performance optimizations
9. Performance Considerations (MEDIUM PRIORITY)
9.1 Known Performance Bottlenecks
What to gather:
- Large file handling (gcAllowVeryLargeObjects enabled)
- Database query optimization patterns
- Memory allocation patterns
- Real-time data buffering strategies
9.2 Configuration Optimization
What to gather:
MaxSamplesToFilter: 100 millionReceiveBufferSizeBytes: 65536SendBufferSizeBytes: 65536- Concurrent download settings
- Cache settings
10. Licensing & Compliance (LOW PRIORITY)
10.1 Licensing System
What to gather:
- License property structures
- Licensing API endpoint (
http://dtslicensing/) - Feature flags and entitlements
- Trial vs full license differences
10.2 Compliance Standards
What to gather:
- ISO 9001 requirements for test data
- Automotive industry standards (ASPICE, ISO 26262 if applicable)
- Data retention requirements
Priority-Based Gathering Plan
Phase 1 (Week 1-2): Core API Documentation
- Document DbAPI namespace
- Document DTS.DASLib.Service namespace
- Document DTS.Common core classes
- Create database schema documentation
Phase 2 (Week 3-4): Hardware Documentation
- Document SLICE hardware family
- Document TDAS hardware
- Document PowerPRO & Ribeye
- Document sensor interfaces
Phase 3 (Week 5-6): Workflows & Configuration
- Document testing workflows
- Document configuration system
- Document error handling
- Create troubleshooting guide
Phase 4 (Week 7-8): Advanced Topics
- Document export formats
- Document test data
- Document performance tuning
- Document licensing
Recommended Data Formats for Chatbot Training
1. Structured Documentation
- Markdown files with clear hierarchies
- YAML/JSON for configuration schemas
- CSV for lookup tables (error codes, hardware specifications)
2. Code Examples
- C# code snippets with comments
- SQL stored procedure examples
- Configuration file examples
3. Dialogue Patterns
- Common user questions
- Troubleshooting dialogues
- Configuration guidance conversations
4. Knowledge Graph
- Class relationships
- Hardware dependencies
- Workflow sequences
Quick Start: First 10 Files to Document
- DataPRO/DbAPI/DbAPI.cs (375 lines) - Database API entry point
- DataPRO/IService/Modules/SLICE Service/SLICE Service.cs - Main hardware service
- DataPRO/DbAPI/Database/IDatabase.cs - Database interface
- DataPRO/DbAPI/DAS/IDataRecorders.cs - Hardware interface
- DataPRO/DbAPI/Sensors/ISensors.cs - Sensor interface
- DataPRO/DbAPI/TestSetups/ITestSetups.cs - Test setup interface
- Common/DTS.Common.DataModel/Classes/Enums.cs - All enums
- Common/DTS.Common.DAS.Concepts/DAS/Channel/Channel.cs - Channel model
- Common/DTS.Common.Serialization/IRIGCH10/TMATS/TMATS.cs - IRIG format
- DataPRO/DataPRO/app.config (699 lines) - Critical configuration
Next Steps
Would you like me to:
- Create detailed documentation stubs for the top 10 priority files?
- Generate SQL documentation for the 473 database procedures?
- Build a knowledge base schema for the chatbot?
- Extract and explain a specific subsystem (e.g., SLICE arming sequence)?
- Create sample Q&A pairs for common user scenarios?
Let me know which direction you'd like to take first, and I'll help you build out the engineering assistant's knowledge base!