Introduction
	What is X10MSW?
	Getting Started
	Demo Mode See Selecting Demo Mode
Windows
	Units
	Monitor	Current
	Events
	Event File
Procedures
	Associated with Units
	Associated with Events
	Associated with Interfacing to the CP290 and PLIX
	Associated with Monitoring
Glossary

appliance
base housecode
bright
conditionals
days
description
demo mode
dim
event
fade
housecode
lamp
normal
PLIX
security
select
time
today
tomorrow
TW523
type
unit
unit number
up
x10.ini

--------------------------------------------------------------------------
Overview of X10MSW

X10MSW is a MS-Windows application which allows you to control lights, 
appliances, etc. around your home from your PC.  X10MSW is meant to be 
used with the CP290 "Powerhouse" computer interface manufactured by 
X10 USA, although there is a demo mode which does not require a  CP290.  
The CP290 attaches to your PC via a serial cable, and works with other X10 
devices (called units) to control lights, appliances, etc. around your house.  
With X10MSW, you can send "direct" commands to turn things on, off, or, in 
the case of lights, dim or brighten them.  You can also download a set of 
events into the CP290's battery backed-up memory for execution at some 
preset time/day.  Once the CP290 has a set of events in its memory, you 
can turn the PC off and the CP290 will continue to execute those events.  
Events are anything you can do with "direct" commands such as on, off, 
dim, etc.

X10MSW also supports the PLIX evaluation board from Micromint Inc. 
which allows you to use a standard parallel printer port (LPT1-3) with a 
TW523 bi-directional powerline interface from X10 USA.  This allows you to 
monitor all X10 events and to do bright commands.  See PLIX for contact 
information on Micromint Inc.

X10MSW allows you to define a set of icons which represent the various 
X10 units you have around your house.  X10MSW has icons for lamps, 
generic appliances, fans, radios; or you can customize each X10 unit with 
your own icons that represent the unit when it is on and off.  You give each 
unit a description which is used throughout X10MSW.  X10MSW also allows 
you to monitor the commands being sent by the CP290, or with the optional 
PLIX interface monitor all X10 commands.  Finally, X10MSW allows you to 
manange multiple files which contain CP290 events.  It does all this using 
MS-Windows Multiple Document Interface (MDI) which allows several 
windows within the one X10MSW main window.

X10MSW events are fairly sophisticated, consisting of a command such as 
on, off, dim, bright, etc.;  the X10 unit or units which are to be affected; a 
time of day including sunrise, sunset, or plus/minus offset from them; a day 
of the week; and a month of the year.  Each event can be frozen - meaning 
it will not occur until you thaw it; or it can be qualified to only occur when 
you are on vacation (you have to tell X10MSW you are going on vacation); 
or it can be qualified by any of 8 conditionals which you define and set or 
reset.

X10MSW events may also be defined to happen "now", allowing you to build 
up event files which do a bunch of direct commands.  If you start X10MSW, 
giving the name of an event file with only "now" events, they will be done 
automatically and X10MSW will exit after all direct commands are done.



--------------------------------------------------------------------------
Getting Started

X10MSW can be kept in any directory.  You do not need to install or 
configure X10MSW before running it.  It does create and use an x10.ini file 
in your MS-Windows directory.   You can edit the .ini file if you wish, but you 
can configure/customize X10MSW's operation completely from within 
X10MSW.  A sample x10.ini file is included which you can copy to your MS-
Windows directory.

If X10MSW is given the name of an event file when it is started, that file is 
opened and its contents are displayed in an Event File window.
Since all X10MSW event files have an extension of .x10, you can associate 
X10MSW with an extension of .x10 (Use MS-Windows File Manager) to 
have MS-Windows start X10MSW when you double click on an event file.  If 
the event file has only direct (now) commands, they will be done 
automatically and X10MSW will exit when finished.

X10MSW uses the current MS-Windows colors for things like title bars, 
backgrounds, text, etc.  If you change the MS-Windows colors via the 
control panel X10MSW will change its colors accordingly.

You will probably want to set up the following parameters the first time you 
start X10MSW:

1) Define the COM port to which the CP290 is attached

The first time you start X10MSW you will be in demo mode (you probably 
saw the message box telling you this before you got into this help text).  In 
order to actually use a CP290, you need to use the Interface menu item to 
select the COM port (1-4) X10MSW is to open to communicate with the 
CP290.  See Selecting COM Ports.

2) Set the CP290 Base Housecode and Time

If you were using the CP290 before, chances are you have its base 
housecode and time already set.  If not, you can use the Interface menu item 
to set the base housecode (for the keys on the CP290) and the time.  See 
Changing Base Housecode and Setting the Clock.

3) Set the Latitude and Logitude

In order to use times like sunset and sunrise, X10MSW needs to know your 
Latitude and Longitude.  A file with the Lat/Long for many cities around the 
world is included with X10MSW - it is called latlong.dat.  Use your favorite 
editor or Windows Notepad to view the file and locate your Latitude and 
Longitude.  You can also find Latitude/Longitude in an almanac.  X10MSW 
only uses degrees, not minutes or seconds.

Once you know your Latitude and Longitude, select (click once) the current 
events child window and use the Set Lat/Long item in the Options menu to 
bring up a dialog box for telling X10MSW your Latitude and Longitude.  See 
also Setting Latitude/Longitude.

4) Define the units in your home

A sample x10.ini file is included which you can copy to your MS-Windows 
directory to see what a sample set of units is like.  You should use the Units 
child window to add/edit/delete the units so they match those defined in your 
home.  See Procedures Associated with Units:for more help.  At this point 
you are ready to exert direct control over any units you have defined.

5) Save any events currently in the CP290

If you have been using the CP290, you probably have some events stored in 
its memory.  To upload and save these events, follow these steps:

a)  Restore the child window called "current events"
b) Wait until the upload completes - IGNORE THESE EVENTS

X10MSW uses the graphics RAM in the CP290 to save additional 
information about events, such as month of the year, user conditionals, 
frozen, etc.  Your old CP290 program probably did not use this, and so the 
events you see will look funny.

c) Use the Upload - no conditionals item under the File menu

This uploads without the stuff kept in the graphics RAM.  These events will 
be active for all 12 months of the year, not frozen, etc.  You can save these 
events to a file and edit them later.

5) Look at the sample.x10 event file

You can open the sample.x10 event file to see examples of some 
complicated events.  Note that when you open an event file you can tell 
X10MSW to remember a particular directory.  All file operations (open, save, 
etc.) will start in that directory from then on, including after you have exited 
and re-started X10MSW.


--------------------------------------------------------------------------
Units Window

The Units child window displays the collection of icons that represent the 
units you have defined.  Each unit has a housecode, a unit number, and a 
description.  Each unit also has a type which causes a certain icon, such as 
a light bulb, a fan, etc. to be displayed.  You can define your own unit types 
and the icons that represent them.  There is usually an active unit whose 
description is highlighted (referred to as selected).

The unit icons are arranged based upon the size of the description.  If you 
resize the window, the icons may move, but their order will be unchanged.  
If there are too many icons to fit the current window size, scroll bars wil 
appear and you can use those to scroll the icons into view, or use the 
PgDn/PgUp keys.

Note that this window cannot be closed.

Procedures Associated with Units
	Adding a Unit
	Selecting a Unit
	Controlling a Unit
	Deleteing a Unit
	Changing a Unit
	Creating New Unit Types/Icons
	Rearranging Unit Icons
	
Commands
	File Menu
	Edit Menu
	Direct Menu
	AllUnits Menu
	Interface Menu
	Window Menu
	
--------------------------------------------------------------------------
Monitor Window

The Monitor child window allows you to monitor the commands sent by the 
CP290, either direct commands (via X10MSW or keys), or stored events.  
Unfortunately, the CP290 cannot tell X10MSW about commands sent by 
other X10 controllers.  With the optional PLIX inteface X10MSW can monitor 
all X10 commands generated by any console/device in your house.  The 
monitor child window can display CP290 only, PLIX only, or both.  In 
addition, commands received by the PLIX interface can cause a short beep.

The Monitor window holds up to 100 commands, each of which is optionally 
time and/or date stamped.  You can scroll back and forth using the scroll 
bars and/or PgUp/PgDn; and also start a log file.  The log file is limited only 
by available disk space; it does not wrap.

The Monitor window will continue to monitor commands even when 
minimized.  If you scroll the most recent command off the screen, the 
window will not scroll; otherwise the window will scroll down as commands 
are displayed.

Note that this window cannot be closed.

See also Procedures Associated with Monitoring:.
Commands
	File Menu
	Options Menu
	Interface Menu
	Window Menu
	
--------------------------------------------------------------------------
Procedures Associated with Monitoring

To change date and/or time stamping:

1) Use the Options menu item to choose time/date stamping.  A checkmark 
indicates what is active.  Time/Date stamping will affect both the display and 
logging of commands sent by the CP290.

To clear the window:

1) Use the ClearScreen item in the Options menu  to clear the window.

To start/stop logging to a file:

1) Use the File menu to start/stop logging to a file.  When starting, you will 
get a dialog box to select the file to write to.  If the file exists, you will be 
asked to confirm overwriting it.  The name of the log file is placed in the 
monitor window title bar.

To control display of CP290 and/or PLIX commands:

1) Use the Options menu item and check any combination of Show CP290 
and/or Show PLIX.  A checkmark indicates commands received by that 
device will be displayed.  Commands received via the PLIX interface will be 
prefixed with a "PLIX" string in the monitor output.

To cause a short beep when commands are received via the PLIX:

1) Use the Options menu item and check Beep PLIX.  A checkmark 
indicates a short beep will be made whenever a command is received from 
the PLIX interface.


--------------------------------------------------------------------------
Current Events Window

The current events child window is a special event window which  reflects 
the set of events currently in the CP290.  You can manipulate the events 
just as you would in an event file.  

The current events window is in one of two modes - immediate or delayed.  
When in immediate mode, any change you make to an event is immediately 
made in the CP290.  In delayed, you must download the set of events to the 
CP290.

The current events window starts minimized.  When you restore it, an 
upload from the CP290 is done.  If you download the CP290 from another 
event file, the current events window is updated to reflect the new set of 
events.

Note that this window cannot be closed.

See also Procedures Associated with Events.

Commands
	File Menu
	Edit Menu
	Options Menu
	Interface Menu
	Window Menu

--------------------------------------------------------------------------
Event File Window

Event file child windows allow you to manipulate a set of events and 
load/store them from/to files and/or download them to the CP290.  You can 
have multiple event file windows open at one time, allowing you to easily see 
the differences between them.  X10MSW likes to save events to files with 
extension of .x10, but you could use any extension.

You open an event file, which creates an event file window, by using the 
Open item in the File Menu at any point.  You can create a new event file by 
using the New item in the File Menu.

Each Event window has a listbox which displays the events in the file.  If you 
resize the window,  the listbox changes size with it.  The event listbox has a 
vertical scroll bar but no horizontal scroll bar.

See also Procedures Associated with Events.

Commands
	File Menu
	Edit Menu
	Options Menu
	Interface Menu
	Window Menu
	
--------------------------------------------------------------------------
Procedures Associated with Interfacing to the CP290 and PLIX
	Selecting COM Ports
	Selecting Demo Mode
	Activating PLIX Ports
	Changing Base Housecode
	Setting the Clock
	Testing the CP290


--------------------------------------------------------------------------
File Menu

This menu has several items in common to all child windows, and some 
items which are unique and change with the active child window.  Items in 
common are:

Open - open an event file (creates event child window)
New - creates a new event file (and event child window)
Exit - exits X10MSW - asks for confirmation if you made
	any changes
About - simple about box   

See also:
File Command Menu - Monitor Window
File Command Menu - Current  Events Window
File Command Menu - Event File Window


--------------------------------------------------------------------------
File Command Menu - Monitor Window

The File menu when the Monitor child window is active has an item which 
allows you to start/stop logging of events.  The menu item changes 
depending on whether the log is open or closed.

See Procedures Associated with Monitoring


--------------------------------------------------------------------------
File Command Menu - Current Events Window

The File menu when the current events child window is active has items 
which allow you to save the current events into an events file, append an 
events file, upload from the CP290, download a set of events to the CP290, 
or print the current events.

See:

Save
Save As
Append
Upload
Download
Print


--------------------------------------------------------------------------
File Command Menu - Event File Window

The File menu when an event file child window is active has items which 
allow you to save the events into the file they came from or into a different 
file; open another event file using the same event window; append another 
event file to the event file open in this window; download this set of events, 
or print this event file.

See:

Save
Save As
Open Another
Append
Download
Print


--------------------------------------------------------------------------
Direct Command Menu

Allows you to command a unit to turn on, off, dim, fade, or go up.If the PLIX 
interface is active you can also do a bright command.  Simply select a unit, 
and use the appropriate item in the Direct menu.  You may also control a 
unit by double-clicking with a mouse or selecting it and hitting Enter on the 
keyboard.

Note that on, off, dim and bright are done via the PLIX interface (if active);  
fade and up are always done via the CP290.


--------------------------------------------------------------------------
Edit  Menu - Units Window

Allows you to add, delete, or change unit definitions.  When you define a 
unit, you supply its housecode, unit number, description, and type.  This 
information is used to display a unit in the Units window.

See:

Add
Del
Change

Note that when there are no units defined, the Del and Change items are 
not valid.


--------------------------------------------------------------------------
Edit Menu - Event Window(s)

Allows you to add, delete, or change an event.  If there are no events in the 
window, delete and change are disabled.  The standard cut, copy, and 
paste clipboard operations are supported on events.  This menu also allows 
you to strip or set conditions on all events in the window.

See:

Add
Del
Change
Global Cond Set
Global Cond Strip

Note that if there are no events in the window, only the Add item is valid


--------------------------------------------------------------------------
AllUnits Menu

These commands allows you to command all unitss to turn on, off, dim, or 
fade.  Note that with the CP290, you will turn all units, be they lamp or 
appliance units on, unlike other X10 command consoles which will only turn 
all lamps on.

You can command units with the same housecode as the CP290 base 
housecode, or you can specify any other housecode.

When a PLIX interface is active, all lights on and all units off is done via the 
PLIX, all dim and all fade are done via the CP290.  Unlike the CP290, the 
PLIX interface does generate the all lights on command.


--------------------------------------------------------------------------
Interface Menu

This command allows you to set the com port (1-4) to which the CP290 is 
attached. Note that the com port you choose is saved in the x10.ini and will 
be used next time X10MSW is run.   This menu also allows you to select 
demo mode.

Similarly, you use this menu to activate a PLIX interface on a parallel port 
(LPT1-3).

You also use this command to change the CP290's base housecode, clock, 
or run self-tests.

See:

Selecting COM Ports
Selecting Demo Mode
Activating PLIX Ports
Changing the CP290 Clock
Changing the base housecode
Testing the CP290


--------------------------------------------------------------------------
Monitor Options Menu

This menu allows you to turn date and/or time stamping on or off.  You can 
also clear the window, control CP290/PLIX output, and cause a short beep 
when commands are received via the PLIX interface..

See Procedures Associated with Monitoring


--------------------------------------------------------------------------
Event Options Menu

Gives you control over how events are sorted; allows you to define your own 
conditionals; and, for the current events window, allows you to switch 
between immediate and delayed mode.

See:

Sort by Housecode/Unit
Sort by Time
Set Conditionals
Set Lat/Long


--------------------------------------------------------------------------
Window Menu

This is a standard MDI window menu which allows you to arrange the child 
windows or select the active child window.  Note that the Arrange Icons 
item does not mean arrange the unit icons


--------------------------------------------------------------------------
Adding a Unit

To define a new unit:

1) Choose Add from the Edit menu
                        - or -
      Click  anywhere there is no unit icon
2) Choose the housecode
3) Choose the unit number
4) Enter the unit description5) Choose the unit type by selecting a type from 
the listbox.  You can see the "on" and "off" icons that will be used to 
represent the unit by selecting a type from the listbox.  As part of this, you 
may create a new type and/or change the icons (see Creating New Unit 
Types/Icons).

The ADD button adds this unit, and leaves the dialog so you can add 
another unit
The OK button adds this unit and exits the dialog

The new unit will be displayed in the Units window, and be selected.  This 
makes it easy to rearrange the new unit's icon in the unit window.  The add 
dialog starts with a unit number that is one greater than the currently 
selected unit (or the last unit added); and is started with the CP290's base 
houscode.


--------------------------------------------------------------------------
Deleting a Unit

To delete a unit:

1) Select  a unit from the Units window
2) Choose Del from the Edit menu
 	- or -
     Use the Del key
3) You will be asked to confirm the deletion of the unit

The first unit in the Units window will be selected.


--------------------------------------------------------------------------
Changing a Unit

To change a unit:

1) Select  a unit from the Units window
2) Choose Change from the Edit menu 
3) A dialog similar to Addding a unit will display the current unit's 
parameters
4) Make the changes required
5) Either the CHANGE or OK button will make the change

If you change the unit number or housecode to one already defined, you will 
asked if you want to really do that.  If you change only the description or 
type, the icon will not "move" in the Units window.   Otherwise the icon will 
move, but you can always rearrange the icons.


--------------------------------------------------------------------------
Selecting a Unit

To select a unit in the Units window:

mouse		Click on its icon or text.  Note
		that if not all units are visible in the
		Units window, you can use the
		scroll bar to scroll the Units
		window. 

keyboard	Use the cursor or tab keys to
		move from unit to unit.  Note
		that  if not all the units are visible in the
		Units window, you can use the
		PageUp and PageDown keys
		to scroll the Units window


--------------------------------------------------------------------------
Selecting COM Ports

To select/change the port to which the CP290 is connected:

1) Choose COM1-4 from the Interface menu
     The port chosen will be checked.

X10MSW will try to get the base housecode from the CP290 immediately.  If 
the cable is not connected, the com port is not working, the CP290 is not 
working, you have the com ports configured in Windows incorrectly, or 
some other problem which prevents X10MSW from getting the base 
housecode, you will see a timeout message.  Correct the problem and re-
select the com port .

The com port to use is changed in the x10.ini file and used by X10MSW 
next time it is started


--------------------------------------------------------------------------
Selecting Demo Mode

To run X10MSW in demo mode

1) Choose Demo from the Interface menu.

Note that if you were actually using a com port, it
will be "forgotten" and you will have to re-select it (see Selecting Com 
Port).

2)  X10MSW will run in demo mode (even if you exit and re-start it) until you 
select a com port


--------------------------------------------------------------------------
Changing the base housecode

To change the CP290's base housecode:

1) Choose Housecode from the Interface menu.     The existing base 
housecode will be displayed.
2) Choose the new base housecode

Note that changing the base housecode will erase all events stored in 
the CP290.  You will be asked to confirm that you really want to do 
this.


--------------------------------------------------------------------------
Changing the CP290 clock

To change the CP290's internal clock:

1) Choose Clock from the Interface menu.  The existing CP290 time/day 
will be displayed.
2) You may change the time/day and choose OK.   If you enter the time in 24-
hour format, it will  be converted to 12 hour AM/PM format.
		- or -
3) You may choose the button displaying the system  time/day to sync the 
CP290 with the system clock

Note that in either case, the time will be changed when you make your 
selection.  If you take a few minutes to decide/review your selection, the 
CP290 clock will be slow


--------------------------------------------------------------------------
Testing the CP290

To run the CP290's self-tests:

1) Choose TestX10 from the Interfacemenu.

This takes a few seconds; you will be told whether the tests failed or 
succeeded.

Note that running self-tests will erase all events stored in the CP290 .  
You will be asked to confirm that you really want to do this.  If you 
upload after a self-test, you will see a lot of garbage events.


--------------------------------------------------------------------------
Activating PLIX Ports

To activate a PLIX evaluation board:

1) Choose PLIX from the Interface menu
2) Choose LPT1-LPT3 or No PLIX

X10MSW will check that a PLIX evaluation board is connected to the 
parallel port you specify, turn on the power to the PLIX board, and begin to 
poll for X10 commands received by the board.  The LPT port is saved in the 
x10.ini file and is opened when X10MSW is started.

A checkmark is placed next to the LPT port being used for the PLIX board.
If an error has occured when accessing the board no LPT ports will be 
checked.  X10 MSW expects LPT1 to be at (hex) 378, LPT2 at 278, and 
LPT3 at 3BC.

Choosing No PLIX will turn off the board's power and will stop the opening 
of a LPT port for the PLIX board when X10MSW is started.

Note that, if possible, the PLIX board should be powered either via a battery 
or an AC adapter connected via the battery leads rather than the J5 
connection.  This allows X10MSW to turn off power and reset the PLIX chip 
to clear any errors.


--------------------------------------------------------------------------
Creating New Unit Types/Icons

When you add or change a unit, you specify a type.  Each type has an "on" 
icon and an "off" icon which is used when displaying the unit in the Units 
window.  X10MSW has a set of pre-defined types and icons that go with 
them.  You can add your own types whenever you add/change a unit.  You 
will give the type a name, an "on" icon and an "off" icon.  These are 
recorded in the x10.ini.  You can also change the icons of the pre-defined 
icons, but you will need to change both the "on" and "off" icons.

The following procedures assume you are in the Add/Change a Unit dialog 
box (via add or change).

To define a new unit type:

1)  Use the New button.
2) Specify the "on" icon file
3) Specify the "off" icon file
4) Give the type a description
5) Specify whether the type is a lamp or appliance
6) Choose OK

To customize an icon for a type:

1) Select the type from the listbox
2) Use the Change button
3) Make changes as required.  Note that if you are changing a pre-defined 
icon (lamp, appliance, misc, coffee, lampost, radio, or fan) you must change 
both the "on" and "off" icons.

Currently the only way to "delete" a custom icon is to edit the x10.ini file and 
remove the icon description from either the "LampIcon" or "OtherIcon" 
sections.

If X10MSW finds a unit icon that is unknown, a special icon with a question 
mark is used to represent the unit.



--------------------------------------------------------------------------
Controlling a Unit

To turn a unit on or off:

mouse		Double-click the unit icon.
		The icon will change to indicate
		on or off.

keyboard	Select the unit and hit enter.
		The icon will change to indicate
		on or off.

To dim, fade, or up a unit, you must use the Direct menu


--------------------------------------------------------------------------
Rearranging Unit Icons

To rearrange unit icons within the Unit window:

1) Select a unit
2) Hold down the shift key and click the left mouse button on the unit where 
you  want the selected unit to be moved to

All the units "after" (left to right, top to bottom) the spot you moved the
icon to will be moved over.

Moving an icon to the last position requires two moves, one to move it to the 
second-to-last position by Shift/Clicking on the last icon, and then selecting 
the last icon and moving it to the second-to-last position


--------------------------------------------------------------------------
Procedures Associated with Events
	All about Events
	Working with Current Events
	Opening an Event file
	Creating a New Event file
	Event Dialog Box
	Adding an Event
	Deleteing an Event
	Changing an Event
	Using the Clipboard
	Appending from another Event file
	Saving an Event file
	Downloading Events
	Uploading Events
	Closing an Event window
	Controlling how Events are sorted
	Defining user-defined Event Conditionals
	Setting/Resetting Event Conditionals
	Setting Latitude/Longitude and Timezone
	Printing an Event File


--------------------------------------------------------------------------
All about Events

Events are stored in the CP290's memory and used to control units (turn 
some on, some off, etc.) at  the times and on the days you want.  This is 
done completely by the CP290, the PC does not have to be on (if it is the 
CP290 tells X10MSW when it does an event - you can see these in the 
Monitor window).  The CP290 can hold a maximum of 128 events.
Each event consists of the following parts:

Info. stored and used by the CP290:
1) Housecode
2) One or more units
3) A command:  on, off, dim, up, or fade
4) A time (more about this below)
5) A day or set of days

Extra info. stored and used by X10MSW:
6) Time "qualifiers" like now, sunset, sunrise, etc.
7) Event conditionals like months, frozen, vacation, and
7a) up to 8 user-defined conditionals 

The "extra" info. is used by X10MSW to determine if a particular event 
should be downloaded to the CP290, or if the time should be calculated by 
X10MSW before it is downloaded.  An event which X10MSW determines 
should not happen is still downloaded to the CP290, but it is scheduled to 
occur on no days.  This way, the current events window has all the events 
you have specified.  This "extra" info is saved in the CP290 graphics RAM.

Events are displayed in a listbox in event windows.  See
How Events Are Displayed.
Event Dialog Box

Events can also be kept in event files, which X10MSW likes to give an 
extension of .x10.  


--------------------------------------------------------------------------
Event Dialog Box

The event dialog is used whenever you are adding or changing an event.  It 
is a pretty busy dialog.  Listed below are the things you will want to do with 
the event dialog in order to get events to be the way you want them:

Specifying Event Housecode and Unit(s)
Specifying Event Days
Specifying Event Times
Specifying Event Conditionals

Use the OK button to add/change the event
When adding, use the ADD button to add this event and keep the dialog 
going for another new event.  If the previous command turned the unit(s) on, 
this event will turn the unit(s) off, or vice versa.
When changing, use the CHANGE button to change this event and keep 
the event dialog going (see above).  The button will change to ADD.
If you use the ADD or CHANGE button with a current event and the mode 
is immediate,  the event will be downloaded.


--------------------------------------------------------------------------
Specifying Event Housecode and Unit(s)

To specify which unit or units will be affected by an event:

 1) Use add/change event to start the event dialog box

When you are adding an event, the housecode/unit are initially set to 
whichever unit is selected in the Units window.
2) Use the drop-down listbox in the upper-left corner to select a defined unit
    - or -
2) Select a housecode
3) Select a unit.  To select multiple units, hold down the shift key
and click/select each unit you want affected by this event - either by using 
the unit radio buttons or by clicking one of the units in the drop-down listbox 
(must be the same housecode).
    - or -
Use the All Units button to select all units for a housecode.


--------------------------------------------------------------------------
Event Time and Time Qualifiers

Ultimately, each event is scheduled by the CP290 to occur at some time.

Events that occur on some day of the week (not Today or Tommorow) can 
be in security mode, which causes the CP290 to vary the actual time the 
command occurs in a pseudo-random pattern.The actual time will be within 
one hour after the time specified in the event.

Event times may take one of the following forms:

1) A specific hour/minute, AM or PM
2) NOW - just what it means.  These events are not downloaded but
done via the CP290's direct command capability.  Each NOW event is 
counted towards the 128 event limit per event file/download.
3) Sunrise, or a +/- 59 minute offset from sunrise
4) Sunset, or a +/- 59 minute offset from sunset

Sunrise and Sunset are calculated based on your Latitiude/Longitude,
See Setting Latitude/Longitude and Timezone.    Note that when you 
download events (See Downloading Events) you can tell X10MSW to not 
recalculate sunrise/sunset, otherwise these are recalculated each time you 
download.

See Also:
	How Events Are Displayed
	Specifying event times in an event dialog


--------------------------------------------------------------------------
Security mode causes the CP290 to vary the actual time an event 
occurs within one hour after the scheduled event time in a psuedo-random 
fashion


--------------------------------------------------------------------------
Normal mode causes the CP290 to perform the event at the time 
scheduled.


--------------------------------------------------------------------------
How Events Are Displayed

Events are displayed in a listbox in each event window.  Events which are 
inactive because of one or more false conditionals are displayed in gray text 
if your display supports gray text, otherwise the event is prefixed with an 
exclamation mark (e.g. on CGA displays).

There are several sorting options which will affect what is displayed first and 
hence how events are sorted, but a typical event is displayed as:

HU+ [Desc] CMD HH:MM isxx  MTWTFSS Months FV12345678

Where:

HU is Housecode and Unit.  If the event has multiple units, each is displayed 
on a different line with the "+" indicator.

Desc is the Unit description from the Units window.  If the event has multiple 
units, the description is for the unit with the smallest number.

CMD is one of:   On    Off   DimX (X is 0-15)  Fade  Up.  If the command is 
prefixed by a hyphen, it means that the current event in the CP290 would 
change if you did a download of the current events window right now.  For 
example, if the event in the CP290 was active only in January and the 
current month is not January, then the command will be prefixed by a 
hyphen.  This usually means you need to download either the current events 
or the event file which was previously downloaded.

HH:MM is hour and minute in 12-hour format, i is A for AM and P for PM
	- or -
Now for a direct command.  Note that the current events listbox never 
contain any direct commands since they are not stored in the CP290 and 
are only done when an event file is downloaded.

s is S for Security Mode, nothing for Normal mode

xx is:
	Nothing for normal time
	sr for sunrise with optional +/- offset (1-59 minutes)
	ss for sunset with optional +/- offset (1-59 minutes)
Note that the actual time which will be downloaded is in HH:MM  For event 
files, this is calculated when the file is opened.  For  current events, this is 
the time uploaded; it is (optionally) recalculated during download.

MTWTFSS indicates days of the week, or one of:
	Everyday
	Weekdays
	Weekend
	Today
	Tomorrow

Months (JFMAMJJASOND) indicates months of the year, or one of:
	All Year
	Winter
	Spring
	Summer
	Fall

FV12345678 indicates any active conditions, such as:
	F for frozen
	V for vacation
	1-8 for the 8 user-defined condition


--------------------------------------------------------------------------
Specifying Event Times in an Event Dialog

To specify a time for an event:

1) Use add/change event to start the event dialog box
2) Use the time qualifier listbox (near the HH:MM and AM/PM button) to 
select one of:
	As displayed (no qualifications to the time displayed)
	Now  - the days scheduled will still apply.
	Sunrise with optional +/- offset
	Sunset with optional +/- offset
	  Note that offsets are limited to 1-59 minutes
	  Also note that you cannot specify a Now event in the current events 
window
3) Use the buttons with numbers to select the hour, the minutes "tens", and 
minutes "ones".  
4) Use the AM/PM button as required
5) Specify security or normal mode
Note that security/normal does not apply to events which occur  Today or 
Tomorrow.


--------------------------------------------------------------------------
Event Days

An event can be scheduled for any day of the week, Sunday through 
Saturday.  An event can also be scheduled for Today or Tomorrow;  these 
happen only once and then are deleted by the CP290 once they are 
executed.

See Also:
	How Events Are Displayed
	Specifying event days in the event dialog


--------------------------------------------------------------------------
Now events are not downloaded but done via the CP290's direct 
command capability.  They may be affected by event conditionals and by 
any day of the week.  They count towards the 128 event limit in event files


--------------------------------------------------------------------------
Events scheduled for Today or Tomorrow occur only once at the time 
specified.  The CP290 deletes the events after they have been executed.
These types of events are always in normal mode


--------------------------------------------------------------------------
Specifying Event Days in the Event Dialog

To specify on which day(s) the event will occur:

1) Use add/change event to start the event dialog box
2) Select the days of the week as required
    - or -
2) Use the shortcut buttons for everyday, weekdays, or weekends
    - or -
2) Use the Today/Tomorrow buttons.  These types of events are forced into 
normal mode, and cannot be Now events


--------------------------------------------------------------------------
Event Conditionals

When an event contains conditionals, X10MSW will determine if the event 
should occur.  If it should, it is downloaded as normal to the CP290.  If not, 
it is downloaded to occur on no days (the days you specified are saved 
elsewhere).

Events which are qualified to not occur are displayed in grey text in event 
windows (or prefixed with an exclamation mark for displays that cannot 
display grey text such as CGAs).

The following event conditionals are supported:

1) Month of the year
2) Frozen events which do not occur until you "thaw" them
3) Vacation
4) up to 8 user-defined conditions which allow you to build up your own 
conditions.This allows you to specify, for example, which events you want to 
happen only when you have guests staying with you by defining a 
conditional called "guests".

See Also:
	How Events Are Displayed
	Specifying Event Conditionals
	Setting/resetting Event Conditionals
	Defining user-defined Event Conditional


--------------------------------------------------------------------------
Specifying Event Conditionals

You can specify conditions for a specific event via add/change event, or you 
can add or strip a conditional for all events in an event window.

To specify conditionals for a specific event:

1) Use add/change event to start the event dialog box
2) Check the box(es) for the conditionals you wish to apply:
	Frozen events never occur until they are un-frozen (thawed?)
	Vacation
	User-defined conditionals
	Months of the year - you can use the shortcut buttons
	  Shifted shortcut buttons are "additive".

To add or strip conditionals for all events in a window:

1) Select the event window
2) Choose the  Global Cond Set or Global Cond Strip item in the Edit 
menu

The user-defined conditionals are listed as "User1 - User8"; the drop-down 
menu does not have the conditional names.
The numbers 1-8 correspond to the numbers displayed in the dialog box 
used to define/set/reset conditionals (See Defining Event Conditionals).

Note that you cannot globally set or strip conditions when in immediate 
mode.(See Working with Current Events).

3) Choose the conditional you which to add/strip.  Note that you can choose 
a conditional which has no name defined.



--------------------------------------------------------------------------
Setting/resetting Event Conditionals

You can set or reset conditions which will affect which events are to be 
downloaded as active by X10MSW.  The conditions which you can set/reset 
and hence affect any events which are subject to these conditions (see 
Event Conditionals) are:
	Vacation
	1-8 user-defined conditions


To set or reset an event conditional:

1) Select any event window
2) Choose the Set Conditionals item in the Options menu

To set a condition, check its checkbox; to reset uncheck it.

The conditional is set/reset for all event windows.  Its state is stored in the 
x10.ini file.


--------------------------------------------------------------------------
Defining user-defined Event Conditionals

To define or change a user-defined Conditional:

1) Select any event window
2) Choose the Set Conditionals item in the Options menu

Each conditional has an edit box for its name, and a checkbox to make the 
condition "true" or "false".  To delete a conditional, just clear out its name.

If you delete a conditional and some event in the active event window is 
dependent on the conditional you will be notified.  You may want to use the 
Global Condition Strip (see Specifying Event Conditionals) to remove any 
dependencies.  Note that other event files may still have this dependency so 
you should think carefully about deleting user-defined conditionals..

The conditionals are stored in the x10.ini file


--------------------------------------------------------------------------
Opening an Event file

To open an Event file:

1) Use the File menu in any window
2) Select Open to open a file into a new event window
    - or -
2) Select OpenAnother to open a file into the currently active event window.  
If you have made changes to the event file, you will be asked to confirm 
abandoning the changes.
3) Use the dialog box to select a file to open

Note that if you change directories, you can tell X10MSW to remember the 
directory for next time it is started by using the checkbox in the dialog box.

You will get an error message if the event file is corrupt or not readable.

If the Open is successful, a new Event window will be displayed with the 
name of the file in the title bar and the events displayed in a listbox.  If 
theOpenAnother is successful, the Event window title bar will be changed 
to reflect the new open file, and the listbox will contain the events from that 
file


--------------------------------------------------------------------------
Adding an Event

To add a new Event:

1) Use the Edit menu in any event window
2) Use the Add item

You will get an event dialog box to specify the event.
After exiting the event dialog box, the event you added will be selected in the 
listbox.

When in the event dialog box, you can use the Add button to add an event 
and keep the dialog box going for another new event.  The command will 
toggle between on and off.

If you add a current event and the current events window is in immediate 
mode (See Working with Current Events), the change will be made 
immediately


--------------------------------------------------------------------------
Deleting an Event

To delete an event:

1) Select an event in the listbox
2) Use the Del key or the Edit menu

Don't forget that an event which affects multiple units will be displayed as 
multiple lines in the listbox (these have a + after the housecode/unit).  When 
you delete any of the lines that make up an event, that entire event is 
deleted.If you want to remove a particular unit from that event, change the 
event.

If you delete an event in the current event window and it is in immediate 
mode (See Working with Current Events), the change will be made 
immediately


--------------------------------------------------------------------------
Changing an Event

To change an event:

1) Double-click the event in the listbox you wish to change
    - or -
1) Use the Change item in the Edit menu

You will get an event dialog box to change the event. If possible, the event 
you changed will be selected upon return from the event dialog box.

When in the event dialog box, you can use the Change button to change an 
event and keep the dialog box going for another new event.  The command 
will toggle between on and off,  and the Change button will change to Add.

If you change a current event and the current events window is in immediate 
mode (See Working with Current Events), the change will be made 
immediately

--------------------------------------------------------------------------
Using the Clipboard

The standard clipboard functions (Cut, Copy, Paste) can be used in any 
event window.  The functions have standard accelerator keys.  Events are 
put into the clipboard in a private format and so cannot be edited by other 
Windows applications.

--------------------------------------------------------------------------
Appending from Another Event file

To append from another Event file:

1) Use the File menu in any event window
2) Select the Append item
3) Select the event file you wish appended

Note that you cannot append to the current events window in immediate 
mode (See Working with Current Events).

Don't forget about the limit of 128 events (including now events) per event 
file and that the CP290 cannot hold more than 128 events


--------------------------------------------------------------------------
Saving an Event file

To save an event file:

1) Use the File menu in any event window
2) Select either Save to save the events to the same file as is displayed in 
the event window title bar
    - or -
3) Select Save As to save the events into a file with a name you specify.

Note that the current event window only allows the Save As operation.
If you change directories as part of specifying the file name, you can tell 
X10MSW to remember the directory for next time it is started by using the 
checkbox in the file Save dialog.

If, when using Save As, you specify a file name that already exists, you are 
asked to confirm you want to overwrite the file


--------------------------------------------------------------------------
Creating a New Event File

To create a new event file:

Use the New item of any window's File menu.

The new event window will be given a title of Untitled.  Both the Save and 
Save As menu items act as Save As when you go to save the events.


--------------------------------------------------------------------------
Downloading Events

To download a set of events to the CP290:

1) Use the File menu in any event window
2) Use the Download item - X10MSW will recalculate any time(s) like 
sunrise, sunset, etc.
  - or  for the current event window you may -
3) Use the Download - no sun recalc. to download without recalculating 
any time(s) like sunrise, sunset, etc.

A dialog box is displayed during the download allowing you to see the 
progress of the download and to stop the download.  The keyboard/mouse 
is disabled when the mouse is within in the X10MSW window during a 
download.

Upon completion of a download from any event file window (not the current 
events window), the current events window is updated to reflect the events 
downloaded


--------------------------------------------------------------------------
Uploading Events

To upload a set of events from the CP290:

1) Select the current events window
2) Use the File menu
3) Select the Upload item
  - or -
4) Select the Upload - no conditionals item to upload events without any of 
the X10MSW-unique conditional information like months, frozen, vacation, 
etc.  This is useful when you are uploading for the first time after using 
some other X10 software.  The events uploaded are forced to have all 
month conditionals on and all user-defined conditionals off.

A dialog box is displayed during uploading and shows you how the upload 
is progressing.  The keyboard/mouse is disabled when the mouse is within 
the X10MSW window during the upload.


--------------------------------------------------------------------------
Controlling how Events are Sorted

Events can be displayed with the housecode/unit first, or with the time first.

To change how events are sorted:

1) Use the Options menu in any event window

The sort option takes effect in that event window only


--------------------------------------------------------------------------
Setting Latitude/Longitude and Timezone

In order to calculate the time of day for sunrise and sunset, X10MSW must 
know your latitude and longitude.  These are available from almanacs, 
maps(?), etc.

X10MSW also calculates whether daylight savings is in effect via the TZ 
environment variable.  This has the format  TZ=zzz[+/-]d[d][lll] where zzz is 
a three-character string representing the name of the current time zone,  [+/-
]d[d] is a required field containing an optionally signed number with 1 or 
more digits specifying the local time zone's difference from GMT in hours, 
and [lll] is an optional three-character string which, if present, indicates
that  standard US daylight savings applies.  TZ defaults to EST5EDT.

To specify your Latitude and Longitude:

1) Use the Options menu in any event window
2) Select the Specify Lat/Long item

Use the edit boxes to specify the values in degrees (only minutes, no 
seconds).
Use the ReCalc button to recalculate and show the various times

3) Use the OK button to actually change the values.

The values for Latitude and Longitude are saved in the x10.ini
file.  X10MSW comes with a file (latlong.dat) which contains the latiitude 
and longitude of major cities around the world.  You can use your favorite 
editor or Windows Notepad to search the file.

To specify that daylight savings does not apply:

Before starting Windows, set a TZ environment variable (See your DOS 
manual) which does not have the [lll] part described above, e.g. EST5


--------------------------------------------------------------------------
Working with Current Events

The current events window is meant to always reflect the current contents of 
the CP290's RAM.  It starts out minimized and uploads the contents of the 
CP290 when it is first restored.  The current events window is pretty much 
like other event file windows, with the following differences:

It is only in the current events window that you can upload events.

The current events window can send any changes/additions you make 
immediately or you can make all the changes at once (called download).  To 
have changes be done immediately, select the Immediate Mode item in the 
Options menu of the current events window.

When you download another event file, the current events window is 
updated to reflect the contents of the CP290.

You cannot close the current events window (you can minimize it).

Direct commands (now) are not stored in the CP290 since they are done 
during download and then do not need to be remembered, so the current 
events window will never have direct command (now) events


--------------------------------------------------------------------------
Closing an event window

To close an event window:

1) Use the File menu of any event window except current events
2) Choose the Close item

If you have made any changes to an event file and have not saved them to a 
file or have made changes to the current events window and not 
downloaded them, you will be asked to confirm abandoning the changes.  If 
you want to save the changes, answer No and save the events (for an event 
file window) or download the events (for the current events window)


--------------------------------------------------------------------------
Printing an event file

To print an event file or the current events:

1) Use the File menu of any event window including current events
2) Choose the Print item

The printed output includes:

	The name of the event file and current date/time
	Any user-defined conditionals, and the "vacation" state
	All events, double spaced.  See How events are displayed.  Inactive 
events are prefixed with an exclamation point; these would be displayed in 
grey text on a display that supports grey text output


--------------------------------------------------------------------------
Immediate Mode

Any changes made to events in the current event window will be sent to the 
CP290 immediately.  If you have only a few changes to make, this will be 
faster than having to download the entire set of current events


--------------------------------------------------------------------------
Delayed Mode

Any changes made to events in the current event window will be made 
inside X10MSW only.  You must download the current events to the CP290 
in order for the changes to take effect.


--------------------------------------------------------------------------
Unit

Each X10 (or compatible) module, wall switch, etc. is a separate unit.  Each
unit has a housecode and unit number which you set.  Generally, each unit is
a different lamp, appliance, etc, although you can assign the same housecode
and unit number to multiple modules, wall switch, etc. and they all get lumped
together under one unit.


--------------------------------------------------------------------------
Housecode

A letter from A to P.  Generally all your units will have the same housecode, 
although if you have more than 16 units you will need to use more than one 
housecode.  Housecodes prevent confusion should your neighbor be using X10 
units and command are crossing over between houses


--------------------------------------------------------------------------
Lamp

A type of unit (wall module or wall switch) which can be used to control 
incandescent lamps only.  These units are capable of dimming the lamp and so 
should not be used with appliances


--------------------------------------------------------------------------
Appliance

A type of unit (wall module) which can be used to control appliances, lamps,
etc.  These units are not capable of dimming.  They contain a latched relay
which during a power failure will stay in their previous "state" (on or off).


--------------------------------------------------------------------------
Unit Number

A number from 1 to 16 which is set on each unit.  Commands to control a unit
(turn it on, off, etc) always contain a unit number which specifies which
unit to control.


--------------------------------------------------------------------------
Description

A text string which should describe what or where a unit is, e.g. Livingroom
Table.   It should not contain words like lamp, appliance, etc. since the
unit's icon will tell you that.  It should not be too long or the icon will
take up too much room in the main window.  This can never be longer than 64
characters


--------------------------------------------------------------------------
Type

Each unit has a type.  X10MSW has a bunch of pre-defined types such as lamp, 
appliance, fan, radio.  You can also define your own types and icons to go
along with them.  You can specify new icons for the pre-defined types too,
although you must specify both an "on"  and "off" icon.  Only lamp type
units can be dimmed


--------------------------------------------------------------------------
Base Housecode

The CP290 has a base housecode which is used when you depress the keys on top


--------------------------------------------------------------------------
Dim

A lamp unit can be dimmed to one of 16 (0-15) levels, with 0 being the
brightest and 15 the dimmest.  X10MSW uses hexadecimal notation
(10-15 is a-f) so that accelerators can be used to specify a dim level.


--------------------------------------------------------------------------
Up

This undocumented CP290 command causes an "All Lights Off" X10 command 
followed by several bright commands to the selected unit.  The "All Lights Off" 
command is not standard and is not obeyed by all X10-compatible modules


--------------------------------------------------------------------------
Fade

This command will turn any unit off.  Lamp units are dimmed to fully off,
appliance modules are switched off.  This is not documented in the CP290
documentation but seems to work very reliably


--------------------------------------------------------------------------
Bright

This command will cause a lamp unit to increase in brightness.  If it is
currently off it is turned fully on.  This is supported only when using
the PLIX interface.


--------------------------------------------------------------------------
x10.ini

This file contains all the unit information in "Windows" format.  It must be in your 
windows directory. You can edit it manually, the format should be pretty easy to 
figure out


--------------------------------------------------------------------------
Selected

When a unit is selected, its housecode/unit number and description are highlighted.  
The color used for the background follows the active title bar background


--------------------------------------------------------------------------
Demo Mode

When X10MSW runs in demo mode, no com port is needed, and no CP290 is 
needed.  Almost all actions are simulated; exceptions are:

- you cannot download an events file (you can save to a file)
- upload causes the file current.x10 to be opened and read
- changes to base housecode are not remembere


--------------------------------------------------------------------------
Event

An event tells the CP290 to control some unit at some time on some day(s).  Events 
are stored in the CP290's battery backed-up memory and executed by the CP290 at 
their appointed time on their appointed day(s).  Each event can cause one 
command, such as on, off, dim, etc.  Each event can control up to 16 units, but they 
must all have the same housecode


--------------------------------------------------------------------------
PLIX Interface

X10MSW supports a PLIX evaluation board from Micromint Inc.  which uses a 
standard parallel printer port (LPT1-3) to interface to a TW523 bi-directional 
powerline interface from X10 USA.  This allows X10MSW to monitor all X10 
commands and to issue "bright" commands (which the CP290 does not support).
The PLIX interface is used for on, off, dim, bright, all lights on, and all units off 
commands either direct or via now events.

The PLIX evaluation board and TW523 can be ordered from:
     Micromint Inc
     4 Park Street
     Vernon, CT  06066
     (203) 872-2204

For best operation, use the PLIX evaluation board with a battery or an AC adapter 
which connects via the battery leads rather than via the J5 connection.
