home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / rxcp290.zip / CP290.RXX < prev    next >
Text File  |  1996-02-15  |  20KB  |  600 lines

  1. /*-----------------------------------------------------------------------------+
  2. |                                                                              |
  3. |  REXX source code listing for DrRexx application:                            |
  4. |    E:\drdialog\examples\CP290.res                                            |
  5. |                                                                              |
  6. |  File last modified on: 02/15/96 at: 03:41pm                                 |
  7. |  Listing produced on:   02/15/96 at: 03:41pm                                 |
  8. |                                                                              |
  9. +-----------------------------------------------------------------------------*/
  10.  
  11. SIGNAL ON SYNTAX
  12. SIGNAL ON HALT
  13. SIGNAL INIT
  14.  
  15. RETURN:
  16.   SIGNAL VALUE DrRexxEvent()
  17.  
  18. L1:
  19.   EXIT -1
  20.  
  21. L2:
  22.   INTERPRET DrRexxInterpret()
  23.   SIGNAL RETURN
  24.  
  25. /*-----------------------------------------------------------------------------+
  26. |                                                                              |
  27. |  Event handlers for dialog: RxCP290                                          |
  28. |                                                                              |
  29. +-----------------------------------------------------------------------------*/
  30.  
  31. /* Event handlers for: RxCP290 (DIALOG) */
  32.  
  33. RxCP290_Exit:
  34.   rc = RxCloseCP290(CP290)
  35.   exit 0
  36.   SIGNAL RETURN
  37.  
  38. RxCP290_Init:
  39.   call RxFuncAdd 'SysLoadFuncs', 'REXXUtil', 'SysLoadFuncs'
  40.   call SysLoadFuncs
  41.   call RxFuncAdd 'RxLoadFuncsCP290', 'RxCP290', 'RxLoadFuncsCP290'
  42.   call RxLoadFuncsCP290
  43.   comport = SysIni('USER','RXCP290','COMPORT')
  44.   if Left(comport,3) <> "COM" then 
  45.   do
  46.      comport = "COM2"
  47.      rc = SysIni('USER','RXCP290','COMPORT', 'COM2')
  48.   end
  49.   CP290 = ''                       
  50.   rc = RxInitCP290(comport, 'CP290')          
  51.   events. = 0
  52.   eventpages. = 0
  53.   filename = ""
  54.   i = 0
  55.   initpage = RxCP290.BigNote.Add(0,"F","InitDialog","Init", , )
  56.   dirpage  = RxCP290.BigNote.Add(initpage,"N","DirControlDialog","Direct",,)
  57.   eventpages.0 = RxCP290.BigNote.Add(dirpage,"N","EventDialog","Event "0,,0)
  58.   SIGNAL RETURN
  59.  
  60. /* Event handlers for: BigNote (NOTEBOOK) */
  61.  
  62. RxCP290_BigNote_Select:
  63.   page = RxCP290.BigNote.Select()
  64.   do i = 0 to 127 
  65.      if eventpages.i = page then leave
  66.   end
  67.   if i < 128 then do
  68.      rc   = EventDialog.Eventno.Text(i)
  69.      if events.i.0 <> 0 then do
  70.         rc = EventDialog.EventMod.Select(events.i.5.1)
  71.         rc = EventDialog.EventLevel.Select(events.i.7)
  72.         rc = EventDialog.EventHr.Select(events.i.3)
  73.         rc = EventDialog.EventMin.Select(events.i.4)
  74.         rc = EventDialog.MonBut.Select(0)
  75.         rc = EventDialog.TueBut.Select(0)
  76.         rc = EventDialog.WedBut.Select(0)
  77.         rc = EventDialog.ThuBut.Select(0)
  78.         rc = EventDialog.FriBut.Select(0)
  79.         rc = EventDialog.SatBut.Select(0)
  80.         rc = EventDialog.SunBut.Select(0)
  81.         do j = 1 to events.i.2.0
  82.            if events.i.2.j = "MON" then 
  83.              rc = EventDialog.MonBut.Select(1)
  84.            if events.i.2.j = "TUE" then 
  85.              rc = EventDialog.TueBut.Select(1)
  86.            if events.i.2.j = "WED" then 
  87.              rc = EventDialog.WedBut.Select(1)
  88.            if events.i.2.j = "THU" then 
  89.              rc = EventDialog.ThuBut.Select(1)
  90.            if events.i.2.j = "FRI" then 
  91.              rc = EventDialog.FriBut.Select(1)
  92.            if events.i.2.j = "SAT" then 
  93.              rc = EventDialog.SatBut.Select(1)
  94.            if events.i.2.j = "SUN" then 
  95.              rc = EventDialog.SunBut.Select(1)
  96.          end
  97.          do j = 1 to 16
  98.             if events.i.6 = D2C(j+64) then leave
  99.          end
  100.          rc = EventDialog.EventHcode.Select(j)
  101.          if events.i.1 = "NORMAL" then
  102.             rc = EventDialog.EventMode.Select(1)
  103.          if events.i.1 = "SECURITY" then
  104.             rc = EventDialog.EventMode.Select(2)
  105.          if events.i.1 = "TODAY" then
  106.             rc = EventDialog.EventMode.Select(3)
  107.          if events.i.1 = "TOMORROW" then
  108.             rc = EventDialog.EventMode.Select(4)
  109.          if events.i.1 = "CLEAR" then
  110.             rc = EventDialog.EventMode.Select(5)
  111.          if events.i.8 = "ON" then
  112.             rc = EventDialog.Eventfunc.Select(1)
  113.          if events.i.8 = "OFF" then
  114.             rc = EventDialog.Eventfunc.Select(2)
  115.          if events.i.8 = "DIM" then
  116.             rc = EventDialog.Eventfunc.Select(3)
  117.      end
  118.      else do
  119.          rc = EventDialog.EventFunc.Select(1)
  120.          rc = EventDialog.EventLevel.Select(0)
  121.          rc = EventDialog.EventHr.Select(0)
  122.          rc = EventDialog.EventMin.Select(0)
  123.          rc = EventDialog.EventMode.Select(1)
  124.          rc = EventDialog.EventMod.Select(1)
  125.          rc = EventDialog.EventHcode.Select(1)
  126.          rc = EventDialog.MonBut.Select(0)
  127.          rc = EventDialog.TueBut.Select(0)
  128.          rc = EventDialog.WedBut.Select(0)
  129.          rc = EventDialog.ThuBut.Select(0)
  130.          rc = EventDialog.FriBut.Select(0)
  131.          rc = EventDialog.SatBut.Select(0)
  132.          rc = EventDialog.SunBut.Select(0)
  133.      end       
  134.   end
  135.         
  136.   SIGNAL RETURN
  137.  
  138. /*-----------------------------------------------------------------------------+
  139. |                                                                              |
  140. |  Menu handlers for dialog: RxCP290                                           |
  141. |                                                                              |
  142. +-----------------------------------------------------------------------------*/
  143.  
  144. /* File */
  145. /*   New */
  146. /*   - Action: */
  147.        events. = 0
  148.        do i = 0 to 127
  149.           if eventpages.i <> 0 then
  150.              rc = RxCP290.BigNote.Delete(eventpages.i)
  151.           eventpages.i = 0
  152.        end
  153.        eventpages.0 = RxCP290.BigNote.Add(0,"L","EventDialog","Event "0,,0)
  154.        rc = RxCP290.Text("X-10 Controller - New")
  155.        SIGNAL RETURN
  156. /*   Open */
  157. /*   - Action: */
  158.        filename = FilePrompt("*.EVT",,,"O")
  159.        events. = 0
  160.        do i = 0 to 127
  161.           if eventpages.i <> 0 then
  162.              rc = RxCP290.BigNote.Delete(eventpages.i)
  163.           eventpages.i = 0
  164.        end
  165.        call linein filename, ,0
  166.        do i = 0 to 127
  167.           events.i.0 = linein(filename)
  168.           if events.i.0 = 1 then
  169.              do
  170.               events.i.1 = linein(filename)
  171.               events.i.2.0 = linein(filename)
  172.               do j = 1 to events.i.2.0
  173.              events.i.2.j = linein(filename)
  174.               end
  175.               events.i.3 = linein(filename)
  176.               events.i.4 = linein(filename)
  177.               events.i.5.0 = linein(filename)
  178.               Do j = 1 to events.i.5.0
  179.              events.i.5.j = linein(filename)
  180.               end
  181.               events.i.6 = linein(filename)
  182.               events.i.7 = linein(filename)
  183.               events.i.8 = linein(filename)
  184.             end
  185.        end
  186.        do i = 0 to 127
  187.            if events.i.0 <> 0 then 
  188.               eventpages.i = RxCP290.BigNote.Add(0,"L","EventDialog","Event "i,,i)
  189.        end
  190.        rc = RxCP290.Text("X-10 Controller - "filename)
  191.        SIGNAL RETURN
  192. /*   ---------- (Disabled) */
  193. /*   Save */
  194. /*   - Action: */
  195.        if filename = "" then
  196.          filename = FilePrompt("*.EVT",,,"S")
  197.        call lineout filename, ,1
  198.        do i=0 to 127
  199.           call lineout filename,  events.i.0
  200.           if events.i.0 = 1 then
  201.              Do
  202.               call lineout filename,  events.i.1
  203.               call lineout filename,  events.i.2.0
  204.               Do j = 1 to events.i.2.0
  205.              call lineout filename,  events.i.2.j
  206.               end
  207.               call lineout filename,  events.i.3
  208.               call lineout filename,  events.i.4
  209.               call lineout filename,  events.i.5.0
  210.               Do j = 1 to events.i.5.0
  211.              call lineout filename,  events.i.5.j
  212.               end
  213.               call lineout filename,  events.i.6
  214.               call lineout filename,  events.i.7
  215.               call lineout filename,  events.i.8
  216.             end
  217.        end
  218.        call lineout filename
  219.        SIGNAL RETURN
  220. /*   Save as */
  221. /*   - Action: */
  222.        filename = FilePrompt("*.EVT",,,"S")
  223.        call lineout filename, ,1
  224.        do i=0 to 127
  225.           call lineout filename,  events.i.0
  226.           if events.i.0 = 1 then
  227.              Do
  228.               call lineout filename,  events.i.1
  229.               call lineout filename,  events.i.2.0
  230.               Do j = 1 to events.i.2.0
  231.              call lineout filename,  events.i.2.j
  232.               end
  233.               call lineout filename,  events.i.3
  234.               call lineout filename,  events.i.4
  235.               call lineout filename,  events.i.5.0
  236.               Do j = 1 to events.i.5.0
  237.              call lineout filename,  events.i.5.j
  238.               end
  239.               call lineout filename,  events.i.6
  240.               call lineout filename,  events.i.7
  241.               call lineout filename,  events.i.8
  242.             end
  243.        end
  244.        call lineout filename
  245.        SIGNAL RETURN
  246. /*   ---------- (Disabled) */
  247. /*   Quit */
  248. /*   - Action: */
  249.        rc = RxCP290.close()
  250.        SIGNAL RETURN
  251. /* Events */
  252. /*   New Event */
  253. /*   - Action: */
  254.        i = 0
  255.        do while eventpages.i <> 0
  256.           i = i + 1
  257.        end
  258.        prev = i-1
  259.        if prev = -1 then
  260.           eventpages.i = RxCP290.BigNote.Add(dirpage,"N","EventDialog","Event "i,,i)
  261.        else
  262.           eventpages.i = RxCP290.BigNote.Add(eventpages.prev,"N","EventDialog","Event "i,,i)
  263.        SIGNAL RETURN
  264. /*   Del Event */
  265. /*   - Action: */
  266.        page = RxCP290.BigNote.Select()
  267.        do i = 0 to 127
  268.           if eventpages.i = page then Leave
  269.        end
  270.        do j = 0 to 8
  271.           events.i.j = 0
  272.           if j = 2 then
  273.            events.i.j.0 = 0
  274.           if j = 5 then
  275.            events.i.j.0 = 0
  276.        end
  277.        eventpages.i = 0
  278.        rc = RxCP290.BigNote.Delete(page)
  279.        SIGNAL RETURN
  280. /*   GetEvents */
  281. /*   - Action: */
  282.        events. = 0
  283.        do i = 0 to 127
  284.           if eventpages.i <> 0 then
  285.              rc = RxCP290.BigNote.Delete(eventpages.i)
  286.           eventpages.i = 0
  287.        end
  288.        Do until rc =  0
  289.          rc = RxCmdUploadCP290(CP290,'result')
  290.        end
  291.        rc = RxGetEventsCP290(CP290, 'events')
  292.        if rc = -1 then 
  293.           rc = ErrorDialog("Communications Error With CP290")
  294.        else
  295.        do i = 0 to 127
  296.            if events.i.0 \= 0 then 
  297.               eventpages.i = RxCP290.BigNote.Add(0,"L","EventDialog","Event "i,,i)
  298.        end
  299.        SIGNAL RETURN
  300. /*   StoreEvents */
  301. /*   - Action: */
  302.        Do until rc =  0
  303.          rc = RxCmdUploadCP290(CP290,'result')
  304.        end
  305.        rc = RxGetTimeCP290(CP290, 'thc')
  306.        if rc = -1 then
  307.        do
  308.           rc = ErrorDialog("Communications Error With CP290")
  309.           Signal RETURN
  310.        end
  311.        rc = RxSetHcodeCP290(CP290,thc.4)
  312.        if rc = -1 then
  313.        do
  314.           rc = ErrorDialog("Communications Error With CP290")
  315.           Signal RETURN
  316.        end
  317.        do i = 0 to 127
  318.            if events.i.0 \= 0 then
  319.            do
  320.               rc = RxDwnLdEvtCP290(CP290,i,'events.i')
  321.               if rc = -1 then 
  322.               do
  323.                  rc = ErrorDialog("Communications Error With CP290")
  324.                  i = 128
  325.               end
  326.            end
  327.        end
  328.        SIGNAL RETURN
  329.  
  330. /*-----------------------------------------------------------------------------+
  331. |                                                                              |
  332. |  Event handlers for dialog: InitDialog                                       |
  333. |                                                                              |
  334. +-----------------------------------------------------------------------------*/
  335.  
  336. /* Event handlers for: C305 (PUSHBUTTON) */
  337.  
  338. InitDialog_C305_Click:
  339.   Do until rc =  0
  340.     rc = RxCmdUploadCP290(CP290,'result')
  341.   end
  342.   rc = RxSetTimeCP290(CP290)
  343.   if rc = -1 then 
  344.      rc = ErrorDialog("Communications Error With CP290")
  345.      
  346.   SIGNAL RETURN
  347.  
  348. /* Event handlers for: C304 (PUSHBUTTON) */
  349.  
  350. InitDialog_C304_Click:
  351.   ind = InitDialog.SetHcode.select()
  352.   hc = SetHcd.ind
  353.   Do until rc =  0
  354.     rc = RxCmdUploadCP290(CP290,'result')
  355.   end
  356.   rc = RxSetHcodeCP290(CP290, hc)
  357.   if rc = -1 then 
  358.      rc = ErrorDialog("Communications Error With CP290")
  359.   SIGNAL RETURN
  360.  
  361. /* Event handlers for: SetHcode (SPINBUTTON) */
  362.  
  363. InitDialog_SetHcode_Init:
  364.   SetHcd.0 = 16 
  365.   do j = 1 to 16
  366.     SetHcd.j = D2C(j+64)
  367.   end
  368.   rc = InitDialog.SetHcode.Range('SetHcd')
  369.   SIGNAL RETURN
  370.  
  371. /* Event handlers for: InitButton (PUSHBUTTON) */
  372.  
  373. InitDialog_InitButton_Click:
  374.   com = InitDialog.ComPort.Select()
  375.   com = port.com
  376.   if CP290 <> "" then
  377.      rc = RxCloseCP290(CP290)
  378.   rc = RxInitCP290(com, "CP290")
  379.   if rc <> 0 then 
  380.      rc = ErrorDialog("Error Opening Commmunications Port "com)
  381.   rc = SysIni('USER','RXCP290','COMPORT', com)
  382.   SIGNAL RETURN
  383.  
  384. /* Event handlers for: ComPort (SPINBUTTON) */
  385.  
  386. InitDialog_ComPort_Init:
  387.   port.0 = 4
  388.   port.1 = "COM1"
  389.   port.2 = "COM2"
  390.   port.3 = "COM3"
  391.   port.4 = "COM4"
  392.   call InitDialog.ComPort.Range "Port"
  393.   do j = 1 to 4
  394.      if comport = port.j then
  395.         rc = InitDialog.ComPort.Select(j)
  396.   end
  397.   SIGNAL RETURN
  398.  
  399. /*-----------------------------------------------------------------------------+
  400. |                                                                              |
  401. |  Event handlers for dialog: EventDialog                                      |
  402. |                                                                              |
  403. +-----------------------------------------------------------------------------*/
  404.  
  405. /* Event handlers for: EventDialog (DIALOG) */
  406.  
  407. EventDialog_Init:
  408.   EvtHcode.0 = 16
  409.   do j = 1 to 16
  410.      EvtHcode.j = D2C(64 +j)
  411.   end
  412.   EvtMode.0 = 5
  413.   EvtMode.1 = "NORMAL"
  414.   EvtMode.2 = "SECURITY"
  415.   EvtMode.3 = "TODAY"
  416.   EvtMode.4 = "TOMORROW"
  417.   EvtMode.5 = "CLEAR"
  418.   EvtFunc.0 = 3
  419.   EvtFunc.1 = "ON"
  420.   EvtFunc.2 = "OFF"
  421.   EvtFunc.3 = "DIM"
  422.   rc = EventDialog.EventHcode.Range('EvtHcode')
  423.   rc = EventDialog.EventMode.Range('EvtMode')
  424.   rc = EventDialog.Eventfunc.Range('Evtfunc')
  425.   rc = EventDialog.EventMod.Range(1,16)
  426.   rc = EventDialog.EventHr.Range(0,23)
  427.   rc = EventDialog.EventMin.Range(0,59)
  428.   rc = EventDialog.EventLevel.Range(15)
  429.   SIGNAL RETURN
  430.  
  431. EventDialog_Open:
  432.   page = RxCP290.BigNote.Select()
  433.   evt  = RxCP290.BigNote.Item(page, "D")
  434.   rc = EventDialog.Eventno.Text(evt)
  435.   SIGNAL RETURN
  436.  
  437. /* Event handlers for: EnterButton (PUSHBUTTON) */
  438.  
  439. EventDialog_EnterButton_Click:
  440.   evt = EventDialog.EventNo.Text()
  441.   events.evt.0 = 1
  442.   in = EventDialog.EventMode.Select() 
  443.   events.evt.1 = EvtMode.in
  444.   events.evt.5.0 = 1
  445.   events.evt.5.1 = EventDialog.EventMod.Select()
  446.   events.evt.3 = EventDialog.EventHr.Select()
  447.   events.evt.4 = EventDialog.EventMin.Select()
  448.   in = 0
  449.   if EventDialog.MonBut.Select() = 1 then 
  450.   do
  451.      in = in + 1
  452.      events.evt.2.in = "MON"
  453.   end
  454.   if EventDialog.TueBut.Select() = 1 then 
  455.   do
  456.      in = in + 1
  457.      events.evt.2.in = "TUE"
  458.   end
  459.   if EventDialog.WedBut.Select() = 1 then 
  460.   do
  461.      in = in + 1
  462.      events.evt.2.in = "WED"
  463.   end
  464.   if EventDialog.ThuBut.Select() = 1 then 
  465.   do
  466.      in = in + 1
  467.      events.evt.2.in = "THU"
  468.   end
  469.   if EventDialog.FriBut.Select() = 1 then 
  470.   do
  471.      in = in + 1
  472.      events.evt.2.in = "FRI"
  473.   end
  474.   if EventDialog.SatBut.Select() = 1 then 
  475.   do
  476.      in = in + 1
  477.      events.evt.2.in = "SAT"
  478.   end
  479.   if EventDialog.SunBut.Select() = 1 then 
  480.   do
  481.      in = in + 1
  482.      events.evt.2.in = "SUN"
  483.   end
  484.   events.evt.2.0 = in
  485.   in = EventDialog.EventHcode.Select()
  486.   events.evt.6 = EvtHcode.in
  487.   events.evt.7 = EventDialog.EventLevel.Select()
  488.   in = EventDialog.EventFunc.Select()
  489.   events.evt.8 = Evtfunc.in
  490.   SIGNAL RETURN
  491.  
  492. /*-----------------------------------------------------------------------------+
  493. |                                                                              |
  494. |  Event handlers for dialog: DirControlDialog                                 |
  495. |                                                                              |
  496. +-----------------------------------------------------------------------------*/
  497.  
  498. /* Event handlers for: DirControlDialog (DIALOG) */
  499.  
  500. DirControlDialog_Init:
  501.   housecode.0 = 16
  502.   module.0 = 16
  503.   do j = 1 to 16
  504.     housecode.j = D2C(j+64)
  505.     module.j = j
  506.   end
  507.   rc = DirControlDialog.DirHcode.Range('housecode')
  508.   rc = DirControlDialog.DirMod.Range('module')
  509.   rc = DirControlDialog.DirOn.Select(1)
  510.   rc = DirControlDialog.DirOff.Select(0)
  511.   rc = DirControlDialog.DirDim.Select(0)
  512.   rc = DirControlDialog.DirLevel.Range(15,0,15,0)
  513.   
  514.   SIGNAL RETURN
  515.  
  516. /* Event handlers for: DirExe (PUSHBUTTON) */
  517.  
  518. DirControlDialog_DirExe_Click:
  519.   hcode  = DirControlDialog.DirHcode.Select()
  520.   hcode  = housecode.hcode
  521.   module = DirControlDialog.DirMod.Select()
  522.   if DirControlDialog.DirOn.Select() = 1 then
  523.      func = "ON"
  524.   if DirControlDialog.DirOff.Select() = 1 then
  525.      func = "OFF"
  526.   if DirControlDialog.DirDim.Select() = 1 then
  527.      func = "DIM"
  528.   dim = DirControlDialog.DirLevel.Select()
  529.   Do until rc =  0
  530.     rc = RxCmdUploadCP290(CP290,'result')
  531.   end
  532.   rc = RxDirCmdCP290(CP290, dim, func, hcode, module)
  533.   if rc = -1 then
  534.   do 
  535.      rc = ErrorDialog("Communications Error With CP290")
  536.      rc = 20
  537.   end
  538.   do while rc < 5
  539.      rc = RxCmdUploadCP290(CP290, 'result')
  540.   end
  541.   SIGNAL RETURN
  542.  
  543. /*-----------------------------------------------------------------------------+
  544. |                                                                              |
  545. |  Event handlers for dialog: errdlg                                           |
  546. |                                                                              |
  547. +-----------------------------------------------------------------------------*/
  548.  
  549. /* Event handlers for: errbut (PUSHBUTTON) */
  550.  
  551. errdlg_errbut_Click:
  552.   rc = errdlg.Close()
  553.   return 0
  554.   SIGNAL RETURN
  555.  
  556. /* Event handlers for: errmsg (TEXTBOX) */
  557.  
  558. errdlg_errmsg_Init:
  559.   rc= errdlg.errmsg.Text(msg)
  560.   SIGNAL RETURN
  561.  
  562. /*-----------------------------------------------------------------------------+
  563. |                                                                              |
  564. |  Global procedures:                                                          |
  565. |                                                                              |
  566. +-----------------------------------------------------------------------------*/
  567.  
  568. ErrorDialog:
  569.   ErrorDialog: procedure
  570.   
  571.   parse arg msg
  572.   Return ModalFor('errdlg')
  573.  
  574. /*-----------------------------------------------------------------------------+
  575. |                                                                              |
  576. |  Default initialization:                                                     |
  577. |                                                                              |
  578. +-----------------------------------------------------------------------------*/
  579.  
  580. INIT:
  581.   SIGNAL RETURN
  582.  
  583. /*-----------------------------------------------------------------------------+
  584. |                                                                              |
  585. |  Default error handlers:                                                     |
  586. |                                                                              |
  587. +-----------------------------------------------------------------------------*/
  588.  
  589. SYNTAX:
  590.   SAY 'SYNTAX ERROR:' errortext( rc ) 'in:'
  591.   SAY sourceline( sigl )
  592.   SIGNAL ON SYNTAX
  593.   SIGNAL RETURN
  594.  
  595. HALT:
  596.   SAY 'HALT occurred in:'
  597.   SAY sourceline( sigl )
  598.   SIGNAL ON HALT
  599.   SIGNAL RETURN
  600.