Permalink
Browse files

updated README

  • Loading branch information...
1 parent 8a33286 commit 52c343025fa6429ad4f508d18a604555dd971f43 @ekarak ekarak committed Dec 16, 2012
Showing with 38 additions and 18 deletions.
  1. +38 −18 README.txt
View
@@ -2,15 +2,49 @@
Thrift4OZW
----------
-This project aims to be a fully functional interface to the OpenZWave library
-( http://code.google.com/p/open-zwave/ ) using:
+This project aims to be a multi-lingual interface to the OpenZWave library
+( http://code.google.com/p/open-zwave/ ), a C++ library for the ZWave wireless
+home automation protocol, using two enabling technologies, which are:
1) Apache Thrift ( http://thrift.apache.org ) as the RPC abstraction service
2) STOMP ( http://stomp.codehaus.org ) as a means to store & transmit
OpenZWave's notifications over the network (since Thrift lacks asynchronous
calls other than exceptions)
-Being an experimental project, I have used some external tools & libs. These are:
+The project, after successful compilation, creates an "OpenZWave daemon" (ozwd)
+which opens up 1) a server port for Thrift in order to receive commands and pass
+them through OpenZWave to your ZWave controller (usually a USB stick) and 2) a
+client port to a STOMP server so as to publish notifications on asynchronous
+events that the OpenZWave library generates.
+
+Thus you can have access to the wonderful world of ZWave with the help of
+OpenZWave from all languages currently supported by Apache Thrift which are,
+at the time of this writing: C++, Java, Python, PHP, Ruby, Erlang, Perl,
+Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml and Delphi.
+
+This is a simple diagram to illustrate the idea behind Thrift4OZW:
+<pre>
++---------------+ Thrift API +---------------+ Open +---------------+
+| Zwave | ------------> | Zwave daemon | ZWave | Zwave |
+| application | (commands) | (ozwd) - C++ |=======| Controller |
+| | +---------------+ (C++) | (USB or |
+| | ^ v | HIDAPI) |
+| | +---------------+ | |
+| | notifications | STOMP Server | | |
++---------------+ <------------ +---------------+ +---------------+
+ via STOMP subscription
+</pre>
+
+These are the side-projects I'm using for this project:
+
+Thrift Server Creator (create_server.rb)
+----------------------------------------
+A hackity Ruby script I wrote to automatically create useful Thrift server
+bindings (instead of silly "your code goes here", as produced by Thrift).
+Uses RbGCCXML ( http://rbplusplus.rubyforge.org/rbgccxml/ ) to parse both
+source + target and then tries to create compilable & working code.
+
+ See: README-ThriftServerCreator.txt
BoostStomp - a C++ STOMP client:
------------------------------------
@@ -20,18 +54,4 @@ useful Boost facilities. It provides the asynchronous notification mechanism
used to pass OpenZWave notifications to Thrift4OZW. For more info about
BoostStomp, check out its homepage:
- https://github.com/ekarak/BoostStomp
-
-
-Thrift Server Creator (create_server.rb)
-----------------------------------------
-A hackity Ruby script I wrote to create useful Thrift server bindings
-(instead of silly "your code goes here", as produced by Thrift).
-Uses RbGCCXML ( http://rbplusplus.rubyforge.org/rbgccxml/ ) to
-parse both source + target and then tries to create compilable
-& working code.
-See: README-ThriftServerCreator.txt
-
-
-
-
+ https://github.com/ekarak/BoostStomp

0 comments on commit 52c3430

Please sign in to comment.