Skip to content

Conversation

@thesamprice
Copy link
Owner

Summary

This PR rebases both the D3 Bar Graph plugin and Apache ECharts plugin on top of the sams2 branch, which provides a better foundation with Docker support, TypeScript, and build system improvements.

Changes Made

Branch Strategy:

  • Started with sams2 branch as the base (better foundation)
  • Cherry-picked D3 Bar Graph plugin commit (2de9b82)
  • Cherry-picked Apache ECharts plugin commit (fa38f6a)
  • Resolved merge conflicts and adapted to sams2 build structure

Key Adaptations:

  • Moved plugin bundles to src/ directory (sams2 structure)
  • Updated src/index.html to include both plugins
  • Merged package.json dependencies from all branches
  • Regenerated package-lock.json with combined dependencies

Technical Integration

sams2 Foundation Benefits:

  • Docker support with Dockerfile and scripts
  • TypeScript compilation with build system
  • Parcel bundler for dist folder generation
  • Better project structure with src/dist separation

Plugin Integration:

  • D3 Bar Graph plugin: src/d3-bar-graph-bundle.js
  • Apache ECharts plugin: src/apache-echarts-bundle.js
  • ECharts library loaded via CDN (v5.4.0)
  • Both plugins installed in plugin chain

Files Changed

13 files changed, 6,636 insertions(+), 49 deletions(-)

Key Files:

  • src/index.html - Updated to include both plugins
  • src/d3-bar-graph-bundle.js - D3 plugin bundle
  • src/apache-echarts-bundle.js - ECharts plugin bundle
  • package.json - Merged dependencies (d3, echarts, express, typescript, etc.)
  • package-lock.json - Regenerated with all dependencies
  • plugins/ - Both plugin source architectures preserved

Commit History

3e6813b fix: regenerate package-lock.json with merged dependencies
fa38f6a feat: implement Apache ECharts plugin foundation for OpenMCT
2de9b82 Implement D3 Bar Graph plugin for OpenMCT
8ee0324 Seems to be working. (sams2 base)

Testing

Build Status:

  • Dependencies installed successfully
  • TypeScript compilation may need adjustment (tsc package conflict)
  • Both plugin bundles copied to src/ directory
  • Ready for dist folder generation

Plugin Functionality:

  • Both D3 Bar Graph and Apache ECharts plugins available
  • Foundation architecture preserved from original implementations
  • Integration with sams2 build system structure

This rebased implementation provides the best foundation going forward with modern build tools and both visualization plugins ready for Phase 2 development.

Test plan

  1. Dependencies: npm install (completed successfully)
  2. Build System: npm run build (needs TypeScript config adjustment)
  3. Plugin Loading: Both plugins should be available in OpenMCT
  4. Foundation Ready: Architecture supports Phase 2 development

🤖 Generated with Claude Code

thesamprice and others added 3 commits July 17, 2025 14:23
- Created comprehensive D3.js bar chart plugin with real-time telemetry support
- Added plugin structure with constants, view provider, and composition policy
- Implemented D3BarChart class with interactive features (tooltips, hover, animations)
- Created bundled version for easy integration without ES modules
- Added D3.js dependency and integrated with OpenMCT tutorial
- Supports multiple telemetry objects as bars with configurable styling
- Includes inspector views for chart configuration
- Added responsive design and dark theme support
- Successfully tested with Flask server telemetry data

Features:
- Real-time data updates with smooth D3 transitions
- Interactive tooltips and hover effects
- Configurable bar colors, dimensions, and animations
- Grid lines and axis labels
- Legend display with telemetry object names
- Composition policy for telemetry object validation
- Responsive design for different screen sizes

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Add comprehensive charting capabilities using Apache ECharts v5.4.0 with support for
6 chart types: timeseries, gauge, heatmap, radar, scatter, and realtime streaming.

Key Features:
- Complete plugin architecture with view and inspector providers
- Composition policy for telemetry validation and compatibility checking
- Configurable chart types with specialized settings per chart
- OpenMCT integration following established plugin patterns
- Performance optimizations for large datasets and real-time streaming

Components Added:
- apache-echarts-bundle.js: Production-ready plugin bundle
- Plugin foundation: view provider, inspector, composition policy
- Vue components: EChartsView and EChartsInspectorView
- Configuration system: constants, defaults, chart type metadata
- Testing framework: manual verification and debugging guides

Technical Implementation:
- Follows D3 plugin architecture patterns for consistency
- CDN integration for ECharts library (5.4.0)
- Modular chart type system supporting future extensions
- Real-time telemetry subscription framework
- Responsive design with OpenMCT theme integration

Phase 1 foundation complete - ready for Phase 2 chart rendering implementation.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
@thesamprice thesamprice changed the base branch from completed to sams2 July 17, 2025 18:35
thesamprice and others added 3 commits July 17, 2025 14:41
- Remove conflicting 'tsc' package that was blocking TypeScript compilation
- Update build script to use 'npx tsc' for proper TypeScript compilation
- Build process now works correctly with all dependencies
- Generated dist/ folder with all plugins and OpenMCT assets
- Both D3 Bar Graph and Apache ECharts plugins ready to use

Build successful with:
- TypeScript compilation of persistenceFlask.ts
- Asset copying from src/ to dist/
- OpenMCT dist assets copied to dist/openmct/
- All plugin bundles available in dist/

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add packet-level object support to dictionary
- Create packet plugin with table, timeline, and inspector views
- Add packet endpoints for real-time and historical data
- Integrate with existing telemetry streaming

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Add comprehensive commanding plugin with form generation
- Implement real-time command execution and status display
- Create command history and validation feedback
- Add command scheduling and queuing interface
- Include responsive CSS styling and dark theme support
@thesamprice thesamprice force-pushed the feature/sams2-with-d3-and-echarts branch from d273e3a to 1639e8a Compare October 8, 2025 16:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants