October 2018

BTL Mark: Resolve interoperability issues & increase buyer confidence
BACnet Testing Laboratories

(Click Message to Learn More)

Creating Your Own Custom Sedona Components

While creating hardware-dependent components that utilize native platform functions can be challenging, hardware-independent component development is much easier.

Zach Netsov
Zach Netsov,
Product Specialist,
Contemporary Controls

Creating Custom Sedona Components

New Products
Securing Buildings News
Site Search
Past Issues
Secured by Cimetrics
Control Solutions, Inc

Whether you are on the developer side, or on the integrator side, Sedona offers those interested in open control tremendous benefits. Sedona is a component-based programming environment for embedded, networked control devices. Logic functionality is provided by the manufacturers of Sedona hardware in the form of function blocks called Components. Integrators place these components onto a wire sheet to create applications. However, if you need that special component, you can make it yourself by first downloading everything you need for free from the Sedona Alliance web site! While creating hardware-dependent components that utilize native platform functions can be challenging, hardware-independent component development is much easier.

Hardware Independent Components do not rely upon native functions which makes hardware-independent components transferrable between Sedona platforms regardless of manufacturer. This allows for the sharing of custom components within the Sedona Community.

A Sedona editor such as the free Sedona Application Editor (SAE) running on your PC lets you configure and link Components together to create the wire sheet control logic. Components are deployed in kits, and a kit manager allows you to install/uninstall kits to the target Sedona device.

The Sedona language is an object-oriented programming language similar to Java or C#. If you have any experience with Java or C# and simply look over the open-source example code provided in the documentation, you too can create your own custom components that combine functions or create a completely new function.

Key characteristics of the Sedona language include:

•    Familiar Java / C# syntax
•    Object-oriented (inheritance, polymorphism, all that good stuff)
•    Component-oriented (first class properties and actions, reflection, graphical assembly)
•    Single inheritance only (no interfaces)
•    Static memory model (components cannot create new objects at runtime)
•    Semicolons are optional as a statement separator

Setting up the Sedona programming environment is easy! The root directory of your Sedona installation or development environment is referred to as Sedona home. Sedona home is organized into the following subdirectories:

•    adm: administration scripts used to build and test
•    apps: Sedona application files (.sab and .sax formats)
•    bin: Win32 binaries and some Unix shell scripts
•    doc: documentation
•    kits: directory for kit database
•    lib: Java jar files and properties files
•    manifests: directory for manifest database
•    platforms: directory for platform database; also contains source files for Sedona platforms
•    scode: scode images, and linker files for creating them
•    src: directory tree for Java, C, and Sedona source code

contemporary The technical information above is derived from the Sedona development documentation which can be accessed for free on the Sedona Alliance Resource page in addition to the complete instructions and source files with example code. The Sedona Alliance represents the interests of a community of developers, system integrators, and users promoting the use of Sedona as an open control programming environment. Its mission is to promote Sedona as the premier open control programming environment available for use by the public without restrictions.

We will go through a custom component development example in a future article.

About the Author

Zach Netsov is a Product Specialist at Contemporary Controls focused on the BASautomation line of products which provide solutions for both small and scalable building management. He received his BSEE from DeVry University with a concentration in renewable energy. At Contemporary Controls, Zach is part of the team that championed the design and creation of a BASpi I/O board for Raspberry Pi.


[Click Banner To Learn More]

[Home Page]  [The Automator]  [About]  [Subscribe ]  [Contact Us]


Want Ads

Our Sponsors