X 1 0  A P I  1.0.1  I n t r o d u c t i o n
J e s s e  P e t e r s o n

Version 1.0.1



This introduction will provide background information on the design of the X10 API.

The X10 API was based on the Java Event model. Some concepts were derived from the Java Speech API as well.

The CM11A class is the software implementation of the physical CM11A serial-to-X10 interface.The CM11A class implements the Gateway interface. The Gateway interface is an abstraction of standard methods that would be required of an X10 gateway. They include allocating and deallocating the device. The CM11A also implements the Transmitter interface. A controlling program that instantiates and allocates a CM11A object can send X10 funtions to X10 devices by invoking the transmit() method and providing the appropriate X10 event as the parameter to the method.

The CM17A class is also a Gateway and Transmitter. It differs from the CM11A device in that it only supports On, Off, Dim, and Bright X10 commands but it is a wireless device. It transmitts the X10 commands via RF to a receiver that receives the RF X10 commands and sends them out via the power lines to the other X10 devices.

All of the X10 commands are represented by Java Events. The CM11A allows different type of X10 event listeners, like the AddressListener and FunctionListener. When the CM11A detects an X10 AddressEvent, the registered listeners will be called. When the CM11A detects an X10 function, the registered listeners will be called.

Each device has a house code from 'A' to 'P'. The device also has a device code from 1 to 16. Let's say that you have a lamp device assigned to house code 'C', device code '3'. In order to turn it on, you must transmit an AddressEvent and a FunctionEvent. The device must first be addressed with an AddressEvent at house code 'C' and device code '3'. Then an OnEvent for house code 'C' will turn on the previously addressed device.

The CM11A and CM17A devices are controlled by your computer through a serial interface. In order to use this API you must have the Java Communications API. See the Readme for more information.

More information about X10 can be found at http://www.x10.com. X10 devices can be purchased online at http://www.x10.com, http://www.smarthome.com, and http://www.hometech.com. There are many other suppliers. The CM11A is part of the ActiveHome kit. The CM17A is sold at http://www.x10.com under the brand name FireCracker. The API was based on the programming specification for the CM11A available in Word or text format at http://www.x10-beta.com/ActiveHome/ and the CM17A programming specification available at http://www.x10.com/manuals/cm17a_proto.txt.



Copyright © 1999 Jesse Peterson