Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/karljj1/kdis

DIS(IEEE 1278.1) Fully Implemented in C++. A complete open source implementation of DIS (Distributed Interactive Simulation) in C++. 1278.1 and 1278.1a are fully implemented including enumerations. Includes several utility classes to help with developing your DIS app.
https://github.com/karljj1/kdis

cpp data-formats dis kdis networking protocols simulation

Last synced: 3 months ago
JSON representation

DIS(IEEE 1278.1) Fully Implemented in C++. A complete open source implementation of DIS (Distributed Interactive Simulation) in C++. 1278.1 and 1278.1a are fully implemented including enumerations. Includes several utility classes to help with developing your DIS app.

Awesome Lists containing this project

README

        

# KDIS

[![release](https://github.com/karljj1/kdis/actions/workflows/release.yaml/badge.svg)](https://github.com/karljj1/kdis/actions/workflows/release.yaml)
[![codeql](https://github.com/karljj1/kdis/actions/workflows/codeql.yaml/badge.svg)](https://github.com/karljj1/kdis/actions/workflows/codeql.yaml)

Open source implementation of `DIS` (_Distributed Interactive Simulation_) `IEEE 1278.1`

## Contributing

I would love to see your contribution :heart:

See [CONTRIBUTING](./CONTRIBUTING.md) guidelines

## Development

### Requirements

| **Name** | **Homepage** | **Required** | **Notes** |
| -------------- | ---------------------------------------------- | :----------------: | ----------------------------------------------------------------------------------------------------------------- |
| `CXX Compiler` | | :heavy_check_mark: | [`GCC`](https://gcc.gnu.org) \| [`Clang`](https://clang.llvm.org) \| [`MSVC`](https://visualstudio.microsoft.com) |
| `CMake` | | :heavy_check_mark: | _Version `>= 3.14`_ |
| `Clang Format` | | :x: |
| `Clang Tidy` | | :x: |
| `Cppcheck` | | :x: |
| `Cpplint` | | :x: | `pip install cpplint` |
| `cmake lang` | | :x: | `pip install cmakelang[YAML]` |
| `Doxygen` | | :x: | Documentation |

### Build Options

| **Name** | **Description** | **Type** | **Default** |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ----------- |
| `DIS_VERSION` | `DIS` version:


  • `5`
    _IEEE 1278.1-1995_

  • `6`
    _IEEE 1278.1A-1998_

  • `7`
    _IEEE 1278.1x-2012_

| `STRING` | `7` |
| `KDIS_USE_ENUM_DESCRIPTORS` | Enumeration descriptors.
Allow `enum` values to be turned into their text labels.
:warning: Increase the memory footprint of the library | `BOOL` | `TRUE` |
| `KDIS_BUILD_DOCS` | Build documentation | `BOOL` | `FALSE` |
| `KDIS_BUILD_EXAMPLES` | Build examples | `BOOL` | `FALSE` |
| `KDIS_BUILD_TESTS` | Build tests | `BOOL` | `FALSE` |
| `BUILD_SHARED_LIBS` | Build shared library | `BOOL` | `TRUE` |

### Build

1. Generate project

> [!NOTE]
> Change build options' values as needed

```sh
cmake \
-S . \
-B ./build \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DDIS_VERSION:STRING=7 \
-DKDIS_USE_ENUM_DESCRIPTORS:BOOL=TRUE \
-DBUILD_SHARED_LIBS:BOOL=TRUE \
-DBUILD_DOCS:BOOL=FALSE \
-DBUILD_EXAMPLES:BOOL=FALSE \
-DBUILD_TESTS:BOOL=FALSE
```

1. Build project

> [!NOTE]
> Change value of `--config` to match value of `CMAKE_BUILD_TYPE`

```sh
cmake \
--build ./build \
--config Release
```

## Documentation

> [!IMPORTANT]
> `KDIS_BUILD_DOCS:BOOL=TRUE` required

File `index.html` available under [`build/docs/html`](./build/docs/html) directory

More information can be found in [`docs/README.md`](./docs/README.md)

## Examples

> [!IMPORTANT]
> `KDIS_BUILD_EXAMPLES:BOOL=TRUE` required

More information can be found in [`examples/README.md`](./examples/README.md)

## Scripts

More information can be found in [`scripts/README.md`](./scripts/README.md)

## Tests

> [!IMPORTANT]
> `KDIS_BUILD_TESTS:BOOL=TRUE` required

> [!NOTE]
> Change value of `--build-config` to match value of `CMAKE_BUILD_TYPE`

```sh
ctest \
--verbose \
--test-dir ./build/tests \
--build-config Release
```

More information can be found in [`tests/README.md`](./tests/README.md)

## License

This project is licensed under the [BSD 2-Clause](https://opensource.org/license/bsd-2-clause) "Simplified" License \
See [LICENSE](./LICENSE) file for details