<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.openlighting.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chatchavan</id>
		<title>wiki.openlighting.org - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.openlighting.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chatchavan"/>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php/Special:Contributions/Chatchavan"/>
		<updated>2026-04-28T23:50:34Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.29.1</generator>

	<entry>
		<id>https://wiki.openlighting.org/index.php?title=Using_OLA_with_Xcode&amp;diff=3184</id>
		<title>Using OLA with Xcode</title>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php?title=Using_OLA_with_Xcode&amp;diff=3184"/>
				<updated>2010-01-26T14:30:56Z</updated>
		
		<summary type="html">&lt;p&gt;Chatchavan: /* Example code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can use OLA to implement your application in Objective-C++, a bridge between Objective-C and C++. This page explains how to integrate OLA client into your program. The content of this page is based on [http://linux-lighting.googlecode.com/files/OLA%200.6.0.dmg OLA 0.6.0 Universal Mac Binaries]&lt;br /&gt;
&lt;br /&gt;
==What you'll need==&lt;br /&gt;
* Xcode&lt;br /&gt;
* [http://linux-lighting.googlecode.com/files/OLA%200.6.0.dmg OLA 0.6.0 Universal Mac Binaries] installed&lt;br /&gt;
&lt;br /&gt;
==Configure your project==&lt;br /&gt;
# Select menu: &amp;quot;Project&amp;quot; -&amp;gt; &amp;quot;Edit Project Settings&amp;quot;. All settings below are referred in a &amp;quot;Build&amp;quot; tab&lt;br /&gt;
# Set &amp;quot;Architectures&amp;quot; to 32-bit Universal&lt;br /&gt;
# Set &amp;quot;Header Search Paths&amp;quot; to &lt;br /&gt;
 /usr/local/include&lt;br /&gt;
&lt;br /&gt;
==Add dylib==&lt;br /&gt;
# In your project tree, right-click on a group that contain frameworks (e.g. &amp;quot;External Frameworks and Libraries&amp;quot;, &amp;quot;Fromeworks/Linked Frameworks&amp;quot;), select &amp;quot;Add&amp;quot; -&amp;gt; &amp;quot;Existing Frameworks&amp;quot;&lt;br /&gt;
# Select following frameworks:&lt;br /&gt;
#* libprotobuf.dylib&lt;br /&gt;
#* libola.dylib&lt;br /&gt;
#* libolacommon.dylib&lt;br /&gt;
&lt;br /&gt;
==Example code==&lt;br /&gt;
The following code sends value 255 to channel 0 in universe 0. First, it creates a client from a SimpleClient object. Then, it creates a DMX data array and pack the array to a buffer. In the end, it sends the buffer to a server. &lt;br /&gt;
&lt;br /&gt;
 #import &amp;lt;Foundation/Foundation.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/DmxBuffer.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/SimpleClient.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 // define type for DMX message&lt;br /&gt;
 typedef unsigned char dmx_t ;&lt;br /&gt;
 &lt;br /&gt;
 // maximum number of channels&lt;br /&gt;
 int MAXCHANNELS=512;&lt;br /&gt;
 &lt;br /&gt;
 int main (int argc, const char * argv[]) {&lt;br /&gt;
     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];&lt;br /&gt;
 &lt;br /&gt;
     // get a client&lt;br /&gt;
 	ola::SimpleClient simpleClient;&lt;br /&gt;
 	if (!simpleClient.Setup()) {&lt;br /&gt;
 		NSLog(@&amp;quot;Client setup failed %s&amp;quot;, strerror(errno));&lt;br /&gt;
 		return -1;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	ola::OlaClient *client = simpleClient.GetClient();&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	// prepare data&lt;br /&gt;
 	int channel = 0;&lt;br /&gt;
 	dmx_t *dmx = (dmx_t *)calloc(MAXCHANNELS + 10, sizeof(dmx_t));&lt;br /&gt;
 	dmx[channel] = 255;&lt;br /&gt;
 	ola::DmxBuffer buffer(dmx, MAXCHANNELS);&lt;br /&gt;
 &lt;br /&gt;
 	&lt;br /&gt;
 	// send DMX message&lt;br /&gt;
 	int universe = 0;&lt;br /&gt;
 	if (!client-&amp;gt;SendDmx(universe, buffer)) {&lt;br /&gt;
 		NSLog(@&amp;quot;Sending DMX failed %s&amp;quot;, strerror(errno));&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
     [pool drain];&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Notice that DMX API is changed since the last documented [http://opendmx.net/index.php/OLA_Client_API client API]. You can find more information by browsing the source file of [http://linux-lighting.googlecode.com/files/ola-examples-0.6.0.tar.gz DMX example]. For me, the src/ola-client.cpp is quite useful.&lt;br /&gt;
&lt;br /&gt;
Here is another example that create OlaServer and communicate with a pipe socket.&lt;br /&gt;
&lt;br /&gt;
 #import &amp;lt;Foundation/Foundation.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/DmxBuffer.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/OlaClient.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/network/SelectServer.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/network/Socket.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 using ola::network::PipeSocket;&lt;br /&gt;
 &lt;br /&gt;
 // define type for DMX message&lt;br /&gt;
 typedef unsigned char dmx_t ;&lt;br /&gt;
 &lt;br /&gt;
 // maximum number of channels&lt;br /&gt;
 int MAXCHANNELS=512;&lt;br /&gt;
 &lt;br /&gt;
 int main (int argc, const char * argv[]) {&lt;br /&gt;
     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];&lt;br /&gt;
 &lt;br /&gt;
 	// create a server &lt;br /&gt;
 	ola::network::SelectServer server;&lt;br /&gt;
 	&lt;br /&gt;
 	// create a select server &lt;br /&gt;
 	ola::network::SelectServer server;&lt;br /&gt;
 	&lt;br /&gt;
 	// create pipe socket&lt;br /&gt;
 	PipeSocket *socket = new PipeSocket();&lt;br /&gt;
 	if (!socket-&amp;gt;Init())&lt;br /&gt;
 	{&lt;br /&gt;
 		NSLog(@&amp;quot;Cannot create pipe socket&amp;quot;);&lt;br /&gt;
 		return -1;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// add socket to select server&lt;br /&gt;
 	server.AddSocket(socket, true);&lt;br /&gt;
 	&lt;br /&gt;
 	// create server daemon&lt;br /&gt;
        // *** see: olad/Olad.cpp for more detail ***&lt;br /&gt;
 &lt;br /&gt;
     // get a client&lt;br /&gt;
 	ola::OlaClient client(socket);&lt;br /&gt;
 	if (!client.Setup()) {&lt;br /&gt;
 		NSLog(@&amp;quot;Client setup failed %s&amp;quot;, strerror(errno));&lt;br /&gt;
 		return -1;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// prepare data&lt;br /&gt;
 	int channel = 0;&lt;br /&gt;
 	dmx_t *dmx = (dmx_t *)calloc(MAXCHANNELS + 10, sizeof(dmx_t));&lt;br /&gt;
 	dmx[channel] = 255;&lt;br /&gt;
 	ola::DmxBuffer buffer(dmx, MAXCHANNELS);&lt;br /&gt;
 &lt;br /&gt;
 	&lt;br /&gt;
 	// send DMX message&lt;br /&gt;
 	int universe = 0;&lt;br /&gt;
 	if (!client.SendDmx(universe, buffer)) {&lt;br /&gt;
 		NSLog(@&amp;quot;Sending DMX failed %s&amp;quot;, strerror(errno));&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// cleanup&lt;br /&gt;
 	free(dmx);&lt;br /&gt;
 	&lt;br /&gt;
     [pool drain];&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Chatchavan</name></author>	</entry>

	<entry>
		<id>https://wiki.openlighting.org/index.php?title=Using_OLA_with_Xcode&amp;diff=3183</id>
		<title>Using OLA with Xcode</title>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php?title=Using_OLA_with_Xcode&amp;diff=3183"/>
				<updated>2010-01-26T14:23:25Z</updated>
		
		<summary type="html">&lt;p&gt;Chatchavan: /* Example code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can use OLA to implement your application in Objective-C++, a bridge between Objective-C and C++. This page explains how to integrate OLA client into your program. The content of this page is based on [http://linux-lighting.googlecode.com/files/OLA%200.6.0.dmg OLA 0.6.0 Universal Mac Binaries]&lt;br /&gt;
&lt;br /&gt;
==What you'll need==&lt;br /&gt;
* Xcode&lt;br /&gt;
* [http://linux-lighting.googlecode.com/files/OLA%200.6.0.dmg OLA 0.6.0 Universal Mac Binaries] installed&lt;br /&gt;
&lt;br /&gt;
==Configure your project==&lt;br /&gt;
# Select menu: &amp;quot;Project&amp;quot; -&amp;gt; &amp;quot;Edit Project Settings&amp;quot;. All settings below are referred in a &amp;quot;Build&amp;quot; tab&lt;br /&gt;
# Set &amp;quot;Architectures&amp;quot; to 32-bit Universal&lt;br /&gt;
# Set &amp;quot;Header Search Paths&amp;quot; to &lt;br /&gt;
 /usr/local/include&lt;br /&gt;
&lt;br /&gt;
==Add dylib==&lt;br /&gt;
# In your project tree, right-click on a group that contain frameworks (e.g. &amp;quot;External Frameworks and Libraries&amp;quot;, &amp;quot;Fromeworks/Linked Frameworks&amp;quot;), select &amp;quot;Add&amp;quot; -&amp;gt; &amp;quot;Existing Frameworks&amp;quot;&lt;br /&gt;
# Select following frameworks:&lt;br /&gt;
#* libprotobuf.dylib&lt;br /&gt;
#* libola.dylib&lt;br /&gt;
#* libolacommon.dylib&lt;br /&gt;
&lt;br /&gt;
==Example code==&lt;br /&gt;
The following code sends value 255 to channel 0 in universe 0. First, it creates a client from a SimpleClient object. Then, it creates a DMX data array and pack the array to a buffer. In the end, it sends the buffer to a server. &lt;br /&gt;
&lt;br /&gt;
 #import &amp;lt;Foundation/Foundation.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/DmxBuffer.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/SimpleClient.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 // define type for DMX message&lt;br /&gt;
 typedef unsigned char dmx_t ;&lt;br /&gt;
 &lt;br /&gt;
 // maximum number of channels&lt;br /&gt;
 int MAXCHANNELS=512;&lt;br /&gt;
 &lt;br /&gt;
 int main (int argc, const char * argv[]) {&lt;br /&gt;
     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];&lt;br /&gt;
 &lt;br /&gt;
     // get a client&lt;br /&gt;
 	ola::SimpleClient simpleClient;&lt;br /&gt;
 	if (!simpleClient.Setup()) {&lt;br /&gt;
 		NSLog(@&amp;quot;Client setup failed %s&amp;quot;, strerror(errno));&lt;br /&gt;
 		return -1;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	ola::OlaClient *client = simpleClient.GetClient();&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	// prepare data&lt;br /&gt;
 	int channel = 0;&lt;br /&gt;
 	dmx_t *dmx = (dmx_t *)calloc(MAXCHANNELS + 10, sizeof(dmx_t));&lt;br /&gt;
 	dmx[channel] = 255;&lt;br /&gt;
 	ola::DmxBuffer buffer(dmx, MAXCHANNELS);&lt;br /&gt;
 &lt;br /&gt;
 	&lt;br /&gt;
 	// send DMX message&lt;br /&gt;
 	int universe = 0;&lt;br /&gt;
 	if (!client-&amp;gt;SendDmx(universe, buffer)) {&lt;br /&gt;
 		NSLog(@&amp;quot;Sending DMX failed %s&amp;quot;, strerror(errno));&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
     [pool drain];&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Notice that DMX API is changed since the last documented [http://opendmx.net/index.php/OLA_Client_API client API]. You can find more information by browsing the source file of [http://linux-lighting.googlecode.com/files/ola-examples-0.6.0.tar.gz DMX example]. For me, the src/ola-client.cpp is quite useful.&lt;br /&gt;
&lt;br /&gt;
Here is another example that create OlaServer and communicate with a pipe socket.&lt;br /&gt;
&lt;br /&gt;
 #import &amp;lt;Foundation/Foundation.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/DmxBuffer.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/OlaClient.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/network/SelectServer.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/network/Socket.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 using ola::network::PipeSocket;&lt;br /&gt;
 &lt;br /&gt;
 // define type for DMX message&lt;br /&gt;
 typedef unsigned char dmx_t ;&lt;br /&gt;
 &lt;br /&gt;
 // maximum number of channels&lt;br /&gt;
 int MAXCHANNELS=512;&lt;br /&gt;
 &lt;br /&gt;
 int main (int argc, const char * argv[]) {&lt;br /&gt;
     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];&lt;br /&gt;
 &lt;br /&gt;
 	// create a server &lt;br /&gt;
 	ola::network::SelectServer server;&lt;br /&gt;
 	&lt;br /&gt;
 	// create a select server &lt;br /&gt;
	ola::network::SelectServer server;&lt;br /&gt;
	&lt;br /&gt;
	// create pipe socket&lt;br /&gt;
	PipeSocket *socket = new PipeSocket();&lt;br /&gt;
	if (!socket-&amp;gt;Init())&lt;br /&gt;
	{&lt;br /&gt;
		NSLog(@&amp;quot;Cannot create pipe socket&amp;quot;);&lt;br /&gt;
		return -1;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	// add socket to select server&lt;br /&gt;
	server.AddSocket(socket, true);&lt;br /&gt;
	&lt;br /&gt;
	// create server daemon&lt;br /&gt;
        // *** see: olad/Olad.cpp for more detail ***&lt;br /&gt;
&lt;br /&gt;
     // get a client&lt;br /&gt;
 	ola::OlaClient client(socket);&lt;br /&gt;
 	if (!client.Setup()) {&lt;br /&gt;
 		NSLog(@&amp;quot;Client setup failed %s&amp;quot;, strerror(errno));&lt;br /&gt;
 		return -1;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// prepare data&lt;br /&gt;
 	int channel = 0;&lt;br /&gt;
 	dmx_t *dmx = (dmx_t *)calloc(MAXCHANNELS + 10, sizeof(dmx_t));&lt;br /&gt;
 	dmx[channel] = 255;&lt;br /&gt;
 	ola::DmxBuffer buffer(dmx, MAXCHANNELS);&lt;br /&gt;
 &lt;br /&gt;
 	&lt;br /&gt;
 	// send DMX message&lt;br /&gt;
 	int universe = 0;&lt;br /&gt;
 	if (!client.SendDmx(universe, buffer)) {&lt;br /&gt;
 		NSLog(@&amp;quot;Sending DMX failed %s&amp;quot;, strerror(errno));&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// cleanup&lt;br /&gt;
 	free(dmx);&lt;br /&gt;
 	&lt;br /&gt;
     [pool drain];&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Chatchavan</name></author>	</entry>

	<entry>
		<id>https://wiki.openlighting.org/index.php?title=Using_OLA_with_Xcode&amp;diff=3182</id>
		<title>Using OLA with Xcode</title>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php?title=Using_OLA_with_Xcode&amp;diff=3182"/>
				<updated>2010-01-26T13:08:56Z</updated>
		
		<summary type="html">&lt;p&gt;Chatchavan: /* Example code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can use OLA to implement your application in Objective-C++, a bridge between Objective-C and C++. This page explains how to integrate OLA client into your program. The content of this page is based on [http://linux-lighting.googlecode.com/files/OLA%200.6.0.dmg OLA 0.6.0 Universal Mac Binaries]&lt;br /&gt;
&lt;br /&gt;
==What you'll need==&lt;br /&gt;
* Xcode&lt;br /&gt;
* [http://linux-lighting.googlecode.com/files/OLA%200.6.0.dmg OLA 0.6.0 Universal Mac Binaries] installed&lt;br /&gt;
&lt;br /&gt;
==Configure your project==&lt;br /&gt;
# Select menu: &amp;quot;Project&amp;quot; -&amp;gt; &amp;quot;Edit Project Settings&amp;quot;. All settings below are referred in a &amp;quot;Build&amp;quot; tab&lt;br /&gt;
# Set &amp;quot;Architectures&amp;quot; to 32-bit Universal&lt;br /&gt;
# Set &amp;quot;Header Search Paths&amp;quot; to &lt;br /&gt;
 /usr/local/include&lt;br /&gt;
&lt;br /&gt;
==Add dylib==&lt;br /&gt;
# In your project tree, right-click on a group that contain frameworks (e.g. &amp;quot;External Frameworks and Libraries&amp;quot;, &amp;quot;Fromeworks/Linked Frameworks&amp;quot;), select &amp;quot;Add&amp;quot; -&amp;gt; &amp;quot;Existing Frameworks&amp;quot;&lt;br /&gt;
# Select following frameworks:&lt;br /&gt;
#* libprotobuf.dylib&lt;br /&gt;
#* libola.dylib&lt;br /&gt;
#* libolacommon.dylib&lt;br /&gt;
&lt;br /&gt;
==Example code==&lt;br /&gt;
The following code sends value 255 to channel 0 in universe 0. First, it creates a client from a SimpleClient object. Then, it creates a DMX data array and pack the array to a buffer. In the end, it sends the buffer to a server. &lt;br /&gt;
&lt;br /&gt;
 #import &amp;lt;Foundation/Foundation.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/DmxBuffer.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/SimpleClient.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 // define type for DMX message&lt;br /&gt;
 typedef unsigned char dmx_t ;&lt;br /&gt;
 &lt;br /&gt;
 // maximum number of channels&lt;br /&gt;
 int MAXCHANNELS=512;&lt;br /&gt;
 &lt;br /&gt;
 int main (int argc, const char * argv[]) {&lt;br /&gt;
     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];&lt;br /&gt;
 &lt;br /&gt;
     // get a client&lt;br /&gt;
 	ola::SimpleClient simpleClient;&lt;br /&gt;
 	if (!simpleClient.Setup()) {&lt;br /&gt;
 		NSLog(@&amp;quot;Client setup failed %s&amp;quot;, strerror(errno));&lt;br /&gt;
 		return -1;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	ola::OlaClient *client = simpleClient.GetClient();&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	// prepare data&lt;br /&gt;
 	int channel = 0;&lt;br /&gt;
 	dmx_t *dmx = (dmx_t *)calloc(MAXCHANNELS + 10, sizeof(dmx_t));&lt;br /&gt;
 	dmx[channel] = 255;&lt;br /&gt;
 	ola::DmxBuffer buffer(dmx, MAXCHANNELS);&lt;br /&gt;
 &lt;br /&gt;
 	&lt;br /&gt;
 	// send DMX message&lt;br /&gt;
 	int universe = 0;&lt;br /&gt;
 	if (!client-&amp;gt;SendDmx(universe, buffer)) {&lt;br /&gt;
 		NSLog(@&amp;quot;Sending DMX failed %s&amp;quot;, strerror(errno));&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
     [pool drain];&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Notice that DMX API is changed since the last documented [http://opendmx.net/index.php/OLA_Client_API client API]. You can find more information by browsing the source file of [http://linux-lighting.googlecode.com/files/ola-examples-0.6.0.tar.gz DMX example]. For me, the src/ola-client.cpp is quite useful.&lt;br /&gt;
&lt;br /&gt;
Here is another example that create OlaServer and communicate with a pipe socket.&lt;br /&gt;
&lt;br /&gt;
 #import &amp;lt;Foundation/Foundation.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/DmxBuffer.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/OlaClient.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/network/SelectServer.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/network/Socket.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 using ola::network::PipeSocket;&lt;br /&gt;
 &lt;br /&gt;
 // define type for DMX message&lt;br /&gt;
 typedef unsigned char dmx_t ;&lt;br /&gt;
 &lt;br /&gt;
 // maximum number of channels&lt;br /&gt;
 int MAXCHANNELS=512;&lt;br /&gt;
 &lt;br /&gt;
 int main (int argc, const char * argv[]) {&lt;br /&gt;
     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];&lt;br /&gt;
 &lt;br /&gt;
 	// create a server &lt;br /&gt;
 	ola::network::SelectServer server;&lt;br /&gt;
 	&lt;br /&gt;
 	// create pipe socket&lt;br /&gt;
 	PipeSocket *socket = new PipeSocket();&lt;br /&gt;
 	if (!socket-&amp;gt;Init())&lt;br /&gt;
 	{&lt;br /&gt;
 		NSLog(@&amp;quot;Cannot create pipe socket&amp;quot;);&lt;br /&gt;
 		return -1;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// add socket to server&lt;br /&gt;
 	server.AddSocket(socket, true);&lt;br /&gt;
 	&lt;br /&gt;
     // get a client&lt;br /&gt;
 	ola::OlaClient client(socket);&lt;br /&gt;
 	if (!client.Setup()) {&lt;br /&gt;
 		NSLog(@&amp;quot;Client setup failed %s&amp;quot;, strerror(errno));&lt;br /&gt;
 		return -1;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// prepare data&lt;br /&gt;
 	int channel = 0;&lt;br /&gt;
 	dmx_t *dmx = (dmx_t *)calloc(MAXCHANNELS + 10, sizeof(dmx_t));&lt;br /&gt;
 	dmx[channel] = 255;&lt;br /&gt;
 	ola::DmxBuffer buffer(dmx, MAXCHANNELS);&lt;br /&gt;
 &lt;br /&gt;
 	&lt;br /&gt;
 	// send DMX message&lt;br /&gt;
 	int universe = 0;&lt;br /&gt;
 	if (!client.SendDmx(universe, buffer)) {&lt;br /&gt;
 		NSLog(@&amp;quot;Sending DMX failed %s&amp;quot;, strerror(errno));&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	// cleanup&lt;br /&gt;
 	free(dmx);&lt;br /&gt;
 	&lt;br /&gt;
     [pool drain];&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>Chatchavan</name></author>	</entry>

	<entry>
		<id>https://wiki.openlighting.org/index.php?title=Using_OLA_with_Xcode&amp;diff=3181</id>
		<title>Using OLA with Xcode</title>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php?title=Using_OLA_with_Xcode&amp;diff=3181"/>
				<updated>2010-01-26T12:34:03Z</updated>
		
		<summary type="html">&lt;p&gt;Chatchavan: /* Configure your project */ corrected library search path&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can use OLA to implement your application in Objective-C++, a bridge between Objective-C and C++. This page explains how to integrate OLA client into your program. The content of this page is based on [http://linux-lighting.googlecode.com/files/OLA%200.6.0.dmg OLA 0.6.0 Universal Mac Binaries]&lt;br /&gt;
&lt;br /&gt;
==What you'll need==&lt;br /&gt;
* Xcode&lt;br /&gt;
* [http://linux-lighting.googlecode.com/files/OLA%200.6.0.dmg OLA 0.6.0 Universal Mac Binaries] installed&lt;br /&gt;
&lt;br /&gt;
==Configure your project==&lt;br /&gt;
# Select menu: &amp;quot;Project&amp;quot; -&amp;gt; &amp;quot;Edit Project Settings&amp;quot;. All settings below are referred in a &amp;quot;Build&amp;quot; tab&lt;br /&gt;
# Set &amp;quot;Architectures&amp;quot; to 32-bit Universal&lt;br /&gt;
# Set &amp;quot;Header Search Paths&amp;quot; to &lt;br /&gt;
 /usr/local/include&lt;br /&gt;
&lt;br /&gt;
==Add dylib==&lt;br /&gt;
# In your project tree, right-click on a group that contain frameworks (e.g. &amp;quot;External Frameworks and Libraries&amp;quot;, &amp;quot;Fromeworks/Linked Frameworks&amp;quot;), select &amp;quot;Add&amp;quot; -&amp;gt; &amp;quot;Existing Frameworks&amp;quot;&lt;br /&gt;
# Select following frameworks:&lt;br /&gt;
#* libprotobuf.dylib&lt;br /&gt;
#* libola.dylib&lt;br /&gt;
#* libolacommon.dylib&lt;br /&gt;
&lt;br /&gt;
==Example code==&lt;br /&gt;
The following code sends value 255 to channel 0 in universe 0. First, it creates a client from a SimpleClient object. Then, it creates a DMX data array and pack the array to a buffer. In the end, it sends the buffer to a server. &lt;br /&gt;
&lt;br /&gt;
 #import &amp;lt;Foundation/Foundation.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/DmxBuffer.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/SimpleClient.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 // define type for DMX message&lt;br /&gt;
 typedef unsigned char dmx_t ;&lt;br /&gt;
 &lt;br /&gt;
 // maximum number of channels&lt;br /&gt;
 int MAXCHANNELS=512;&lt;br /&gt;
 &lt;br /&gt;
 int main (int argc, const char * argv[]) {&lt;br /&gt;
     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];&lt;br /&gt;
 &lt;br /&gt;
     // get a client&lt;br /&gt;
 	ola::SimpleClient simpleClient;&lt;br /&gt;
 	if (!simpleClient.Setup()) {&lt;br /&gt;
 		NSLog(@&amp;quot;Client setup failed %s&amp;quot;, strerror(errno));&lt;br /&gt;
 		return -1;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	ola::OlaClient *client = simpleClient.GetClient();&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	// prepare data&lt;br /&gt;
 	int channel = 0;&lt;br /&gt;
 	dmx_t *dmx = (dmx_t *)calloc(MAXCHANNELS + 10, sizeof(dmx_t));&lt;br /&gt;
 	dmx[channel] = 255;&lt;br /&gt;
 	ola::DmxBuffer buffer(dmx, MAXCHANNELS);&lt;br /&gt;
 &lt;br /&gt;
 	&lt;br /&gt;
 	// send DMX message&lt;br /&gt;
 	int universe = 0;&lt;br /&gt;
 	if (!client-&amp;gt;SendDmx(universe, buffer)) {&lt;br /&gt;
 		NSLog(@&amp;quot;Sending DMX failed %s&amp;quot;, strerror(errno));&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
     [pool drain];&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Notice that DMX API is changed since the last documented [http://opendmx.net/index.php/OLA_Client_API client API]. You can find more information by browsing the source file of [http://linux-lighting.googlecode.com/files/ola-examples-0.6.0.tar.gz DMX example]. For me, the src/ola-client.cpp is quite useful.&lt;/div&gt;</summary>
		<author><name>Chatchavan</name></author>	</entry>

	<entry>
		<id>https://wiki.openlighting.org/index.php?title=Using_OLA_with_Xcode&amp;diff=3180</id>
		<title>Using OLA with Xcode</title>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php?title=Using_OLA_with_Xcode&amp;diff=3180"/>
				<updated>2010-01-26T11:25:33Z</updated>
		
		<summary type="html">&lt;p&gt;Chatchavan: /* Example code */  add channel variable&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can use OLA to implement your application in Objective-C++, a bridge between Objective-C and C++. This page explains how to integrate OLA client into your program. The content of this page is based on [http://linux-lighting.googlecode.com/files/OLA%200.6.0.dmg OLA 0.6.0 Universal Mac Binaries]&lt;br /&gt;
&lt;br /&gt;
==What you'll need==&lt;br /&gt;
* Xcode&lt;br /&gt;
* [http://linux-lighting.googlecode.com/files/OLA%200.6.0.dmg OLA 0.6.0 Universal Mac Binaries] installed&lt;br /&gt;
&lt;br /&gt;
==Configure your project==&lt;br /&gt;
# Select menu: &amp;quot;Project&amp;quot; -&amp;gt; &amp;quot;Edit Project Settings&amp;quot;. All settings below are referred in a &amp;quot;Build&amp;quot; tab&lt;br /&gt;
# Set &amp;quot;Architectures&amp;quot; to 32-bit Universal&lt;br /&gt;
# Set &amp;quot;Header Search Paths&amp;quot; to &lt;br /&gt;
 /usr/local/include/ola&lt;br /&gt;
&lt;br /&gt;
==Add dylib==&lt;br /&gt;
# In your project tree, right-click on a group that contain frameworks (e.g. &amp;quot;External Frameworks and Libraries&amp;quot;, &amp;quot;Fromeworks/Linked Frameworks&amp;quot;), select &amp;quot;Add&amp;quot; -&amp;gt; &amp;quot;Existing Frameworks&amp;quot;&lt;br /&gt;
# Select following frameworks:&lt;br /&gt;
#* libprotobuf.dylib&lt;br /&gt;
#* libola.dylib&lt;br /&gt;
#* libolacommon.dylib&lt;br /&gt;
&lt;br /&gt;
==Example code==&lt;br /&gt;
The following code sends value 255 to channel 0 in universe 0. First, it creates a client from a SimpleClient object. Then, it creates a DMX data array and pack the array to a buffer. In the end, it sends the buffer to a server. &lt;br /&gt;
&lt;br /&gt;
 #import &amp;lt;Foundation/Foundation.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/DmxBuffer.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/SimpleClient.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 // define type for DMX message&lt;br /&gt;
 typedef unsigned char dmx_t ;&lt;br /&gt;
 &lt;br /&gt;
 // maximum number of channels&lt;br /&gt;
 int MAXCHANNELS=512;&lt;br /&gt;
 &lt;br /&gt;
 int main (int argc, const char * argv[]) {&lt;br /&gt;
     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];&lt;br /&gt;
 &lt;br /&gt;
     // get a client&lt;br /&gt;
 	ola::SimpleClient simpleClient;&lt;br /&gt;
 	if (!simpleClient.Setup()) {&lt;br /&gt;
 		NSLog(@&amp;quot;Client setup failed %s&amp;quot;, strerror(errno));&lt;br /&gt;
 		return -1;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	ola::OlaClient *client = simpleClient.GetClient();&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	// prepare data&lt;br /&gt;
 	int channel = 0;&lt;br /&gt;
 	dmx_t *dmx = (dmx_t *)calloc(MAXCHANNELS + 10, sizeof(dmx_t));&lt;br /&gt;
 	dmx[channel] = 255;&lt;br /&gt;
 	ola::DmxBuffer buffer(dmx, MAXCHANNELS);&lt;br /&gt;
 &lt;br /&gt;
 	&lt;br /&gt;
 	// send DMX message&lt;br /&gt;
 	int universe = 0;&lt;br /&gt;
 	if (!client-&amp;gt;SendDmx(universe, buffer)) {&lt;br /&gt;
 		NSLog(@&amp;quot;Sending DMX failed %s&amp;quot;, strerror(errno));&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
     [pool drain];&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Notice that DMX API is changed since the last documented [http://opendmx.net/index.php/OLA_Client_API client API]. You can find more information by browsing the source file of [http://linux-lighting.googlecode.com/files/ola-examples-0.6.0.tar.gz DMX example]. For me, the src/ola-client.cpp is quite useful.&lt;/div&gt;</summary>
		<author><name>Chatchavan</name></author>	</entry>

	<entry>
		<id>https://wiki.openlighting.org/index.php?title=Using_OLA_with_Xcode&amp;diff=3179</id>
		<title>Using OLA with Xcode</title>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php?title=Using_OLA_with_Xcode&amp;diff=3179"/>
				<updated>2010-01-26T11:24:02Z</updated>
		
		<summary type="html">&lt;p&gt;Chatchavan: Created page with 'You can use OLA to implement your application in Objective-C++, a bridge between Objective-C and C++. This page explains how to integrate OLA client into your program. The conten…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;You can use OLA to implement your application in Objective-C++, a bridge between Objective-C and C++. This page explains how to integrate OLA client into your program. The content of this page is based on [http://linux-lighting.googlecode.com/files/OLA%200.6.0.dmg OLA 0.6.0 Universal Mac Binaries]&lt;br /&gt;
&lt;br /&gt;
==What you'll need==&lt;br /&gt;
* Xcode&lt;br /&gt;
* [http://linux-lighting.googlecode.com/files/OLA%200.6.0.dmg OLA 0.6.0 Universal Mac Binaries] installed&lt;br /&gt;
&lt;br /&gt;
==Configure your project==&lt;br /&gt;
# Select menu: &amp;quot;Project&amp;quot; -&amp;gt; &amp;quot;Edit Project Settings&amp;quot;. All settings below are referred in a &amp;quot;Build&amp;quot; tab&lt;br /&gt;
# Set &amp;quot;Architectures&amp;quot; to 32-bit Universal&lt;br /&gt;
# Set &amp;quot;Header Search Paths&amp;quot; to &lt;br /&gt;
 /usr/local/include/ola&lt;br /&gt;
&lt;br /&gt;
==Add dylib==&lt;br /&gt;
# In your project tree, right-click on a group that contain frameworks (e.g. &amp;quot;External Frameworks and Libraries&amp;quot;, &amp;quot;Fromeworks/Linked Frameworks&amp;quot;), select &amp;quot;Add&amp;quot; -&amp;gt; &amp;quot;Existing Frameworks&amp;quot;&lt;br /&gt;
# Select following frameworks:&lt;br /&gt;
#* libprotobuf.dylib&lt;br /&gt;
#* libola.dylib&lt;br /&gt;
#* libolacommon.dylib&lt;br /&gt;
&lt;br /&gt;
==Example code==&lt;br /&gt;
The following code sends value 255 to channel 0 in universe 0. First, it creates a client from a SimpleClient object. Then, it creates a DMX data array and pack the array to a buffer. In the end, it sends the buffer to a server. &lt;br /&gt;
&lt;br /&gt;
 #import &amp;lt;Foundation/Foundation.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/DmxBuffer.h&amp;gt;&lt;br /&gt;
 #import &amp;lt;ola/SimpleClient.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 // define type for DMX message&lt;br /&gt;
 typedef unsigned char dmx_t ;&lt;br /&gt;
 &lt;br /&gt;
 // maximum number of channels&lt;br /&gt;
 int MAXCHANNELS=512;&lt;br /&gt;
 &lt;br /&gt;
 int main (int argc, const char * argv[]) {&lt;br /&gt;
     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];&lt;br /&gt;
 &lt;br /&gt;
     // get a client&lt;br /&gt;
 	ola::SimpleClient simpleClient;&lt;br /&gt;
 	if (!simpleClient.Setup()) {&lt;br /&gt;
 		NSLog(@&amp;quot;Client setup failed %s&amp;quot;, strerror(errno));&lt;br /&gt;
 		return -1;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	ola::OlaClient *client = simpleClient.GetClient();&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	// prepare data&lt;br /&gt;
 	dmx_t *dmx = (dmx_t *)calloc(MAXCHANNELS + 10, sizeof(dmx_t));&lt;br /&gt;
 	dmx[0] = 255;&lt;br /&gt;
 	ola::DmxBuffer buffer(dmx, MAXCHANNELS);&lt;br /&gt;
 &lt;br /&gt;
 	&lt;br /&gt;
 	// send DMX message&lt;br /&gt;
 	int universe = 0;&lt;br /&gt;
 	if (!client-&amp;gt;SendDmx(universe, buffer)) {&lt;br /&gt;
 		NSLog(@&amp;quot;Sending DMX failed %s&amp;quot;, strerror(errno));&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
     [pool drain];&lt;br /&gt;
     return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Notice that DMX API is changed since the last documented [http://opendmx.net/index.php/OLA_Client_API client API]. You can find more information by browsing the source file of [http://linux-lighting.googlecode.com/files/ola-examples-0.6.0.tar.gz DMX example]. For me, the src/ola-client.cpp is quite useful.&lt;/div&gt;</summary>
		<author><name>Chatchavan</name></author>	</entry>

	<entry>
		<id>https://wiki.openlighting.org/index.php?title=Open_Lighting_Architecture&amp;diff=3178</id>
		<title>Open Lighting Architecture</title>
		<link rel="alternate" type="text/html" href="https://wiki.openlighting.org/index.php?title=Open_Lighting_Architecture&amp;diff=3178"/>
				<updated>2010-01-26T11:04:28Z</updated>
		
		<summary type="html">&lt;p&gt;Chatchavan: added link: using OLA with XCode&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Link: http://code.google.com/p/linux-lighting/ &amp;lt;br&amp;gt;&lt;br /&gt;
{{Features|free=yes|tx=yes|rx=yes|linux=yes|osx=yes|http=yes}}&lt;br /&gt;
[[Image:Llad_home.png|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
OLA (Open Lighting Architecture) is a framework that allows applications to send and receive DMX, using various hardware devices and 'DMX over IP' protocols. It enables [[:Category:Controllers | software controllers]] talk to DMX hardware.&lt;br /&gt;
&lt;br /&gt;
OLA allows DMX sent using various DMX over IP protocols to be converted from one format to another. This enables devices from different manufacturers to talk to each another (for example a [[Strand_Lighting|Strand]] Console can send DMX to an [[Enttec]] [[DmxEtherGate MKII|EtherGate]]). When combined with a physical DMX interface such as the [[DMX USB Pro]], OLA can send and receive data from traditional wired DMX networks.&lt;br /&gt;
&lt;br /&gt;
OLA can run on Linux and on Mac OS X. A port to Windows is feasible if someone wants to add the necessary platform-dependent code for plug-ins and create an installer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Bugs&amp;lt;/b&amp;gt;: Check the bug tracker at http://code.google.com/p/linux-lighting/issues/list&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Questions&amp;lt;/b&amp;gt;: See the news group at http://groups.google.com/group/open-lighting&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Supported Devices/Protocols:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! '''Driver'''!! Linux !! '''Mac OS X''' &lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:ArtNet|ArtNet]]   || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:ShowNet|ShowNet]] || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:ESP Net|ESP Net]] || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:Sandnet|Sandnet]] || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
|| [[E1.31]] / [[ACN]] || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
|| [[DMX USB Pro]] || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
|| [[Open DMX USB]] || Yes || -&lt;br /&gt;
|-&lt;br /&gt;
|| [[StageProfi]] || Yes || Ethernet version only&lt;br /&gt;
|-&lt;br /&gt;
|| [[:Category:Pathport|Pathport]]  || Yes || Yes&lt;br /&gt;
|-&lt;br /&gt;
|| [[DMX 4 Linux]] || Yes || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Getting Started&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start here if you've never used OLA before and read these in order.&lt;br /&gt;
* [[Download OLA]]&lt;br /&gt;
* [[OLA on OS X]] or [[OLA on Linux]] - How to get it compiled.&lt;br /&gt;
* [[Using OLA]] - A basic introduction&lt;br /&gt;
* [[OLA Command Line Tools]] - Documentation for the tools in ola-examples&lt;br /&gt;
* [[OLA Device Specific Configuration]]&lt;br /&gt;
* [[OLA Tips &amp;amp; Tricks]]&lt;br /&gt;
* [[OLA Merging Algorithms]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Developer Documentation:&amp;lt;/b&amp;gt;&lt;br /&gt;
* [[OLA developer info]] - about the source code and structure&lt;br /&gt;
* [[OLA Client API]] - the C++ API&lt;br /&gt;
* [[OLA Python API]] - easy DMX programming&lt;br /&gt;
* [[Build OLA Mac Packages]] - notes for building the .dmg images&lt;br /&gt;
* [[Using OLA with Xcode]] - on a Mac, in Objective-C++&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Tutorials&amp;lt;/b&amp;gt;, these refer to the previous release but parts of them are still relevant.&lt;br /&gt;
* [[LLA Sandnet Tutorial]] - Setup Horizon using Sandnet and LLA&lt;br /&gt;
* [[LLA and Q Light Controller Ubuntu Tutorial]] - Setup LLA on Ubuntu/Debian-type distro with QLC&lt;br /&gt;
* [[LLA and Q Light Controller OSX Tutorial]] - Setup LLA on Mac OS X with QLC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Deprecated Documentation&amp;lt;/b&amp;gt;&lt;br /&gt;
* [[OLA 0.3]] - Release Notes&lt;br /&gt;
&lt;br /&gt;
OLA can also run on a wireless access point. [http://nomis52.net/?section=projects&amp;amp;sect2=artnet&amp;amp;page=node]&lt;br /&gt;
&lt;br /&gt;
There is a project underway to build packages for OpenWrt. See http://lists.culturebase.org/cgi-bin/mailman/listinfo/lla-openwrt for more details.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ArtNet]]&lt;br /&gt;
[[Category:ESP Net]]&lt;br /&gt;
[[Category:E1.31]]&lt;br /&gt;
[[Category:Sandnet]]&lt;br /&gt;
[[Category:ShowNet]]&lt;br /&gt;
[[Category:Utilities]]&lt;/div&gt;</summary>
		<author><name>Chatchavan</name></author>	</entry>

	</feed>