Architecture for Control Networks: Difference between revisions

Content deleted Content added
added rust-sacn library
m General fixes and Typo fixing using AWB
Line 23:
DMP represents any device as a set of addressable properties which represent its current or desired state. Monitoring or control by a controller is achieved by setting or examining the values of those properties. To avoid the inefficiencies of polling, in addition to simply reading property values (using a ''Get-Property'' message) DMP provides a subscription mechanism whereby a device will asynchronously send event messages to all subscribed controllers when the value of a property changes.
 
DMP expects that its connections can provide reliability so that ''Set-Property'' and ''Event'' messages which form a large part of the operational bandwidth in a show situation do not require explicit acknowledgement at the DMP level. In the E1.17 standard and the majority of systems SDT provides this reliability but DMP has also been operated usngusing TCP to provide its reliable connections.
 
The size in bits, representation, read/write accessibility and function of each property in a DMP device is not determined by the protocol which only defines the mechanism to read and/or write the property value. Instead, that information must either be provided externally by a device description written in DDL or in limited cases may be pre-programmed by fore-knowledge of specific device types.
Line 50:
==Implementations==
 
An early [[Open-source_softwaresource software|open-source]] implementation of ACN was released as OpenACN<ref>{{cite web |url=http://sourceforge.net/projects/openacn/ |title=OpenACN |accessdate=2011-08-25}}</ref> and is available on [[SourceForge]]. This has been ported to a wide range of platforms, but it is limited in its scope and does not implement any DDL support.
 
A more recent and much more complete implementation in [[C_C (programming_languageprogramming language)|C]] is 'Acacian,'<ref>{{cite web |url=http://WWW.ACACIAN.ORG/ |title=Acacian |accessdate=2014-08-10}}</ref> which includes more features and DDL support.
 
There is yet another open source ACN project<ref>{{cite web|url=http://acn.codeplex.com/|title=Architecture for Control Networks project home page|accessdate=5 October 2011}}</ref> on [[Codeplex]] which is implemented in [[C_Sharp_C Sharp (programming_languageprogramming language)|C#]]. This aims to provide a full [[managed code]] implementation and includes code for several other related protocols.
 
E1.31 (Streaming DMX over ACN) is supported on [[Linux]] ([[ARM architecture|ARM]], [[Intel 80386|i386]], [[x86-64]]) and [[Macintosh]] ([[PowerPC]]; i386, x86-64) by the Open Lighting Architecture.<ref>{{cite web |url=http://opendmx.net/index.php/OLA |title=Open Lighting Architecture |accessdate=2012-01-05}}</ref>
 
A [[Rust_Rust (programming_languageprogramming language)|Rust]] implementation of E1.31 can be found on [[Github]].<ref>{{cite web |url=https://github.com/lschmierer/sacn |title=rust-sacn |accessdate=2015-12-16}}</ref>
 
ACN has been deployed in proprietary implementations by a number of companies, including its use by [[Electronic Theatre Controls]] (ETC) as the basis of their 'NET3' branded networked control infrastructure and by [[Shure|Shure Inc.]] in control of wireless microphones.