home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: OtherApp / OtherApp.zip / cm17ce.zip / fcinst.EXE / cm17ce.inf (.txt) < prev    next >
OS/2 Help File  |  2000-01-18  |  44KB  |  1,343 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Introduction ΓòÉΓòÉΓòÉ
  3.  
  4. This document serves two purposes: It explains how to use the Comm Engine and 
  5. it documents the REXX program interface. 
  6.  
  7. For Comm Engine operation and troubleshooting, refer to each of the sections 
  8. below. 
  9.  
  10. Description | Installation | Getting Started | Important Notes | Menu 
  11. Description | Network Operation | Troubleshooting 
  12.  
  13. For REXX program interface and function description, refer to each of the 
  14. sections below. This section is only intended for people who write their own 
  15. REXX client program to control X10 events. 
  16.  
  17. Comm Engine Function Description | X10FLDLL Function Description 
  18.  
  19.  
  20. ΓòÉΓòÉΓòÉ 2. Description ΓòÉΓòÉΓòÉ
  21.  
  22. CM17A Comm Engine ver. 2.0 - Shareware. Designed for the CM17A Firecracker 
  23. interface by X10. This program is part of HOUSE/2, a series of home automation 
  24. & security applications for OS/2. 
  25.  
  26. CM17A Comm Engine is an OS/2 version 3.0 and later program to control the home 
  27. automation interface model CM17A made by X10. This program provides a separate 
  28. REXX-enabled and network aware communications engine for this inexpensive X10 
  29. controller. Can use the Virtual Keychain Remote program as a graphical user 
  30. interface front end. 
  31.  
  32. The CM17A Comm Engine is shareware. Registration is available through BMT Micro 
  33. at www.bmtmicro.com or through the author directly. See the section How To 
  34. Register for details. 
  35.  
  36. The CM17A Communications Engine has the following features: 
  37.  
  38.       Γûá Fully supports the X10 CM17A Firecracker via a serial port. 
  39.  
  40.       Γûá Acts as a REXX-enabled server for the X10 Firecracker device. 
  41.  
  42.       Γûá Uses named pipes to communicate to client programs like the Virtual 
  43.       Keychain Remote or other custom client programs. Sample source for custom 
  44.       programs is included. 
  45.  
  46.       Γûá Can be controlled over a network (LAN or peer-to-peer) allowing X10 
  47.       home control through the CM17A from any workstation. 
  48.  
  49.       Γûá Accepts commands like A1 ON and translates them into X10 code for the 
  50.       CM17A interface. 
  51.  
  52.  Note: In order to fully take advantage of the program's features, you must buy 
  53.  the X10 Firecracker. This can be done for around $6 total to get you started 
  54.  and it can easily be expanded from that point on. See Internet Links for Home 
  55.  Automation for information on home control devices. 
  56.  
  57.  X10 devices are available for most international power configurations. Please 
  58.  see Internet Links for Home Automation for information on X10 representatives 
  59.  around the world. 
  60.  
  61.  In case you were wondering: The icon of this program is a picture of the 
  62.  Doritaenopsis Firecracker "Malibu", a medium-sized warm-growing monopodial 
  63.  epiphyte hybrid orchid. 
  64.  
  65.  
  66. ΓòÉΓòÉΓòÉ 3. Important Notes ΓòÉΓòÉΓòÉ
  67.  
  68. Use the Virtual Keychain Remote as a graphical user interface to control X10 
  69. devices. The CM17A Comm Engine must be started separately and be online to the 
  70. controller before the Virtual Keychain will operate. The CM17A Comm Engine can 
  71. be set to auto-connect on start-up. 
  72.  
  73. To run the Comm Engine alone, the following minimum files are required to be 
  74. present: CM17CE.EXE, CM17CE.INI, CM17CE.HLP, RXASYNC.DLL, X10FKDLL.DLL and 
  75. X10FLDLL.DLL. 
  76.  
  77. You can integrate X10 module control into your OS/2 desktop with object menus. 
  78. The file CMDA1ON.CMD is included just for that purpose. See 
  79.  
  80.  http://home.att.net/~ASchw 
  81.  
  82. for details on how to setup object menus. 
  83.  
  84.  
  85. ΓòÉΓòÉΓòÉ 4. Getting Started ΓòÉΓòÉΓòÉ
  86.  
  87. This section describes the various ways how the CM17A Comm Engine can be 
  88. applied. 
  89.  
  90. Default Operation 
  91.  
  92. Default operation is for running the CM17A interface from a single computer. 
  93. Start-up the Comm Engine and connect to the interface. There are settings for 
  94. auto-connect and minimize on start-up. Use the Virtual Keychain remote or your 
  95. own custom REXX script to control X10 devices. 
  96.  
  97. Network Operation 
  98.  
  99. For operation over a LAN or peer-to-peer network, do the following. Install the 
  100. CM17A at one of the workstations or server. Install the Comm Engine at the same 
  101. computer where you installed the CM17A. Start up the Comm Engine (CM17CE.EXE) 
  102. and connect to the interface. Leave the Comm Engine running so other programs 
  103. can access it. 
  104.  
  105. Install the Virtual Keychain or your own REXX script on any other computer on 
  106. the network. Start up the Virtual Keychain and on the Settings page fill in the 
  107. computer name where the Virtual Keychain can find the Comm Engine. 
  108.  
  109. Note: The computer name of a system can be found in the file IBMLAN\IBMLAN.INI 
  110. which is a text file. Under the [requester] section you will find Computername 
  111. = CLIENT527 for example. Simply type in the name CLIENT527 in the text field to 
  112. indicate on which computer the Comm Engine is running at. 
  113.  
  114. Operation with your own REXX Program 
  115.  
  116. If you want to use your own REXX programs to access the CM17A functions, simply 
  117. start the Comm Engine and use your REXX program to communicate via the named 
  118. pipe to the Comm Engine. Remember that only one program can access the named 
  119. pipe at one time. See the section on REXX Examples for a sample REXX program. 
  120.  
  121.  
  122. ΓòÉΓòÉΓòÉ 4.1. REXX Examples ΓòÉΓòÉΓòÉ
  123.  
  124. The sample program below shows how to use the Comm Engine's REXX features. This 
  125. program is also part of the CM17A Comm Engine distribution and is named 
  126. CLIENT.CMD. Look for other CMD files for more examples. CLIENT.CMD can be used 
  127. to interactively control the CM17A interface and X10 modules. 
  128.  
  129. This example requires the Comm Engine (CM17CE.EXE) to be running. 
  130.  
  131.  
  132. /* CLIENT.CMD - Interactive REXX script for CM17A Comm Engine */
  133.  
  134. /*
  135.   Written by: Lone Peak Automation, LLC
  136.   Date: Jan. 15, 2000
  137.   This program requires the CM17A Comm Engine.
  138.   See http://home.att.net/~ASchw for more information.
  139.  
  140.   Important: The CM17A Comm Engine must be running and be connected
  141.         to the X10 FireCracker before using this script.
  142.  
  143. This is an example to show how to access the CM17A Comm Engine functions.
  144. */
  145.  
  146. /* Load CM17A Comm Engine Functions */
  147. call RxFuncAdd 'X10FLLoadFuncs', 'X10FLDLL', 'X10FLLoadFuncs'
  148. call X10FLLoadFuncs
  149.  
  150. /* Load the REXXUTIL.DLL */
  151. call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
  152. call SysLoadFuncs
  153.  
  154. pipename = '\PIPE\CM17ACE'
  155.  
  156. /* Note: If running over a network, precede the pipe name with the computer name as shown below. */
  157. /* pipename = '\\CLIENT527\PIPE\CM17ACE' */  /* note the _two_ backslashes preceding the computer name */
  158.  
  159. SAY pipename
  160.  
  161. rc = FCLOpenPipe(pipename)
  162. Say 'PipeOpen = ' || rc
  163.  
  164. IF rc = 0 then
  165.  DO
  166.   rc =  FCLPeekPipe('0')
  167.   Say 'PipePeek ' || rc
  168.   IF Right(rc, 1) = 3 then
  169.    SAY 'pipe connected'
  170.   else
  171.    DO
  172.     SAY 'pipe unavailable, close'
  173.     rc = FCLClosePipe('0')
  174.     Say 'PipeClose ' || rc
  175.    END
  176.  END
  177. ELSE
  178.  DO
  179.   SAY 'pipe not available'
  180.   rc = FCLClosePipe('0')
  181.   Say 'PipeClose ' || rc
  182.  END
  183.  
  184.  
  185. keyhit = ''
  186. DO FOREVER
  187.  
  188.   SAY "Press R to read; W to write, P to peek, O to Open, S to cloSe,"
  189.   SAY "Press C to connect; D to disconnect, Zx for COMx port, U to unload,"
  190.   SAY "M for status,"
  191.   SAY "+ to Show, - to Minimize,"
  192.   SAY "ID1 HCDC ON/OFF/DIM/BRI for direct commands,"
  193.   SAY "H for help, X to Exit"
  194.  
  195.   PARSE PULL keyhit
  196.  
  197.   SELECT
  198.   WHEN keyhit = 'x' then
  199.    LEAVE
  200.   WHEN keyhit = 'h' then
  201.    DO
  202.     SAY 'PipePeek status: '
  203.     SAY ' 1: the pipe is disconnected;'
  204.     SAY ' 2: the pipe is listening for a connection;'
  205.     SAY ' 3: the pipe is connected;'
  206.     SAY ' 4: the pipe is closing.'
  207.    END
  208.  
  209.    when POS('z', keyhit) = 1 | POS('Z', keyhit) = 1 then   /* COMx */
  210.     do
  211.      PortNum = Substr(keyhit, 2, 1)
  212.      temp = '}SETPORTCOM' || PortNum
  213.      rc = FCLWritePipe(temp)
  214.      keyhit = ""
  215.     end
  216.  
  217.    when keyhit = "c" | keyhit = "C" then   /* connect */
  218.     do
  219.      temp = '}CONNECT'
  220.      rc = FCLWritePipe(temp)
  221.      keyhit = ""
  222.     end
  223.  
  224.    when keyhit = "d" | keyhit = "D" then   /* disconnect  */
  225.     do
  226.      temp = '}DISCONNECT'
  227.      rc = FCLWritePipe(temp)
  228.      keyhit = ""
  229.     end
  230.  
  231.    when keyhit = "u" | keyhit = "U" then   /* unload  */
  232.     do
  233.      temp = '}CLOSE'
  234.      rc = FCLWritePipe(temp)
  235.      keyhit = ""
  236.     end
  237.  
  238.    when keyhit = "m" | keyhit = "M" then   /* status  */
  239.     do
  240.      temp = '}STATUS'
  241.      rc = FCLWritePipe(temp)
  242.      keyhit = ""
  243.      call SysSleep(2)    /* wait two seconds */
  244.      rc = FCLReadPipe('0')
  245.      SAY 'Status = >' || rc || '<'
  246.     end
  247.  
  248.    when keyhit = "+" then   /* restore  */
  249.     do
  250.      temp = '}SHOW'
  251.      rc = FCLWritePipe(temp)
  252.      keyhit = ""
  253.     end
  254.  
  255.    when keyhit = "-" THEN   /* min  */
  256.     do
  257.      temp = '}MINIMIZE'
  258.      rc = FCLWritePipe(temp)
  259.      keyhit = ""
  260.     end
  261.  
  262.    when POS('ID1', TRANSLATE(keyhit)) = 1 then   /* direct cmd  */
  263.     do
  264.      temp = '}' || keyhit
  265.      rc = FCLWritePipe(temp)
  266.      keyhit = ""
  267.     end
  268.  
  269.    WHEN keyhit = 'p' then
  270.     DO
  271.      rc = FCLPeekPipe('0')
  272.      Say 'PipePeek ' || rc
  273.     END
  274.    WHEN keyhit = 'r' then
  275.     DO
  276.      rc = FCLReadPipe('0')
  277.      SAY 'reading from pipe >' || rc || '<'
  278.     END
  279.    WHEN keyhit = 'w' then
  280.     DO
  281.      rc = FCLWritePipe('}ID1 A1 ON')
  282.      SAY 'writing to pipe ' || rc
  283.     END
  284.  
  285.    WHEN keyhit = 's' then
  286.     DO
  287.      rc = FCLClosePipe('0')
  288.      Say 'PipeClose ' || rc
  289.     END
  290.    WHEN keyhit = 'o' then
  291.     DO
  292.      rc = FCLOpenPipe(pipename)
  293.      Say 'PipeOpen = ' || rc
  294.     END
  295.  
  296.    OTHERWISE
  297.     NOP
  298.   END
  299. END
  300.  
  301. rc = FCLClosePipe('0')
  302. call X10FLDropFuncs
  303.  
  304. EXIT
  305.  
  306.  
  307. ΓòÉΓòÉΓòÉ 5. Menu Description ΓòÉΓòÉΓòÉ
  308.  
  309. Describes all menu items available for this program. 
  310.  
  311.  
  312. ΓòÉΓòÉΓòÉ 5.1. FILE - Show Commands ΓòÉΓòÉΓòÉ
  313.  
  314. This selection toggles the Show Commands on and off. If this menu selection is 
  315. checked, every command received from the Comm Engine by the client program will 
  316. be displayed on the main window. Only the last 20 commands will be kept in the 
  317. window. If this menu selection is unchecked, no commands will be displayed 
  318. except when the Comm Engine is first started it will display that the pipe has 
  319. been created. By default, the Show Commands is turned off (unchecked). Note: 
  320. The CM17A cannot receive X10 commands. 
  321.  
  322.  
  323. ΓòÉΓòÉΓòÉ 5.2. FILE - Configuration ΓòÉΓòÉΓòÉ
  324.  
  325. Brings up the Comm Engine configuration window. 
  326.  
  327. From that window, you can select the Com Port where the CM17A is connected to. 
  328. If the Auto Connect check box is checked, the Comm Engine will automatically 
  329. connect to the CM17A whenever it is started. By default, Auto Connect is off. 
  330. You can use the command line option to override this setting. 
  331.  
  332. If the Minimize on Open check box is checked, the Comm Engine will be minimized 
  333. on start-up. You can go to the windows list (press CTRL-ESC) to show a 
  334. minimized Comm Engine. By default, Minimize on Open is unchecked (disabled). 
  335.  
  336. Data Logging can be enabled by checking the Auto Event Log box. Log File Size 
  337. sets the maximum log file (CM17CE.LOG) size in kiloBytes. If the file size 
  338. exceeds this limit, the existing log is copied to the file CM17CE.000 and a new 
  339. log is started. Any existing CM17CE.000 file will be overwritten. 
  340.  
  341. The Save button saves all the settings in the CM17CE.INI file and closes the 
  342. window. 
  343.  
  344. Cancel will abort any changes and close the window. Closing the configuration 
  345. window from the system menu is equivalent to canceling changes. 
  346.  
  347.  
  348. ΓòÉΓòÉΓòÉ 5.3. FILE - Exit ΓòÉΓòÉΓòÉ
  349.  
  350. Exits the Comm Engine.  If it was online to the CM17A interface, the connection 
  351. is terminated and the pipe to the client program is flushed and closed. 
  352.  
  353.  
  354. ΓòÉΓòÉΓòÉ 5.4. INTERFACE - Connect ΓòÉΓòÉΓòÉ
  355.  
  356. Opens selected serial port to communicate to the CM17A interface. A check mark 
  357. on this menu item will indicate connection status. 
  358.  
  359. See the section on Comm Engine Function Description for information on how to 
  360. control the CM17A interface using your own program. 
  361.  
  362. Note: It is not possible to share the serial port with another device through 
  363. the CM17A pass-through connector when the Comm Engine is in a connected state. 
  364.  
  365.  
  366. ΓòÉΓòÉΓòÉ 5.5. INTERFACE - Disconnect ΓòÉΓòÉΓòÉ
  367.  
  368. Closes selected serial port to disconnect from the CM17A interface. A check 
  369. mark on this menu item will indicate connection status. 
  370.  
  371. See the section on Comm Engine Function Description for information on how to 
  372. control the CM17A interface using your own program. 
  373.  
  374.  
  375. ΓòÉΓòÉΓòÉ 5.6. HELP - Help Contents ΓòÉΓòÉΓòÉ
  376.  
  377. Displays the help contents (but uses the OS/2 index feature). Note that help is 
  378. organized in sections and Help Contents brings up the section headings in 
  379. alphabetical order. This is a more logical way to organize help even if it goes 
  380. against common OS/2 convention. 
  381.  
  382.  
  383. ΓòÉΓòÉΓòÉ 5.7. HELP - Product Information ΓòÉΓòÉΓòÉ
  384.  
  385. Product information. 
  386.  
  387.  
  388. ΓòÉΓòÉΓòÉ 6. Comm Engine Function Description ΓòÉΓòÉΓòÉ
  389.  
  390. This section describes all functions available in CM17CE.EXE and how to use 
  391. them. It is only intended for people who want to write their own client program 
  392. to interface to the Comm Engine. 
  393.  
  394. The Comm Engine acts as a server between the CM17A and any other client 
  395. program. It handles CM17A house, device and function code translation by 
  396. accepting commands like A1 ON and translating them to the required hex code for 
  397. the CM17A to understand. 
  398.  
  399. The Comm Engine uses a named pipe as interface to client programs. Before the 
  400. Comm Engine functions can be used within your own REXX program, you must load 
  401. X10FLDLL.DLL and setup the pipe. See the section on X10FLDLL Function 
  402. Description for information on that subject. 
  403.  
  404. The command structure for the Comm Engine is as follows: 
  405.  
  406. Note: Curly brackets are used to separate out the various error flags, commands 
  407. and data. This helps in parsing the data and also indicates which way the 
  408. commands are flowing. Opening brackets indicate that the commands flow from the 
  409. Comm Engine to the client and closing brackets indicates the flow from the 
  410. client to the Comm Engine. 
  411.  
  412. Sending command to the Comm Engine: 
  413.  
  414.    }command options
  415.  
  416. The closing curly bracket indicates that the following command is sent from the 
  417. client to the Comm Engine. The command instructs the Comm Engine what operation 
  418. is to be performed on the Comm Engine itself or on the CM17A. Sample commands 
  419. are ID1, CONNECT, MINIMIZE etc. 
  420.  
  421. The options contain data to set the CM17A or the Comm Engine. Sample options 
  422. are the direct commands like A1 ON to control modules, for example. 
  423.  
  424. Receiving command from the Comm Engine: 
  425.  
  426.    {XX }command {data
  427.  
  428. Commands sent out by the Comm Engine are replies to a command received by the 
  429. Comm Engine. The original command is returned as a confirmation of receipt. All 
  430. commands placed on the pipe will be buffered and processed on a first in, first 
  431. out basis. 
  432.  
  433. The XX indicates any possible errors the previous command encountered. For 
  434. example, a zero indicates no error, a one indicates an unsupported command. The 
  435. error field is always padded to two digits and the next closing curly bracket 
  436. is always at position five. 
  437.  
  438. The command following the closing curly bracket is the original command that 
  439. prompted this reply. 
  440.  
  441. For more details on the command structure and samples, see each individual 
  442. command as listed below. 
  443.  
  444.  
  445.    ID1 - Direct command (instant on/off)
  446.  
  447.    Comm Engine STATUS
  448.  
  449.    Comm Engine SETPORTCOMx
  450.  
  451.    Comm Engine CONNECT
  452.  
  453.    Comm Engine DISCONNECT
  454.  
  455.    Comm Engine CLOSE
  456.  
  457.    Comm Engine SHOW
  458.  
  459.    Comm Engine MINIMIZE
  460.  
  461.  
  462. ΓòÉΓòÉΓòÉ 6.1. ID1 - Direct command (instant on/off) ΓòÉΓòÉΓòÉ
  463.  
  464. This function sends out X10 commands to the CM17A interface to control modules. 
  465. See included sample REXX scripts for information on how to use the direct 
  466. commands. The command format is as follows: 
  467.  
  468.    }ID1 hcdc command
  469.  
  470. The option hcdc command is of the following format: hcdc is any valid X10 
  471. address like A1 or B16. command format is listed below. Each of the two 
  472. variables are separated by a space from each other. 
  473.  
  474. Valid Commands: 
  475.  
  476.   ON       Turns module on.
  477.   OFF      Turns module off.
  478.   DIM      Dims module by 5% (not adjustable).
  479.   BRI      Brightens module by 5% (not adjustable).
  480.  
  481. The Comm Engine will return the following: 
  482.  
  483.    {XX }ID1 option
  484.  
  485. Where:
  486.  
  487.   XX = 0 if there was no error.
  488.   XX = 1 unsupported or illegal command.
  489.   XX = 5 command can't be executed because engine is offline.
  490.   XX = 8 invalid data (house, device or function code).
  491.  
  492.   option = same string as sent with the ID1 command.
  493.  
  494. Example: Turn on appliance module A1. 
  495.  
  496. Command:
  497.     rc = FCLWritePipe( '}ID1 A1 ON' )
  498.  
  499. Reply:
  500.     {0  }ID1 A1 ON
  501.  
  502.  
  503. ΓòÉΓòÉΓòÉ 6.2. Comm Engine STATUS ΓòÉΓòÉΓòÉ
  504.  
  505. This function requests the Comm Engine online status and serial port setting. 
  506. The command format is as follows: 
  507.  
  508.    }STATUS
  509.  
  510. No data needs to be supplied with the command. 
  511.  
  512. The Comm Engine will return the following data: 
  513.  
  514.    {XX }status portname
  515.  
  516. Where:
  517.  
  518.   XX = 0 if there was no error.
  519.   XX = 1 unsupported or illegal command.
  520.  
  521.   status = ONLINE if online; OFFLINE if offline.
  522.  
  523.   portname = COMx where x = 1 through 8
  524.  
  525. Example: Get status of Comm Engine. 
  526.  
  527. Command:
  528.     rc = FCLWritePipe( '}STATUS' )
  529.  
  530. Reply:
  531.     {0  }ONLINE COM2
  532.  
  533.  
  534. ΓòÉΓòÉΓòÉ 6.3. Comm Engine SETPORTCOMx ΓòÉΓòÉΓòÉ
  535.  
  536. This function instructs the Comm Engine to change serial port. The Comm Engine 
  537. must be offline for the change to be successful. The command format is as 
  538. follows: 
  539.  
  540.    }SETPORTCOMx
  541.  
  542. where x is the integer 1 through 8. 
  543.  
  544. The Comm Engine will return the following data: 
  545.  
  546.    {XX }command
  547.  
  548. Where:
  549.  
  550.   XX = 0 if there was no error.
  551.   XX = 1 unsupported or illegal command.
  552.   XX = 6 Comm Engine online, cannot change serial port.
  553.   XX = 7 invalid serial port.
  554.  
  555.   command = SETPORTCOMx (original command as sent out).
  556.  
  557. Example: Set serial port of Comm Engine to COM5. 
  558.  
  559. Command:
  560.     rc = FCLWritePipe( '}SETPORTCOM5' )
  561.  
  562. Reply:
  563.     {0  }SETPORTCOM5
  564.  
  565.  
  566. ΓòÉΓòÉΓòÉ 6.4. Comm Engine CONNECT ΓòÉΓòÉΓòÉ
  567.  
  568. This function instructs the Comm Engine to connect to the serial port. The 
  569. command format is as follows: 
  570.  
  571.    }CONNECT
  572.  
  573. No data needs to be supplied with the command. 
  574.  
  575. The Comm Engine will return the following data: 
  576.  
  577.    {XX }command
  578.  
  579. Where:
  580.  
  581.   XX = 0 if there was no error.
  582.   XX = 1 unsupported or illegal command.
  583.   XX = 2 connect error. RC will be returned in command.
  584.  
  585.   command = CONNECT (original command as sent out)
  586.        or RC if there was an error.
  587.  
  588.   Of special interest is RC = 110 if the serial port is
  589.   used by another application.
  590.  
  591. Example: Connect Comm Engine to CM17A. 
  592.  
  593. Command:
  594.     rc = FCLWritePipe( '}CONNECT' )
  595.  
  596. Reply:
  597.     {0  }CONNECT
  598.  
  599.  
  600. ΓòÉΓòÉΓòÉ 6.5. Comm Engine DISCONNECT ΓòÉΓòÉΓòÉ
  601.  
  602. This function instructs the Comm Engine to disconnect from the serial port. The 
  603. command format is as follows: 
  604.  
  605.    }DISCONNECT
  606.  
  607. No data needs to be supplied with the command. 
  608.  
  609. The Comm Engine will return the following data: 
  610.  
  611.    {XX }command
  612.  
  613. Where:
  614.  
  615.   XX = 0 if there was no error.
  616.   XX = 1 unsupported or illegal command.
  617.   XX = 3 disconnect error. RC will be returned in command.
  618.  
  619.   command = DISCONNECT (original command as sent out)
  620.               or RC if there was an error.
  621.  
  622. Example: Disconnect Comm Engine from CM17A. 
  623.  
  624. mand:
  625.     rc = FCLWritePipe( '}DISCONNECT' )
  626.  
  627. Reply:
  628.     {0  }DISCONNECT
  629.  
  630.  
  631. ΓòÉΓòÉΓòÉ 6.6. Comm Engine CLOSE ΓòÉΓòÉΓòÉ
  632.  
  633. This function terminates and closes the Comm Engine. Connection to the CM17A 
  634. will be closed automatically and the pipe is flushed and closed as well. The 
  635. command format is as follows: 
  636.  
  637.    }CLOSE
  638.  
  639. No data needs to be supplied with the command. 
  640.  
  641. The Comm Engine will not return any data. 
  642.  
  643. Example: Terminate Comm Engine. 
  644.  
  645. Command:
  646.     rc = FCLWritePipe( '}CLOSE' )
  647.  
  648.  
  649. ΓòÉΓòÉΓòÉ 6.7. Comm Engine SHOW ΓòÉΓòÉΓòÉ
  650.  
  651. This function restores the Comm Engine from a minimized state. The command 
  652. format is as follows: 
  653.  
  654.    }SHOW
  655.  
  656. No data needs to be supplied with the command. 
  657.  
  658. The Comm Engine will return the following data: 
  659.  
  660.    {XX }command
  661.  
  662. Where:
  663.  
  664.   XX = 0 if there was no error.
  665.   XX = 1 unsupported or illegal command.
  666.  
  667.   command = SHOW
  668.  
  669.  
  670. ΓòÉΓòÉΓòÉ 6.8. Comm Engine MINIMIZE ΓòÉΓòÉΓòÉ
  671.  
  672. This function minimizes the Comm Engine. The command format is as follows: 
  673.  
  674.    }MINIMIZE
  675.  
  676. No data needs to be supplied with the command. 
  677.  
  678. The Comm Engine will return the following data: 
  679.  
  680.    {XX }command
  681.  
  682. Where:
  683.  
  684.   XX = 0 if there was no error.
  685.   XX = 1 unsupported or illegal command.
  686.  
  687.   command = MINIMIZE
  688.  
  689.  
  690. ΓòÉΓòÉΓòÉ 7. X10FLDLL Function Description ΓòÉΓòÉΓòÉ
  691.  
  692. This section describes all functions available in X10FLDLL.DLL and how to use 
  693. them. 
  694.  
  695. Note: This DLL is used to setup a named pipe to communicate with the Comm 
  696. Engine. The functions listed in this section need to be used only if you want 
  697. to write your own REXX client program to control the Comm Engine. See the 
  698. section on Comm Engine Function Description for information on how to control 
  699. the CM17A interface once the pipe is setup. 
  700.  
  701. Description of pipe operation. 
  702.  
  703. The Comm Engine uses a named pipe for inter-process communications. This pipe 
  704. allows two programs to exchange data between each other. These two programs may 
  705. be on the same computer or they may be on different computers connected through 
  706. a LAN or peer-to-peer network. 
  707.  
  708. The Comm Engine opens a pipe, \PIPE\CM17ACE for the control of the CM17A 
  709. interface. 
  710.  
  711. To establish connection, the Comm Engine will first create a pipe with the 
  712. fixed name \PIPE\CM17ACE and place it into a listening mode. The client program 
  713. (Virtual Keychain or any other custom program) will then have to open the same 
  714. pipe and peek to check if it connected. From that point on, data can be placed 
  715. on the pipe by either program. All commands are buffered in the pipe and the 
  716. client program must check the pipe for available data and read it to prevent 
  717. buffer overrun and data loss. The buffer size for the pipe is 4096 bytes and if 
  718. full will not accept any additional data. Currently, no error is reported if 
  719. the buffer fills up. 
  720.  
  721. If two programs are communicating through a pipe, they have exclusive access to 
  722. the pipe. A third program cannot connect to the same pipe. To free up the pipe, 
  723. the client program must close the pipe so the Comm Engine can make it available 
  724. to other programs. If a pipe is closed, all data in the buffer is flushed. 
  725.  
  726. For more details on pipe operation and communication to the Comm Engine, see 
  727. the sample REXX programs included with the program archive. 
  728.  
  729. Below is the list of functions to access and control the Comm Engine: 
  730.  
  731.  
  732.    X10FLLoadFuncs
  733.  
  734.    X10FLDropFuncs
  735.  
  736.    FCLReadPipe
  737.  
  738.    FCLWritePipe
  739.  
  740.    FCLPeekPipe
  741.  
  742.    FCLOpenPipe
  743.  
  744.    FCLClosePipe
  745.  
  746.  
  747. ΓòÉΓòÉΓòÉ 7.1. X10FLLoadFuncs ΓòÉΓòÉΓòÉ
  748.  
  749. This function loads X10FLDLL.DLL to be used within your REXX program. A REXX 
  750. program using X10FLDLL must contain the following lines to access other 
  751. functions inside X10FLDLL: 
  752.  
  753.    CALL RXFuncAdd 'X10FLLoadFuncs', 'X10FLDLL', 'X10FLLoadFuncs'
  754.    CALL X10FLLoadFuncs
  755.  
  756. Standard REXX errors are returned for this function, for example: Error 43 - 
  757. Routine not found if X10FLDLL.DLL can't be found. X10FLDLL.DLL must be in the 
  758. current directory or in a directory where the LIBPATH statement points to. 
  759.  
  760.  
  761. ΓòÉΓòÉΓòÉ 7.2. X10FLDropFuncs ΓòÉΓòÉΓòÉ
  762.  
  763. This function unloads X10FLDLL.DLL from memory. A REXX program using X10FLDLL 
  764. must contain the following line to unload X10FLDLL: 
  765.  
  766.    CALL X10FLDropFuncs
  767.  
  768.  
  769. ΓòÉΓòÉΓòÉ 7.3. FCLReadPipe ΓòÉΓòÉΓòÉ
  770.  
  771. This function reads the contents of the pipe, one entry at a time. The pipe 
  772. must be open before it can be read. FCLPipeRead will first do a DOSPeekNPipe 
  773. call and then read the pipe if the character count is not zero. FCLPeekPipe 
  774. should be used to check if any data is available before a FCLReadPipe command. 
  775. See FCLOpenPipe and FCLPeekPipe for details. 
  776.  
  777. The command is as follows: 
  778.  
  779.    rc = FCLReadPipe( '0' )
  780.  
  781. The return value rc is made up of the following information: 
  782.  
  783.   piperr charcount replypacket
  784.  
  785. Piperr is any possible error the read pipe command may have caused. If the 
  786. character count is zero, the piperr returns the value of DOSPeekNPipe. If the 
  787. character count is not zero, piperr returns whatever the DosRead returns which 
  788. can be the following values: 
  789.  
  790.  
  791.   0    NO_ERROR
  792.   5    ERROR_ACCESS_DENIED
  793.   6    ERROR_INVALID_HANDLE
  794.   26    ERROR_NOT_DOS_DISK
  795.   33    ERROR_LOCK_VIOLATION
  796.   109   ERROR_BROKEN_PIPE
  797.   234   ERROR_MORE_DATA
  798.  
  799. charcount is the character count of the data just read from the pipe. 
  800.  
  801. replypacket is the reply the Comm Engine returns in response to one of the 
  802. commands as listed under Comm Engine Function Description. 
  803.  
  804. Example read from pipe. 
  805.  
  806. Command:
  807.     rc = FCLReadPipe( '0' )
  808.  
  809. Contents of rc:
  810.     0 12 {0  }CONNECT
  811.  
  812. There were 12 characters read from the pipe which corresponds
  813. to the data displayed from the opening curly bracket to the T in
  814. CONNECT. (There are two spaces between the curly brackets).
  815.  
  816.  
  817. ΓòÉΓòÉΓòÉ 7.4. FCLWritePipe ΓòÉΓòÉΓòÉ
  818.  
  819. This function writes to the pipe. The pipe must be open before it can be 
  820. written to. 
  821.  
  822. The command is as follows: 
  823.  
  824.    rc = FCLWritePipe( command )
  825.  
  826. Command contains any of the valid Comm Engine commands as listed under Comm 
  827. Engine Function Description. 
  828.  
  829. The return value rc is the same as what DOSWrite returns and can be the 
  830. following values: 
  831.  
  832.  
  833.   0     NO_ERROR
  834.   5     ERROR_ACCESS_DENIED
  835.   6     ERROR_INVALID_HANDLE
  836.   19    ERROR_WRITE_PROTECT
  837.   26    ERROR_NOT_DOS_DISK
  838.   29    ERROR_WRITE_FAULT
  839.   33    ERROR_LOCK_VIOLATION
  840.   109    ERROR_BROKEN_PIPE
  841.  
  842. Example write to pipe. 
  843.  
  844. Command:
  845.     rc = FCLWritePipe( '}ID1 A1 DIM' )
  846.  
  847. Contents of rc:
  848.     0
  849.  
  850. This example instructs the Comm Engine to command the
  851. CM17A to dim module A1 by 5% using the direct command.
  852. Dimming percentage is fixed at 5% for each command. You
  853. must issue repeated dimming commands to reach the desired level.
  854. This is a hardware design limit.
  855.  
  856.  
  857. ΓòÉΓòÉΓòÉ 7.5. FCLPeekPipe ΓòÉΓòÉΓòÉ
  858.  
  859. This function checks if any data is available on the pipe to read. Use this 
  860. function before a FCLReadPipe command. 
  861.  
  862. The command is as follows: 
  863.  
  864.    rc = FCLPeekPipe( '0' )
  865.  
  866. The return value rc is made up of the following information: 
  867.  
  868.   piperr charcount pipestate
  869.  
  870. Piperr is any possible error the DOSPeekNPipe command may have caused. 
  871. DosPeekNPipe returns the following values: 
  872.  
  873.  
  874.   0     NO_ERROR
  875.   230    ERROR_BAD_PIPE
  876.   231    ERROR_PIPE_BUSY
  877.   233    ERROR_PIPE_NOT_CONNECTED
  878.  
  879. charcount is the number of characters available to read from the pipe. 
  880.  
  881. pipestate is the state the pipe is currently at. Possible values are: 
  882.  
  883.  
  884.     1 =  the pipe is disconnected.
  885.     2 =  the pipe is listening for a connection.
  886.     3 =  the pipe is connected.
  887.     4 =  the pipe is closing.
  888.  
  889. Example peek into pipe. 
  890.  
  891. Command:
  892.     rc = FCLPeekPipe( '0' )
  893.  
  894. Contents of rc:
  895.     0 12 3
  896.  
  897. There are 12 characters available to read
  898. from the pipe and the pipe is connected.
  899.  
  900.  
  901. ΓòÉΓòÉΓòÉ 7.6. FCLOpenPipe ΓòÉΓòÉΓòÉ
  902.  
  903. This function opens the pipe to the Comm Engine. 
  904.  
  905. The command is as follows if the Comm Engine and the client are running on the 
  906. same computer: 
  907.  
  908.    pipename = '\PIPE\CM17ACE'
  909.    rc = FCLOpenPipe( pipename )
  910.  
  911. For network operation, the pipe name must include the computer name where the 
  912. Comm Engine is running at. In this example, the computer name is CLIENTCM11 and 
  913. it must be preceded by two back slashes. 
  914.  
  915.    pipename = '\\CLIENTCM11\PIPE\CM17ACE'
  916.    rc = FCLOpenPipe( pipename )
  917.  
  918. This function returns the same values as the API call DosOpen. The values of 
  919. most interest are: 
  920.  
  921.  
  922.     0    NO_ERROR
  923.     2    ERROR_FILE_NOT_FOUND
  924.     3    ERROR_PATH_NOT_FOUND
  925.     4    ERROR_TOO_MANY_OPEN_FILES
  926.     5    ERROR_ACCESS_DENIED
  927.     12    ERROR_INVALID_ACCESS
  928.     231   ERROR_PIPE_BUSY
  929.  
  930. See the example CMD files included for details on how to run a pipe to the Comm 
  931. Engine. 
  932.  
  933.  
  934. ΓòÉΓòÉΓòÉ 7.7. FCLClosePipe ΓòÉΓòÉΓòÉ
  935.  
  936. This function closes the pipe to the Comm Engine. 
  937.  
  938. The command format is as follows: 
  939.  
  940.    rc = FCLClosePipe( '0' )
  941.  
  942. This function returns the same values as the API call DosClose. The values of 
  943. most interest are: 
  944.  
  945.  
  946.   0     NO_ERROR
  947.   2     ERROR_FILE_NOT_FOUND
  948.   5     ERROR_ACCESS_DENIED
  949.   6     ERROR_INVALID_HANDLE
  950.  
  951. See the example CMD files included for details on how to run a pipe to the Comm 
  952. Engine. 
  953.  
  954.  
  955. ΓòÉΓòÉΓòÉ 8. Command Line Options ΓòÉΓòÉΓòÉ
  956.  
  957. The following command line options are recognized by CM17CE.EXE: 
  958.  
  959.   -ComX        Connects to the serial port as specified by X. X ranges from 1 through 8.
  960.   -Min          Minimizes Comm Engine on start-up.
  961.   -i d:\path\inifile.ini   Redirects the Comm Engine ini file to another drive, directory or ini file name.
  962.  
  963. If -ComX is specified, the Comm Engine will over-ride the existing serial port 
  964. setting and open the specified port to establish a connection to the CM17A. 
  965.  
  966. The -i option must be used if the Comm Engine is run from a networked drive 
  967. that is write-protected. You can redirect the ini file to a user directory with 
  968. this option. 
  969.  
  970. To enter the startup options do the following: 
  971.  
  972.       Γûá  For Warp 3.0:  Right-click on the CM17CE icon and select Settings. 
  973.       Under the Program tab in Optional Parameters enter the startup option. 
  974.  
  975.       Γûá  For Warp 4.0:  Right-click on the CM17CE icon and select Properties. 
  976.       Under the Program tab in Optional Parameters enter the startup option. 
  977.  
  978.  
  979. ΓòÉΓòÉΓòÉ 9. Troubleshooting ΓòÉΓòÉΓòÉ
  980.  
  981. CM17A Interface Connection Problems. 
  982.  
  983. If you are having problems getting the CM17A interface to work, then follow 
  984. these steps below. 
  985.  
  986.       Γûá  Make sure the serial port setting in the configuration matches the 
  987.       serial port you use for the interface. 
  988.  
  989.       Γûá  Try the standard COM1 or COM2 ports if you have problems with any 
  990.       other ports like COM3 - COM8. Also, remove any serial cable extensions or 
  991.       adapters and connect the interface directly to the computer. 
  992.  
  993.       Γûá  Try using a different computer or different port to access the CM17A. 
  994.  
  995.       Γûá  Check http://home.att.net/~ASchw for the HOUSE/2 and X10 frequently 
  996.       asked question page for additional information on troubleshooting. 
  997.  
  998.       Γûá  E-mail Lone Peak Automation and we will try to help you out. 
  999.       (Eventually registering this program will give Lone Peak Automation extra 
  1000.       incentive too!). 
  1001.  
  1002.  
  1003. ΓòÉΓòÉΓòÉ 10. Installation ΓòÉΓòÉΓòÉ
  1004.  
  1005. Note:  REXX (classic or Object REXX) must be installed on your system for this 
  1006. program to work. REXXUTIL.DLL is required. 
  1007.  
  1008. CM17A Comm Engine is distributed as a self-installing executable using 
  1009. PillarSoft's SFX Installer. See http://www.pillarsoft.net for more information 
  1010. on that product. 
  1011.  
  1012. When installing this program, simply follow the prompts given. 
  1013.  
  1014. Installing this program on your system does not change any of the INI or 
  1015. CONFIG.SYS files. 
  1016.  
  1017. In rare instances, it may be possible that this program may not find the DLL 
  1018. files and abort on start-up. To fix this, simply add the directory where you 
  1019. installed the Comm Engine to the LIBPATH in your CONFIG.SYS. A reboot is 
  1020. necessary for the changes to take effect. 
  1021.  
  1022. The following files belong to this program: 
  1023.  
  1024.        CM17CE.EXE        The CM17A Communications Engine. 
  1025.  
  1026.        CM17CE.HLP        The CM17A Communications Engine help file. 
  1027.  
  1028.        CM17CE.INI        Configuration file. This file will be created the 
  1029.                          first time CM17CE.EXE is run. 
  1030.  
  1031.        CM17CE.LOG        A log file that contains all the events as sent to the 
  1032.                          CM17A interface. Events are only logged when the 
  1033.                          computer is connected to the interface and logging is 
  1034.                          enabled. This is a text file and you can look at it 
  1035.                          with a text editor. 
  1036.  
  1037.        CM17CE.000        Archived log file. CM17CE.LOG is copied over to this 
  1038.                          file whenever the log file size exceeds the set value. 
  1039.                          The contents of the old CM17CE.000 file will be 
  1040.                          deleted. 
  1041.  
  1042.        VPOBJ.DLL         Dynamic Link Library required by executable. 
  1043.  
  1044.        RXASYNC.DLL       Dynamic Link Library required for serial 
  1045.                          communications to the CM11A interface. This library of 
  1046.                          serial communications routines is included by 
  1047.                          permission of Crucial Applications (Author: Ian Timms, 
  1048.                          e-mail: itimms@ariel.ucs.unimelb.edu.au). The entire 
  1049.                          serial communications package, including the source 
  1050.                          code for RXASYNC, is available at the Lone Peak 
  1051.                          Automation home page or other major OS/2 sites by the 
  1052.                          file name RXASYN20.ZIP. This DLL has been packed with 
  1053.                          LXWARP for smaller size. Required by CM11CE.EXE only. 
  1054.  
  1055.        X10FCDLL.DLL      Dynamic Link Library required by CM17CE.EXE only. 
  1056.  
  1057.        X10FLDLL.DLL      Dynamic Link Library required by the sample REXX or 
  1058.                          custom client programs only. 
  1059.  
  1060.        CLIENT.CMD        Sample script to access most Comm Engine functions. 
  1061.  
  1062.        MODCTRL.CMD       Sample script to access Comm Engine functions to 
  1063.                          control a module. 
  1064.  
  1065.        TIMEMOD.CMD       Sample script to access Comm Engine functions to 
  1066.                          time-control a module. 
  1067.  
  1068.        UNINSTAL.CMD      Uninstallation program. Removes HOUSE/2 completely 
  1069.                          from your system. 
  1070.  
  1071.        HISTORY.TXT       History of changes to the program. 
  1072.  
  1073.        BMTORDER.TXT      Order form to register CM17A Comm Engine through BMT 
  1074.                          Micro. 
  1075.  
  1076.  To remove this program from your system, close the program and execute 
  1077.  UNINSTAL.CMD from the CM17CE directory. This removes all Comm Engine files and 
  1078.  subdirectory where the program was located in. 
  1079.  
  1080.  
  1081. ΓòÉΓòÉΓòÉ 11. Network Operation ΓòÉΓòÉΓòÉ
  1082.  
  1083. Network operation allows to control X10 devices from any workstation on the 
  1084. network. It is not necessary to map a serial port or drive onto another machine 
  1085. as the Comm Engine is running on the workstation where the CM17A interface is 
  1086. connected to. The CM17A Comm Engine uses a named pipe to communicate with any 
  1087. graphical user interfaces like the Virtual Keychain. The requirements for 
  1088. proper network operation are: The requesters on both machines must be running 
  1089. and the assigned computer name where the Comm Engine is running at, must be 
  1090. known. 
  1091.  
  1092. To run this program over a network, do the following: 
  1093.  
  1094. Connect the CM17A to one of the peer stations or the server. Start-up 
  1095. CM17CE.EXE and configure it for the serial port of the CM17A. You can turn on 
  1096. Minimize on Open in the configuration page of the Comm Engine if you like the 
  1097. Comm Engine to start minimized. There is also a setting to Auto Connect to the 
  1098. CM17A on start-up. Now, install Virtual Keychain Remote or your own REXX script 
  1099. on another workstation. No need to run CM17A Comm Engine on that workstation. 
  1100. In the Settings window of the Virtual Keychain Remote, enter the computer name 
  1101. where the CM17A is connected to. Do not include any back slashes when entering 
  1102. the name. 
  1103.  
  1104. Note: The computer name of a system can be found in the file IBMLAN\IBMLAN.INI 
  1105. which is a text file. Under the [requester] section you will find Computername 
  1106. = CLIENT527 for example. Simply type in the name CLIENT527 in the text field to 
  1107. indicate on which computer the Comm Engine is running at. 
  1108.  
  1109. Only one client can communicate with the Comm Engine at any one time. If you 
  1110. want to use a third workstation to access the Comm Engine, you must disconnect 
  1111. any custom REXX script from the pipe to free up the Comm Engine. The Virtual 
  1112. Keychain Remote is designed to automatically disconnect from the serial port 
  1113. after each command is sent out. 
  1114.  
  1115. The -i start-up option must be used if either CM17CE.EXE or Virtual Keychain 
  1116. Remote is run from a networked drive that is write-protected. You can redirect 
  1117. the ini file to a user directory with this option. 
  1118.  
  1119.  
  1120. ΓòÉΓòÉΓòÉ 12. Shareware Limitation ΓòÉΓòÉΓòÉ
  1121.  
  1122. This shareware program is fully enabled with the exception of the following: 
  1123.  
  1124.       Γûá Registration reminder when exiting. 
  1125.  
  1126.       Γûá After sending 50 interactive commands to the CM17A controller, the Comm 
  1127.       Engine will terminate with a registration reminder. 
  1128.  
  1129.  The registered version has these limitations removed. 
  1130.  
  1131.  
  1132. ΓòÉΓòÉΓòÉ 13. How to Register ΓòÉΓòÉΓòÉ
  1133.  
  1134. All registered users of the CM17A Comm Engine will receive a registration key 
  1135. to fully unlock the program. Registration of the CM17A Comm Engine is for 
  1136. life-time and any new versions of CM17A Comm Engine will not require any 
  1137. re-registration. A registered user may not make registration key information 
  1138. public nor pass it on to third parties. 
  1139.  
  1140. You can register as follows: 
  1141.  
  1142. Register through BMT Micro at www.bmtmicro.com. BMT Micro offers a variety of 
  1143. purchasing methods, see the file BMTORDER.TXT for details. A registration key 
  1144. will be sent to you within usually one day of purchasing the CM17A Comm Engine. 
  1145. The cost is $20.00. 
  1146.  
  1147. Quantity discounts are available. Please e-mail Lone Peak Automation for 
  1148. details. 
  1149.  
  1150. Registration key and instructions on how to enter the key to enable the 
  1151. registered features will be given out at registration time. 
  1152.  
  1153.  
  1154. ΓòÉΓòÉΓòÉ 14. License Agreement ΓòÉΓòÉΓòÉ
  1155.  
  1156. The CM17A Comm Engine is not public domain software, nor is it free software, 
  1157. it is user supported. 
  1158.  
  1159. Non-registered users are granted a limited license to use the CM17A Comm Engine 
  1160. on a trial basis for the purpose of determining whether it is suitable for 
  1161. their needs. Use of the CM17A Comm Engine, except for this limited purpose, 
  1162. requires registration. See How To Register section on ways to register. 
  1163.  
  1164. Use of non-registered copies of the CM17A Comm Engine beyond a 30 day 
  1165. evaluation period by any person, business, corporation, governmental agency or 
  1166. other entity or institution is strictly forbidden. 
  1167.  
  1168. Use of registered copies of the CM17A Comm Engine by any business, corporation, 
  1169. governmental agency or other entity or institution is strictly forbidden 
  1170. without prior licensing arrangements and written consent of Lone Peak 
  1171. Automation, LLC. 
  1172.  
  1173. Registration grants a user the right to use the CM17A Comm Engine only on a 
  1174. single computer unless prior arrangements are made with Lone Peak Automation, 
  1175. LLC. A registered user may use the CM17A Comm Engine on a different computer, 
  1176. but may not use the program on more than one computer at the same time. 
  1177.  
  1178. You may not modify the CM17A Comm Engine in any way, including but not limited 
  1179. to, decompiling, disassembling or otherwise reverse engineering the program. 
  1180.  
  1181. No part of the CM17A Comm Engine documentation may be reproduced, in any form 
  1182. or by any means, without permission in writing form from Lone Peak Automation, 
  1183. LLC. 
  1184.  
  1185. The unregistered version of the CM17A Comm Engine can be recognized by 
  1186. containing the word "Unregistered" in the window title bar of the program. 
  1187.  
  1188. All users are granted a limited license to copy the unregistered version of the 
  1189. CM17A Comm Engine only for the trial use of others subject to the above 
  1190. limitations. The following limitations apply for copying unregistered versions: 
  1191.  
  1192.   The CM17A Comm Engine must be copied in unmodified form,
  1193.   complete with the file containing license and
  1194.   ordering information.
  1195.  
  1196.   The full documentation for the CM17A Comm Engine must be
  1197.   included in the archive.
  1198.  
  1199.   No fee, charge or other compensation may be
  1200.   accepted or requested by any licensee beyond a
  1201.   reasonable price for the media the CM17A Comm Engine is
  1202.   transferred on.
  1203.  
  1204.   Operators of electronic bulletin board systems and
  1205.   internet web/ftp sites may post the unregistered
  1206.   version of the CM17A Comm Engine for downloading by their users
  1207.   as long as the above conditions are met.
  1208.  
  1209.   Distributors of public domain or user supported
  1210.   software may distribute copies of the unregistered
  1211.   version of the CM17A Comm Engine subject to the above conditions.
  1212.  
  1213. DISCLAIMER 
  1214.  
  1215. Lone Peak Automation, LLC accepts no responsibility for damages to property or 
  1216. personal injury that may be caused by the use of the CM17A Comm Engine. The 
  1217. CM17A Comm Engine is provided "AS IS" and you as its user assumes the entire 
  1218. risk when you use it. 
  1219.  
  1220. Because of potential fire hazards, Lone Peak Automation, LLC does NOT recommend 
  1221. using the CM17A Comm Engine for controlling coffee pots, space heaters or 
  1222. similar heat-creating appliances. 
  1223.  
  1224. Lone Peak Automation, LLC is not connected to any companies mentioned nor do 
  1225. they endorse any of the products mentioned. 
  1226.  
  1227. All product names mentioned herein are the trademarks of their respective 
  1228. owners. 
  1229.  
  1230. CREDITS 
  1231.  
  1232. RXASYNC.DLL required for serial communications to the CM17A interface, is a 
  1233. library of serial communications routines and is included by permission of 
  1234. Crucial Applications (Author: Ian Timms, e-mail: 
  1235. itimms@ariel.ucs.unimelb.edu.au). The entire serial communications package, 
  1236. including the source code for RXASYNC, is available at the Lone Peak Automation 
  1237. home page or major OS/2 sites by the file name RXASYN20.ZIP 
  1238.  
  1239. The CM17A Comm Engine is protected using SecureIt. To get more information on 
  1240. this shareware protection program, see http://www.bmtmico.com/catalog/secureit/ 
  1241.  
  1242. The CM17A Comm Engine is a shareware product and can be registered through BMT 
  1243. Micro at www.bmtmicro.com for $20.00. 
  1244.  
  1245. The CM17A Comm Engine is copyright (C) 2000 Lone Peak Automation, LLC 
  1246.  
  1247.  
  1248. ΓòÉΓòÉΓòÉ 15. Contact ΓòÉΓòÉΓòÉ
  1249.  
  1250. The HOUSE/2 series of programs, UPS Monitor and DP Show are written by Lone 
  1251. Peak Automation, LLC of Sandy, Utah, USA. 
  1252.  
  1253. For general inquiry, contact Lone Peak Automation, LLC via e-mail at: 
  1254.  
  1255.   LPASales@worldnet.att.net 
  1256.  
  1257. For support of the HOUSE/2 series of programs, UPS Monitor and DP Show, contact 
  1258. Lone Peak Automation, LLC directly via e-mail at: 
  1259.  
  1260.   LPASupport@worldnet.att.net 
  1261.  
  1262. Visit the Lone Peak Automation, LLC home page, "The Warped Code Cellar" at: 
  1263.  
  1264.   http://home.att.net/~ASchw 
  1265.  
  1266. for other information and applications for OS/2. Monitor this web page 
  1267. regularly for future upgrades of the available programs. 
  1268.  
  1269. Lone Peak Automation programs are also available at the following sites: 
  1270.  
  1271.  
  1272.   http://www.bmtmicro.com 
  1273.   http://hobbes.nmsu.edu 
  1274.   http://www.os2ss.com 
  1275.  
  1276.  
  1277. ΓòÉΓòÉΓòÉ 16. Internet Links for Home Automation ΓòÉΓòÉΓòÉ
  1278.  
  1279. To get more information on home automation, you can visit any of the sites 
  1280. listed here: 
  1281.  
  1282. www.x10.com
  1283. Homepage of X10.
  1284. This is the manufacturer of X10 products.
  1285.  
  1286. www.x10.com/x10euro.htm
  1287. Links to European Representatives of X10.
  1288.  
  1289. www.smarthome.com
  1290. Home Automation System, Inc. Vendor carrying large
  1291. selection of home automation devices. Download
  1292. catalog in PDF format, search for part numbers online.
  1293.  
  1294. www.smarthome.com/foreign.html
  1295. Home Automation Systems, Inc. 220-240VAC (50Hz) Components.
  1296. Mail order company carrying some 220-240VAC (50Hz)
  1297. X10 products for international markets.
  1298.  
  1299. www.hwg-telekom.de
  1300. HWG Telekommunikations Systeme GmbH.
  1301. X10 Representative of Germany, Austria and
  1302. Switzerland. The CM11A is available as
  1303. PowerHaus-II in these countries.
  1304.  
  1305. www.automationplus.com
  1306. Mail order company for home automation devices.
  1307.  
  1308. www.asihome.com
  1309. Mail order company for home automation devices.
  1310.  
  1311. support.tandy.com/support_security/
  1312. Radio Shack Support. Follow the X10 links.
  1313. Contains FAQ for home automation devices.
  1314.  
  1315. www.hometoys.com
  1316. Mailing lists, newsletters, articles and product reviews
  1317. of home automation products and services.
  1318.  
  1319. www.hometeam.com
  1320. Information about products and services for home automation.
  1321.  
  1322. www.homecontrols.com
  1323. Large product catalog for home automation devices.
  1324. Also carries 220-240V models for international markets.
  1325.  
  1326. www.io.com/~lbs/
  1327. Laser Business Systems Ltd. Home Automation dealer in
  1328. the United Kingdom. Lists controllers and modules for many
  1329. other European countries.
  1330.  
  1331. www.homecontrol.co.uk/
  1332. Home Control. X10 home automation representative in the United Kingdom.
  1333.  
  1334. www.eon3.com
  1335. Eon3 Home Automation Pty. Ltd. Home Automation dealer in Australia.
  1336.  
  1337. www.X10BRASIL.com.br/
  1338. X10 Representative in Brasil.
  1339.  
  1340. www.infinet.com/~dhoehnen/ha/list.html
  1341. Comprehensive index of home automation related sites.
  1342.  
  1343.