The DriverWorks Software Development Kit (SDK) provides dealers and partners with the ability to independently develop custom two-way (Serial & Network) drivers to incorporate new devices into the Control4 environment or to customize existing drivers. DriverWorks uses the Lua programming language, which is delivered within the Composer software application and within the Control4 OS. Completed drivers do not require platform or version-specific compiling. The development kit consists of the Lua Development Environment (included within Composer and the OS), several documentation resources as well sample drivers and code examples.
This area is focused on the delivery of documentation, code samples and some utlities which will help facilitate the deveopment of a DriverWorks driver. However, this is one piece of a larger driver deveopment platform. Not included in this area are:
-
SDDP Documentation and Sample Code: SDDP provides automatic device discovery and device pairing with the Conrol4 O.S. For more information regarding SDDP, please see the sddp folder.
-
Composer Pro: A licensed version of Composer Pro running on a controller is required for driver modeling and testing.
-
Driver Certification: Offers a no-cost opportunity for your products to be formally tested in Control4’s certification lab. Once we certify your product drivers interoperate seamlessly with the Control4 platform, then we can collaborate with your company on numerous, benefitial marketing activities. For more information, please see the driver_certification folder.
The above components play an important role in ensuring that your driver has complete integration within the Control4 O.S. Use of them requires signing Control4's SDK License Agreement. For more information regarding the licensing agreement, please contact us at: [email protected].
If you are new to the DriverWorks SDK you will find An Introduction to DriverWorks to be useful reading.
-
The DriverWorks Fundamentals Guide can be found here.
-
The DriverWorks Proxy and Protocol Guide can be found here.
-
The DriverWorks API Reference Guide can be found here.
-
The DriverWorks KNX Implementation Guide can be found here.
-
The Zigbee Implementation content can be found here.
You are encouraged to review the SDK documentation through the links provided above. This will ensure that you are using the latest driver development content possible. Significant enhancements and deprecations to the documentation are listed in the What's New sections of the repositories. If needed, the DriverWorks documentation content can be downloaded and reviewed offline. Please keep in mind that working from previously downloaded content may not always reflect the latest SDK content.
From Chrome:
An entire guide can be saved as an HTML file from the Chrome toolbar under: File --> Save Page As and selecting the "Webpage, Complete" option.
From Safari:
An entire guide can be saved as a Web Archive file from the Safari toolbar under: File --> Save As.. and selecting Web Archive as the format.
The directories at the top of this page contain various resources to support your driver development efforts. They include:
The SDK includes numerous Driver Development Templates to help jump start your development efforts. Please see the driver_development_templates directory for the current list of supported templates.
Driver Packager is a Python utility used to create individual .c4z files from source code. For more information please see: https://github.com/control4/drivers-driverpackager
The DriverWorks SDK provides templates and instructions on how to create icons that will blend in with the default icons inside Control4 interfaces. Conforming to these guidelines ensures that custom icons feel like part of the system. For more information, please see the icon_templates folder.
Control4’s Media Service Proxy (MSP) provides a layer of commands, notifications, events and other data handling elements that will support the development of drivers for media-based services and devices. For more information, please see the media_service_proxy folder.
Composer Express supports the ability for a device driver to be downloaded by way of scanning a Quick Response code (QR code). QR codes are useful as they can be placed on a product, product packaging, within documentation or embedded on a product webpage. For more information, please see the qr_branding folder.
The DriverWorks SDK provides code examples as well as sample drivers which are useful in understanding some of the more complex areas of device driver development. The examples found here are referred to throughout the SDK documentation. The sample_drivers directory serves a collection area for that code.
The Table Logger utility has been provided to assist driver developers in identifying areas within their driver that may be using a growing amount of memory. The utility is executed from within ComposerPro at the driver level on the Lua tab. For more information, please see the table_logger_utility folder.
A comprehensive guide of elements used in the Control4 OS3 to assist 3rd party webview developers to achieve a seamless experience in their contribution to extend the system for the end user. For more information, please see the webview_styleguide folder.
Use of the Control4 logo requires review of the logo Style Guide. In addition to the Style Guide, several asset folders are provided in the control4-logo.zip file. These include logo samples in.png, jpg and .eps formats. Please see the control4_logo_usage folder for more information.