add CMake config (#20)
[usb-relay-hid.git] / README.md
index b37a95572482ac54934dcb4188673dfbf2fd2673..9bb888f6200cbbb04343936d80fee85343fab8f0 100644 (file)
--- a/README.md
+++ b/README.md
@@ -3,52 +3,48 @@ usb-relay-hid
 
 ![](http://vusb.wdfiles.com/local--files/project:driver-less-usb-relays-hid-interface/relay2.jpg)
 
-The goal of this little project is to provide open-source API for low-cost USB HID relays 
+This project provides open-source API for low-cost USB HID relays 
 (search on eBay for "5V USB Relay Programmable Computer Control For Smart Home").
 
 The big advantage of HID-based interface is that no kernel drivers and no simulated COM-ports are needed. It is easy to detect and address the connected devices.
+Ebay vendors currently offer only an API library for Windows, and only in binary form.
 
-Unfortunatey, the vendors currently offer only API library for Windows, and only in binary form.
+We are not associated with the manufacturer(s) of these devices or author(s) of the original software offered by ebay sellers.
 
-We are not associated with the manufacturer(s) of these devices or author(s) of the original software offered by eBay sellers.
-Our intent is to make this device usable on Linux (and any other OS that supports libusb) as well as on 64-bit Windows.
+The project home page is on the [V-USB wiki](http://vusb.wikidot.com/project:driver-less-usb-relays-hid-interface "driver-less-usb-relays-hid-interface") - because the firmware of the device is based on [V-USB](http://www.obdev.at/products/vusb/index.html). V-USB enables amazingly simple and low-cost USB hardware solutions.  
+This repository contains only the host side software.
 
-The main project web page is on the [V-USB wiki](http://vusb.wikidot.com/project:driver-less-usb-relays-hid-interface "driver-less-usb-relays-hid-interface"). This is because the firmware of the device is based on [V-USB](http://www.obdev.at/products/vusb/index.html). V-USB enables amazingly simple and low-cost USB hardware solutions. This repository, however,  contains only the host side software.
 
 
+Binary downloads, documentation, bugs, TO-DOs and more
+----------------------
 
-License
--------
+All this is in the [Github project](http://git.io/bGcxrQ) : releases, wiki pages and Issues. 
 
-Currently we reuse some code from other V-USB projects, which is dual-licensed: GPL + commercial. Until we remove this code, we cannot set any other license. 
 
-We could not locate any copyright information in the software package offered by the eBay sellers. No source code was reused from that package, besides of the C API header (the .h file).
 
 Current state
 -------------
 
-A simple command-line utility for Linux (x86 or x64) and Windows.
-This is enough for our own usage.
+* A simple command-line utility for Linux (x86 or x64), Apple OS X and Windows (XP and newer, 32 and 64-bit).
 
-- Windows version builds with VC++ and WDK 7.1.
-- Linux version builds with gcc and libusb v. 0.1. Tested on RH and Ubuntu.
+* Shared library for Linux (x86 or x64), Apple OS X and Windows.
 
+* Python (CPython) - supported thru the shared library 
 
-To do:
--------
+The Windows version of the shared lib, `USB_RELAY_DEVICE.DLL`, is backward compatible with the binary from the device vendor.
+Windows GUI demo app is similar to the device vendor's but written in C++/CLI.
 
- * Reconstruct the API library, which will be binary compatible with the original software package, and minimal decent documentation.
- * Move the Linux variant to newer libusb version (1.x)
- * Make bindings for Python and Java
- * Maybe, reconstruct the GUI utility
- * Maybe, port the Windows variant to GNU (mingw) toolchain
-The original API library does not handle hot-plug and removal of USB devices. The command-line utility isn't affected by hot plug/removal, but GUI clients of the library will need to re-enumerate the devices or react to PnP events in OS-specific way. Caller must provide locking in case of accessing the library from multiple threads.
+Required to build:
 
+- Windows version: builds with VC++ and WDK 7.1, or VC++ 2013 "community edition" with its matching SDK (Win8.1).
+- Linux version builds with gcc and libusb v. 0.1. Tested on RH, Ubuntu, Mint.
+- OS-X 10.9+ version builds with Xcode and plain IOKit libraries. 
 
-Misc.
------
 
-Related projects:
+License
+-------
 
-[USB Relay](https://github.com/johannesk/usb-relay)  by Johannes Krude - complete project with hardware and firmware, based on V-USB, but not HID - so requires a driver.
+Currently we reuse some code from other V-USB projects, which is dual-licensed: GPL + commercial. Until we remove this code, we cannot set any other license. 
+
+We could not locate any copyright information in the software package offered by the eBay sellers. No source code was reused from that package, besides of the C API header (the .h file).