home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a081 / 2.ddi / CTFXX.EXE / FOXFAX03.PRG < prev    next >
Encoding:
Text File  |  1993-05-12  |  8.9 KB  |  319 lines

  1. *.............................................................................
  2. *   Program Name: FOXFAX03.PRG     Copyright: Magna Carta Software, Inc.
  3. *   Date Created: 11-10-91         Language: FoxPro v2.x.
  4. *.............................................................................
  5. * Description: CAS Current Event status utility.
  6. * Run this while a CAS event is occuring.
  7. *.............................................................................
  8. SET TALK OFF
  9. CLOSE ALL
  10.  
  11.  
  12. * Load the right library
  13. foxid = VERS()
  14. IF "2.0" $ foxid
  15.     SET LIBR TO ftf                 && Identified FoxPro 2.0
  16. ELSE
  17.     IF "2.5" $ VERS()
  18.         IF "Windows" $ foxid        && Identified FoxPro 2.5 for Windows
  19.             SET LIBR TO ftfw
  20.         ELSE
  21.             SET LIBR TO ftf25       && Identified FoxPro 2.5 for DOS
  22.         ENDIF
  23.     ENDIF
  24. ENDIF
  25.  
  26. SET CURSOR off
  27. SET ESCAPE off
  28.  
  29. DO ftfhdr
  30.  
  31. CLEAR
  32. PUBLIC DONE, status, row, def_colors, scr, i, ro, ret
  33. PUBLIC ro, lcol1, lcol2, lcol3, lcol4
  34. lcol1 = 1
  35. lcol2 = 32
  36. lcol3 = 44
  37. lcol4 = 71
  38. ro = 0
  39.  
  40. @ro, 00 SAY "FOXFAX03: Get Current Event Status"
  41. ro = ro+1
  42. status = SPACE(512)
  43. ret = cas_get_ces(@status)
  44. IF ret < 0
  45.     @ro, 00 SAY "No events currently running (return code " + UPPER(D2X(abs(ret))) + "h)"
  46.     ro = ro+1
  47. ELSE
  48.     DEFINE WINDOW w_main FROM 01, 00 TO SROWS()-1, SCOLS()-1;
  49.     IN SCREEN;
  50.     TITLE " FoxFax03: CommTools - Fox Fax Status Utility " DOUBLE COLOR SCHEME 7
  51.     ACTIVATE WINDOW w_main
  52.     DONE = .F.
  53.     DO WHILE !DONE
  54.         status = SPACE(512)
  55.         ret = cas_get_ces(@status)
  56.         IF ret < 0
  57.             ro = ro + 1
  58.             @ro, 00 SAY "No events currently running (return code " + LTRIM(STR(ret)) + ")"
  59.             DONE = .T.
  60.         ELSE
  61.             =display_control_file(status, 2)
  62.         ENDIF
  63.         IF INKEY() = ESC
  64.             =cas_abort_current_event()
  65.             @23, 40 SAY "Event aborted from keyboard"
  66.             DONE = .T.
  67.         ENDIF
  68.     ENDDO
  69. ENDIF
  70. SET CURSOR ON
  71. RELEASE WINDOWS
  72. CLOSE ALL
  73.  
  74.  
  75. PROCEDURE display_control_file
  76.     PARAMETERS s, ro
  77.  
  78.     DIMENSION event_type[5], transfer_type[3], event_status[6], ftype[3]
  79.     DIMENSION fstatus[5]
  80.     PRIVATE etype, hours, mins, secs, tpage, pages, files
  81.     PRIVATE c, pa, timestr
  82.     PRIVATE csid, errors, edate, etime
  83.  
  84.     event_type[1] = "Send"
  85.     event_type[2] = "Receive"
  86.     event_type[3] = "Polled Send"
  87.     event_type[4] = "Polled Receive"
  88.     event_type[5] = "Hardware Error"
  89.  
  90.     transfer_type[1] = "200x200 dpi Fax mode"
  91.     transfer_type[2] = "100x200 dpi Fax mode"
  92.     transfer_type[3] = "File transfer mode"
  93.  
  94.     event_status[1] = "Successfully completed"
  95.     event_status[2] = "Waiting to be processed"
  96.     event_status[3] = "Number has been dialled"
  97.     event_status[4] = "Connection made -- sending"
  98.     event_status[5] = "Connection Made -- receiving"
  99.     event_status[6] = "Event was aborted"
  100.  
  101.     ftype[1]        = "ASCII"
  102.     ftype[2]        = "PCX"
  103.     ftype[3]        = "DCX"
  104.  
  105.     fstatus[1]      = "Untouched"
  106.     fstatus[2]      = "Has been opened"
  107.     fstatus[3]      = "Has been moved"
  108.     fstatus[4]      = "Has been deleted"
  109.     fstatus[5]      = "Not yet received"
  110.  
  111.     * DISPLAY THE EVENT TYPE
  112.     c = ASC(SUBSTR(s, 1, 1))
  113.     etype = c
  114.     @ro, lcol1 SAY "Event type: "
  115.     IF  c >= 0 .AND. c <= 3
  116.         @ro, lcol2 SAY event_type[c+1]
  117.     ELSE
  118.         @ro, lcol2 SAY c
  119.     ENDIF
  120.     ro = ro+1
  121.  
  122.     * DISPLAY THE TRANSFER TYPE
  123.     c = ASC(SUBSTR(s, 2, 1))
  124.     @ro, lcol1 SAY "Transfer type: "
  125.     IF  c >= 0 .AND. c <= 2
  126.         @ro, lcol2 SAY transfer_type[c+1]
  127.     ELSE
  128.         @ro, lcol2 SAY SUBSTR(s, 1, 64)
  129.     ENDIF
  130.     ro = ro+1
  131.  
  132.     * DISPLAY STATUS OF EVENT
  133.     c = ASC(SUBSTR(s, 3, 1))
  134.     @ro, lcol1 SAY "Status of event: "
  135.     IF  c >= 0 .AND. c <= 5
  136.         @ro, lcol2 SAY event_status[c+1]
  137.     ELSE
  138.         @ro, lcol2 SAY SUBSTR(s, 3, 64)
  139.     ENDIF
  140.     ro = ro+1
  141.  
  142.     * IF A SEND EVENT DISPLAY DATE AND TIME
  143.     IF etype == 0 .OR. etype == 2
  144.         * CONVERT THE TIME TO A 2-BYTE INTEGER
  145.         c = ASC(SUBSTR(s, 5, 1)) + ASC(SUBSTR(s, 6, 1)) * 256
  146.         etime = DOST2XT(c)
  147.         @ro, lcol1 SAY "Event time: "
  148.         @ro, lcol2 SAY etime
  149.         c = ASC(SUBSTR(s, 7, 1)) + ASC(SUBSTR(s, 8, 1)) * 256
  150.         edate = DOSD2XD(c)
  151.         @ro, lcol3 SAY "Event date: "
  152.         @ro, lcol4-7 SAY DTOC(edate)
  153.     ENDIF
  154.     ro = ro+1
  155.  
  156.     * DISPLAY NUMBER OF FILES TO TRANSFER
  157.     c = SUBSTR(s, 9, 2)
  158.     @ro, lcol1 SAY "Number of files to transfer: "
  159.     @ro, lcol2 SAY LTRIM(STR(ASC(c)))
  160.     ro = ro+1
  161.  
  162.     * DISPLAY PHONE NUMBER TO CALL
  163.     c = STRTRAN(SUBSTR(s, 13, 47), CHR(0), CHR(32))
  164.     @ro, lcol1 SAY "Phone number: "
  165.     @ro, lcol2 SAY ALLTRIM(c)
  166.     ro = ro+1
  167.  
  168.     * DISPLAY CONNECT TIME STATUS
  169.     secs  = ASC(SUBSTR(s, 125, 1))
  170.     IF secs < 10
  171.         secs = SUBSTR("0" + ALLTRIM(STR(secs)), 1, 2)
  172.     ELSE
  173.         secs = SUBSTR(ALLTRIM(STR(secs)), 1, 2)
  174.     ENDIF
  175.     mins  = ASC(SUBSTR(s, 126, 1))
  176.     IF mins < 10
  177.         mins = SUBSTR("0" + ALLTRIM(STR(mins)), 1, 2)
  178.     ELSE
  179.         mins = SUBSTR(ALLTRIM(STR(mins)), 1, 2)
  180.     ENDIF
  181.     hours = ASC(SUBSTR(s, 127, 1))
  182.     IF hours < 10
  183.         hours = SUBSTR("0" + ALLTRIM(STR(hours)), 1, 2)
  184.     ELSE
  185.         hours = SUBSTR(ALLTRIM(STR(hours)), 1, 2)
  186.     ENDIF
  187.     timestr =  hours + ":" + mins + ":" + secs
  188.     @ro, lcol1 SAY "Connect Time: "
  189.     @ro, lcol2 SAY timestr
  190.     ro = ro+1
  191.  
  192.     * DISPLAY TRANSFER PROGRESS
  193.     tpage = ASC(SUBSTR(s, 128, 4))
  194.     @ro, lcol1 SAY "Number of pages to send: "
  195.     @ro, lcol2 SAY LTRIM(STR(tpage))
  196.     pages = ASC(SUBSTR(s, 132, 1))
  197.     @ro, lcol3 SAY "Number of pages sent: "
  198.     @ro, lcol4 SAY LTRIM(STR(pages))
  199.     ro = ro+1
  200.     files = ASC(SUBSTR(s, 136, 2))
  201.     @ro, lcol1 SAY "Number of files sent: "
  202.     @ro, lcol2 SAY LTRIM(STR(files))
  203.     errors = ASC(SUBSTR(s, 139, 2))
  204.     @ro, lcol3 SAY "Number of errors: "
  205.     @ro, lcol4 SAY LTRIM(STR(errors))
  206.     ro = ro+1
  207.     csid = SUBSTR(s, 219, 21)
  208.     @ro, lcol1 SAY "Remote CSID: "
  209.     @ro, lcol2 SAY csid
  210.     ro = ro+1
  211.  
  212.     * DISPLAY RECIPIENT NAME
  213.     c = SUBSTR(s, 240, 32)
  214.     @ro, lcol1 SAY "Recipient: "
  215.     @ro, lcol2 SAY SUBSTR(c, 1, AT(CHR(1), c, 1) - 1)
  216.     ro = ro+1
  217.  
  218.     * DISPLAY SENDER NAME
  219.     c = SUBSTR(s, 272, 32)
  220.     @ro, lcol1 SAY "Sender: "
  221.     @ro, lcol2 SAY ALLTRIM(c)
  222.     ro = ro+1
  223.  
  224.     * PCX LOGO FILE PATH AND NAME
  225.     c = STRTRAN(SUBSTR(s, 304, 80), CHR(0), CHR(32))
  226.     @ro, lcol1 SAY "PCX Logo File Path: "
  227.     @ro, lcol2 SAY ALLTRIM(c)
  228.     ro = ro+1
  229.  
  230.     =display_ftr(SUBSTR(s, 384, 128), ro)
  231. RETURN
  232.  
  233.  
  234. * DISPLAY_FTR -- Display a File Transfer Record (FTR).
  235. * While a generic routine, in this case the FTR returned by CAS_GET_CES()
  236. * is displayed.
  237. PROCEDURE display_ftr
  238.     PARAMETERS s, ro
  239.  
  240.     * FILE TYPE
  241.     c = ASC(SUBSTR(s, 1, 1))
  242.     @ro, lcol1 SAY "File type: "
  243.     IF c >= 0 .AND. c <= 2
  244.         @ro, lcol2 SAY ftype[c+1]
  245.     ENDIF
  246.     ro = ro+1
  247.  
  248.     * TEXT SIZE TO USE IF FILE TYPE IS ASCII
  249.     c = ASC(SUBSTR(s, 2, 1))
  250.     @ro, lcol1 SAY "Text size for ASCII faxes: "
  251.     IF c == 0
  252.         @ro, lcol2 SAY "80 col x 66 lines"
  253.     ELSE IF c == 1
  254.         @ro, lcol2 SAY "132 col x 66 lines"
  255.     ENDIF
  256.     ro = ro+1
  257.  
  258.     * STATUS OF THE FILE
  259.     c = ASC(SUBSTR(s, 3, 1))
  260.     @ro, lcol1 SAY "Status of this file: "
  261.     IF c >= 0 .AND. c <= 4
  262.         @ro, lcol2 SAY fstatus[c+1]
  263.     ENDIF
  264.     ro = ro+1
  265.  
  266.     * BYTES TRANSMITTED SO FAR
  267.     c = ASC(SUBSTR(s, 4, 1)) + ASC(SUBSTR(s, 5, 1)) * 256 +;
  268.         (ASC(SUBSTR(s, 6, 1)) + ASC(SUBSTR(s, 7, 1)) * 256) * 1024 * 64
  269.     @ro, lcol1 SAY "Bytes transmitted so far: "
  270.     @ro, lcol2 SAY ALLTRIM(STR(c))
  271.     ro = ro+1
  272.  
  273.     * SIZE IN BYTES OF THIS FILE
  274.     c = ASC(SUBSTR(s, 8, 1)) + ASC(SUBSTR(s, 9, 1)) * 256 +;
  275.         (ASC(SUBSTR(s, 10, 1)) + ASC(SUBSTR(s, 11, 1)) * 256) * 1024 * 64
  276.     @ro, lcol1 SAY "Size (in bytes) of file: "
  277.     @ro, lcol2 SAY ALLTRIM(STR(c))
  278.     ro = ro+1
  279.  
  280.     * FILE PAGES TRANSMITTED SO FAR
  281.     c = ASC(SUBSTR(s, 12, 2))
  282.     @ro, lcol1 SAY "Pages transmitted so far: "
  283.     @ro, lcol2 SAY ALLTRIM(STR(c))
  284.  
  285.     * TOTAL FILE PAGES IN FILE
  286.     c = ASC(SUBSTR(s, 14, 2))
  287.     @ro, lcol3 SAY "Pages in file: "
  288.     @ro, lcol4 SAY ALLTRIM(STR(c))
  289.     ro = ro+1
  290.  
  291.     * PATH AND NAME OF FILE TO SEND
  292.     c = SUBSTR(s, 16, 80)
  293.     @ro, lcol1 SAY "Full file path: "
  294.     @ro, lcol1+17 SAY SUBSTR(c, 1, AT(CHR(0), c, 1))
  295.     ro = ro+1
  296.  
  297.     * 1/8th INCH INCREMENTS IN PAGE LENGTH
  298.     c = ASC(SUBSTR(s, 97, 1))
  299.     @ro, lcol1 SAY 'No. of 1/8" incr. to length: '
  300.     @ro, lcol2 SAY ALLTRIM(STR(c))
  301.  
  302.     * PAGE LENGTH
  303.     pa = ASC(SUBSTR(s, 98, 1))
  304.     @ro, lcol3 SAY "Page length (inches): "
  305.     IF pa == -1
  306.         @ro, lcol4 SAY "ASCII pages with form feeds"
  307.     ELSE
  308.         IF pa == 0
  309.             @ro, lcol4 SAY "11"
  310.         ELSE
  311.             IF pa > 0
  312.                 pa = pa + c/8
  313.                 @ro, lcol4 SAY ALLTRIM(STR(pa))
  314.             ENDIF
  315.         ENDIF
  316.     ENDIF
  317. RETURN
  318.  
  319.