Personal tools
The Open Lighting Project has moved!

We've launched our new site at www.openlighting.org. This wiki will remain and be updated with more technical information.

Difference between revisions of "OLP SOC Ideas Page"

From wiki.openlighting.org

Jump to: navigation, search
Line 7: Line 7:
  
 
This project would include:
 
This project would include:
* Refactoring the base classes under [[http://code.google.com/p/linux-lighting/source/browse/#git%2Fcommon%2Fnetwork|common/network] to use the Windows network & event management APIs and ensuring that all unit tests pass.  
+
* Refactoring the base classes under [http://code.google.com/p/linux-lighting/source/browse/#git%2Fcommon%2Fnetwork common/network] to use the Windows network & event management APIs and ensuring that all unit tests pass.  
 
* Cleaning up various parts of the code which use POSIX APIs (see http://code.google.com/p/linux-lighting/issues/detail?id=139 for an example)  
 
* Cleaning up various parts of the code which use POSIX APIs (see http://code.google.com/p/linux-lighting/issues/detail?id=139 for an example)  
  
Line 13: Line 13:
  
 
'''Skills Required''': C++, Windows Network Programming <br/>
 
'''Skills Required''': C++, Windows Network Programming <br/>
'''Estimated Difficulty''': Medium
+
'''Estimated Difficulty''': Hard
 +
 
  
 
== Asynchronous Web Notification of RDM Messages ==  
 
== Asynchronous Web Notification of RDM Messages ==  
  
 +
Thanks to sites like GMail and Facebook, users have come to expect asynchronous notification of events in their web browser. [[RDM]] enabled lighting devices can generate events such as ''Over Temperature'' and ''Lamp Faulty'' so it would be nice to alert the users to this. This project would involve work with two Open Source efforts. The student would need to work with [http://www.gnu.org/software/libmicrohttpd/ libmicrohttpd] to add [http://en.wikipedia.org/wiki/WebSocket WebSocket] support (see the [http://lists.gnu.org/archive/html/libmicrohttpd/2012-01/msg00015.html email thread]).
  
'''Skills Required''': C++, Network Programming, Javascript, HTML<br/>
+
The second step would involve using WebSockets to deliver events to the browser, and building a UI to notify the user. The [[OLA]] UI is built with [http://code.google.com/closure/ Google Closure].
 +
 
 +
'''Skills Required''': C++, Network Programming, Javascript, HTML, Google Closure<br/>
 
'''Estimated Difficulty''': Medium
 
'''Estimated Difficulty''': Medium
  
Line 24: Line 28:
 
== Web Based Configuration of Preferences ==
 
== Web Based Configuration of Preferences ==
  
 +
User Preferences for [OLA] are stored in text files but the web UI provides no method for changing any preferences beyond port patchings. At the moment the user is required to stop the OLA Daemon, exit the text files and restart if settings are to be changed.  This project would involve building a generic preference store and exposing it through the web UI. Changing preferences on the fly is likely to expose bugs in some of the OLA plugins. These will need to be fixed.
  
 
'''Skills Required''': C++, Javascript, HTML  <br/>
 
'''Skills Required''': C++, Javascript, HTML  <br/>
'''Estimated Difficulty''': Medium
+
'''Estimated Difficulty''': Easy
 +
 
 +
 
 +
== Web Based RDM Tests & Integration with the RDM Index ==
 +
 
 +
The [[RDM Responder Testing][Automated RDM Responder Tests] have been very popular in the industry and are used by many manufacturers to test their products prior to release. At the moment the tests are run from the command line and rely on the users to write scripts to post process the test output. Building a web UI for the tests would make them easier to use for the manufacturers and give us the ability to provide more control over how the tests are run.
 +
 
 +
The second part of this project covers the [http://rdm.openlighting.org/ RDM Product Index], a website that collects information on [RDM] enabled products and make it freely available. The work would be to expand the [http://code.google.com/p/linux-lighting/source/browse/tools/rdm/model_collector.py model_collector.py] script to automatically upload new responder data to the site, and build a system for a human to sanity check the new data before publishing it.
 +
 
 +
 
 +
'''Skills Required''': Python, HTML, Javascript <br/>
 +
'''Estimated Difficulty''': Easy

Revision as of 08:44, 9 February 2012

This page lists some ideas for Google Summer of Code 2012 projects for the Open Lighting Project. You can use these ideas as a basis for your application, or come up with something different. Please see the Google SOC site for the 2012 timeline.


Port to Windows Platforms

This is the most requested 'feature' and would significantly expand the reach of the project. The current, supported method of running OLA on Windows is using VMWare (instructions). This is sub optimal, since it requires the use of non-free software and is challenging for users without unix command line experience. Work on a Windows port commenced in mid 2011 (see these Notes), but was postponed due to lack of resources.

This project would include:

A Windows port would enable lighting controller applications like QLC and D::Light to move to OLA entirely, and not have to maintain their own plugins.

Skills Required: C++, Windows Network Programming
Estimated Difficulty: Hard


Asynchronous Web Notification of RDM Messages

Thanks to sites like GMail and Facebook, users have come to expect asynchronous notification of events in their web browser. RDM enabled lighting devices can generate events such as Over Temperature and Lamp Faulty so it would be nice to alert the users to this. This project would involve work with two Open Source efforts. The student would need to work with libmicrohttpd to add WebSocket support (see the email thread).

The second step would involve using WebSockets to deliver events to the browser, and building a UI to notify the user. The OLA UI is built with Google Closure.

Skills Required: C++, Network Programming, Javascript, HTML, Google Closure
Estimated Difficulty: Medium


Web Based Configuration of Preferences

User Preferences for [OLA] are stored in text files but the web UI provides no method for changing any preferences beyond port patchings. At the moment the user is required to stop the OLA Daemon, exit the text files and restart if settings are to be changed. This project would involve building a generic preference store and exposing it through the web UI. Changing preferences on the fly is likely to expose bugs in some of the OLA plugins. These will need to be fixed.

Skills Required: C++, Javascript, HTML
Estimated Difficulty: Easy


Web Based RDM Tests & Integration with the RDM Index

The [[RDM Responder Testing][Automated RDM Responder Tests] have been very popular in the industry and are used by many manufacturers to test their products prior to release. At the moment the tests are run from the command line and rely on the users to write scripts to post process the test output. Building a web UI for the tests would make them easier to use for the manufacturers and give us the ability to provide more control over how the tests are run.

The second part of this project covers the RDM Product Index, a website that collects information on [RDM] enabled products and make it freely available. The work would be to expand the model_collector.py script to automatically upload new responder data to the site, and build a system for a human to sanity check the new data before publishing it.


Skills Required: Python, HTML, Javascript
Estimated Difficulty: Easy