Skip to content

About

The Essentials Application Framework Libraries

Topics

Resources

Contributing

Stars

154 stars

Watchers

13 watching

Forks

Repository files navigation

PepperDash Essentials Framework

License

Provided under the MIT license.

Overview

PepperDash Essentials is an open source Crestron framework that can be configured as a standalone program capable of running a wide variety of system designs and can also be utilized as a plug-in architecture to augment other Simpl# Pro and Simpl Windows programs.

Essentials Framework is a collection of C# / Simpl# Pro libraries that can be utilized in several different manners. It is currently operating as a 100% configuration-driven system, and can be extended to add different workflows and behaviors, either through the addition of further device "types" or via the plug-in mechanism. The framework is a collection of "things" that are all related and interconnected, but in general do not have dependencies on each other.

Versions

This branch, essentials-3x, is Essentials 3.x. Each major version has its own branch:

Branch Essentials version Target framework Runs on
essentials-3x (the default branch) 3.x .NET 8 4-series processors and VC-4
essentials-2x 2.x .NET Framework 4.7.2 4-series processors and VC-4
essentials-1x 1.x .NET Compact Framework 3.5 3-series processors

Releases are published on GitHub and as the PepperDashEssentials NuGet package.

Building

You'll need the .NET 9 SDK. Essentials 3.x targets .NET 8; the .NET 9 SDK builds it, and the test projects target .NET 9.

git clone https://github.com/PepperDash/Essentials.git
cd Essentials
dotnet build

Everything Essentials needs is in this repository or comes from NuGet, including PepperDash Core (src/PepperDash.Core) and the Crestron SDK. The program's .cpz is written to src/PepperDash.Essentials/bin/Debug/net8/ and copied to the output folder. See Get started for loading it onto a processor.

To try Essentials without any hardware, the Essentials v3 demo runs a complete simulated meeting room on a 4-series processor or VC-4.

Utilization

Essentials was originally conceptualized as a standalone application for running control system logic entirely in Simpl# Pro. It is primarily designed around accomplishing this goal, but during development, it became obvious that it could easily be leveraged to also serve as a partner application to one or more SIMPL Windows programs.

Utilization of Essentials Framework falls into the following categories:

  1. Standalone Control System Application for controlling one or more rooms. See Standalone Use.

  2. Partner Application to a SIMPL Windows program. This allows for several useful advantages. See SIMPL Windows Bridging.

  • Dynamic device instantiation. Devices can be defined in configuration and instantiated at runtime and then bridged to a SIMPL Windows program via EISC.

  • Advanced logic. Some logic operations that cannot be effectively accomplished in SIMPL Windows (ex. JSON/XML serialization/deserialization, database operations, etc.) can be done in the Simpl# Pro environment and the necessary input and output bridged to a SIMPL Windows program via EISC.

  1. Hybrid Application that may contain elements of both standalone control and SIMPL partner application integration.
  • There may be a use case where a device can only be defined in a single application, but that device may need to be interacted with from multiple applications. The device can be defined in an Essentials application, interacted with in that application and also bridged to one or more SIMPL Windows applications.

To add device types without changing Essentials itself, write a plugin.

Documentation

For detailed documentation, see the documentation site. It has the v3 and v2 docs.

Contributing

See CONTRIBUTING.md for how to report issues and submit changes, which branch to target, and how commit messages drive releases.

Support

How-To (Getting Started)

See Get started.

About

The Essentials Application Framework Libraries

Topics

Resources

Contributing

Stars

154 stars

Watchers

13 watching

Forks

Releases

Packages

Used by

Contributors

Languages