What is a Proxy driver?

Document created by cdnadmin on Jan 25, 2014
Version 1Show Document
  • View in full screen mode
This document was generated from CDN thread

Created by: Ryan Erickson on 10-08-2012 10:50:17 AM
In Cisco Smart+Connected Home architecture, there are 2 types of drivers: Proxy drivers and Protocol drivers.
Proxy drivers are used to provide a consistent interface for UI devices.  An example of a proxy driver is 'light'.
The Light proxy provides a consistent set of commands and notifies, which can be used by Navigator to provide UI for a single light-type device (typically a dimmer or switch).
Some examples of the commands that the Light proxy provides to the UI include:
ON, OFF, TOGGLE (no parameters)
RAMP_TO_LEVEL (LEVEL: 0-100, TIME: 0-100000 MS)
The main notify that the Light proxy expects to receive from the device is LIGHT_LEVEL_CHANGED (LEVEL: 0-100).
These proxy commands and notifies allow the Navigator UI to control *any* light, regardless of whether it's a Control4 light, a Lutron light, a Vantage light, or another 3rd-party light.  With the proxy, the UI (Navigator) does not need to know the type of light to be able to control it and receive feedback.
Protocol drivers translate between the proxy drivers' commands and notifies, and the device's protocol.
Protocol drivers for 3rd-party devices are written in DriverWorks.
UI <----> Proxy Driver <----> Protocol Driver <----> Device
(Navigator)     (Light)           (DriverWorks Driver)   (3rd-party light)
Messages come from the UI, for example when someone presses a light on the UI, a Proxy command (TOGGLE) gets sent from the UI to the Light proxy.  The Light proxy sends this on to the Protocol driver.  The Protocol driver translates that TOGGLE command into the device's protocol, and sends the message to the device.
The device toggles it's state, and will send back information that it's changed state.  This is sent in the device's protocol.  The protocol driver parses this information, creates a 'LIGHT_LEVEL_CHANGED' protocol message, which it sends to the Light proxy.  The Light proxy relays this notification up to the UI.
More information on Protocol drivers in DriverWorks can be found in the 'What is DriverWorks' topic.