Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,5 @@
A collection of examples, tutorials, and articles for OpenDDS developers.

[A Chat Application with Node, OpenDDS, and Websockets](node-websocket-chat/README.md) shows how to use OpenDDS with a node webserver to make a horizontally scalable chat application.

[A Tactical Microgrid Standard implementation](tactical-microgrid-standard/README.md) demonstrates using OpenDDS to manage and control distributed devices in tactical microgrids.
59 changes: 59 additions & 0 deletions tactical-microgrid-standard/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Tactical Microgrid Standard (TMS) Implementation

This project implements the Tactical Microgrid Standard (MIL-STD-3071) using OpenDDS for communication between different components of a microgrid system. It provides a simulation for managing and controlling tactical microgrids with distributed power sources, loads, and distribution devices.

## Overview

The implementation consists of several key components:

- **Common Libraries**: Shared functionality for communication and device management, including handshaking, timer management, microgrid controller selection, and QoS profiles
- **Controller**: Microgrid controller that coordinates power devices and handles operator requests
- **Power Devices**: Including:
- Sources (power generation)
- Loads (power consumption)
- Distribution (power routing)
- **CLI**: Command-line interface for operator interaction

## Prerequisites

- OpenDDS
- CMake (version 3.27 or higher)
- C++ compiler with C++17 support

## Building the Project

```bash
cmake -B <build_dir>
cmake --build <build_dir>
```

## Project Structure

- `cli/`: Command-line interface implementation
- `cli_idl/`: Interface definition files for CLI commands
- `common/`: Shared libraries and utilities
- TMS data model definitions (mil-std-3071_data_model.idl)
- TMS Handshaking function
- TMS microgrid controller selection
- TMS QoS profiles
- Utility functions
- `controller/`: Microgrid controller implementation
- `power_devices/`: Power device implementations
- Source devices
- Load devices
- Distribution devices
- `tests/`: Test suite

## Testing

Tests can be run using CTest after building the project:

```bash
cd <build_dir>
ctest
```

## References

- [Tactical Microgrid Standard (MIL-STD-3071)](https://quicksearch.dla.mil/qsDocDetails.aspx?ident_number=285095)
- [OpenDDS](https://github.com/OpenDDS/OpenDDS)