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

  1. *.............................................................................
  2. *   Program Name: FOXFAX04.PRG     Copyright: Magna Carta Software, Inc.
  3. *   Date Created: 03-03-91         Language: FoxPro v2.x.
  4. *.............................................................................
  5. * Description: CAS Current Event status utility.
  6. * Reads a CAS log file and displays it on the screen.
  7. *.............................................................................
  8. SET TALK OFF
  9. CLEAR
  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. DO ftfhdr
  27.  
  28. PUBLIC status, ret, tmp
  29.  
  30.  
  31. IF FILE('temp0000.tcf')
  32.     tmp = FOPEN('castmp.txt', 0)
  33. ELSE
  34.     CANCEL
  35. ENDIF
  36. @01, 00 SAY "fopen=" + ALLTRIM(STR(tmp))
  37. status = FREAD(tmp, 512)
  38. =display_fax(status)
  39. DONE = .F.
  40. DO WHILE !DONE
  41.     IF INKEY() = CR
  42.         DONE = .T.
  43.     ENDIF
  44. ENDDO
  45. ret =FCLOSE(tmp)
  46. ? ret
  47.  
  48.  
  49.  
  50. PROCEDURE display_fax
  51.     PARAMETERS s
  52.  
  53.     DIMENSION event_type[5], transfer_type[3], event_status[6], ftype[3]
  54.     DIMENSION fstatus[5]
  55.     PRIVATE etype, hours, mins, secs, tpage, pages, files, ro
  56.     PRIVATE lcol1, lcol2, lcol3, lcol4, c, pa, timestr
  57.     PRIVATE csid, errors, edate, etime
  58.  
  59.     ro = 2
  60.     lcol1 = 3
  61.     lcol2 = 35
  62.     lcol3 = 44
  63.     lcol4 = 71
  64.     event_type[1] = "Send"
  65.     event_type[2] = "Receive"
  66.     event_type[3] = "Polled Send"
  67.     event_type[4] = "Polled Receive"
  68.     event_type[5] = "Hardware Error"
  69.  
  70.     transfer_type[1] = "200x200 dpi Fax mode"
  71.     transfer_type[2] = "100x200 dpi Fax mode"
  72.     transfer_type[3] = "File transfer mode"
  73.  
  74.     event_status[1] = "Successfully completed"
  75.     event_status[2] = "Waiting to be processed"
  76.     event_status[3] = "Number has been dialled"
  77.     event_status[4] = "Connection made -- sending"
  78.     event_status[5] = "Connection Made -- receiving"
  79.     event_status[6] = "Event was aborted"
  80.  
  81.     ftype[1]        = "ASCII"
  82.     ftype[2]        = "PCX"
  83.     ftype[3]        = "DCX"
  84.  
  85.     fstatus[1]      = "Untouched"
  86.     fstatus[2]      = "Has been opened"
  87.     fstatus[3]      = "Has been moved"
  88.     fstatus[4]      = "Has been deleted"
  89.     fstatus[5]      = "Not yet received"
  90.  
  91.     * DISPLAY THE EVENT TYPE
  92.     c = ASC(SUBSTR(s, 1, 1))
  93.     etype = c
  94.     @ro, lcol1 SAY "Event type: "
  95.     IF  c >= 0 .AND. c <= 3
  96.         @ro, lcol2 SAY event_type[c+1]
  97.     ELSE
  98.         @ro, lcol2 SAY c
  99.     ENDIF
  100.     ro = ro+1
  101.  
  102.     * DISPLAY THE TRANSFER TYPE
  103.     c = ASC(SUBSTR(s, 2, 1))
  104.     @ro, lcol1 SAY "Transfer type: "
  105.     IF  c >= 0 .AND. c <= 2
  106.         @ro, lcol2 SAY transfer_type[c+1]
  107.     ELSE
  108.         @ro, lcol2 SAY SUBSTR(s, 1, 64)
  109.     ENDIF
  110.     ro = ro+1
  111.  
  112.     * DISPLAY STATUS OF EVENT
  113.     c = ASC(SUBSTR(s, 3, 1))
  114.     @ro, lcol1 SAY "Status of event: "
  115.     IF  c >= 0 .AND. c <= 5
  116.         @ro, lcol2 SAY event_status[c+1]
  117.     ELSE
  118.         @ro, lcol2 SAY SUBSTR(s, 3, 64)
  119.     ENDIF
  120.     ro = ro+1
  121.  
  122.     * IF A SEND EVENT DISPLAY DATE AND TIME
  123.     IF etype == 0 .OR. etype == 2
  124.         * CONVERT THE TIME TO A 2-BYTE INTEGER
  125.         c = ASC(SUBSTR(s, 5, 1)) + ASC(SUBSTR(s, 6, 1)) * 256
  126.         etime = DOST2XT(c)
  127.         @ro, lcol1 SAY "Event time: "
  128.         @ro, lcol2 SAY etime
  129.         c = ASC(SUBSTR(s, 7, 1)) + ASC(SUBSTR(s, 8, 1)) * 256
  130.         edate = DOSD2XD(c)
  131.         @ro, lcol3 SAY "Event date: "
  132.         @ro, lcol4-7 SAY DTOC(edate)
  133. *       @ro, lcol4-7 SAY edate
  134.     ENDIF
  135.     ro = ro+1
  136.  
  137.     * DISPLAY NUMBER OF FILES TO TRANSFER
  138.     c = SUBSTR(s, 9, 2)
  139.     @ro, lcol1 SAY "Number of files to transfer: "
  140.     @ro, lcol2 SAY LTRIM(STR(ASC(c)))
  141.     ro = ro+1
  142.  
  143.     * DISPLAY PHONE NUMBER TO CALL
  144.     c = STRTRAN(SUBSTR(s, 13, 47), CHR(0), CHR(32))
  145.     @ro, lcol1 SAY "Phone number: "
  146.     @ro, lcol2 SAY ALLTRIM(c)
  147.     ro = ro+1
  148.  
  149.     * DISPLAY CONNECT TIME STATUS
  150.     secs  = SUBSTR("0" + ALLTRIM(STR(ASC(SUBSTR(s, 125, 1)))), 1, 2)
  151.     mins  = SUBSTR("0" + ALLTRIM(STR(ASC(SUBSTR(s, 126, 1)))), 1, 2)
  152.     hours = SUBSTR("0" + LTRIM(STR(ASC(SUBSTR(s, 127, 1)))), 1, 2)
  153.     timestr =  hours + ":" + mins + ":" + secs
  154.     @ro, lcol1 SAY "Connect Time: "
  155.     @ro, lcol2 SAY timestr
  156.     ro = ro+1
  157.  
  158.     * DISPLAY TRANSFER PROGRESS
  159.     tpage = ASC(SUBSTR(s, 128, 4))
  160.     @ro, lcol1 SAY "Number of pages to send: "
  161.     @ro, lcol2 SAY LTRIM(STR(tpage))
  162.     pages = ASC(SUBSTR(s, 132, 1))
  163.     @ro, lcol3 SAY "Number of pages sent: "
  164.     @ro, lcol4 SAY LTRIM(STR(pages))
  165.     ro = ro+1
  166.     files = ASC(SUBSTR(s, 136, 2))
  167.     @ro, lcol1 SAY "Number of files sent: "
  168.     @ro, lcol2 SAY LTRIM(STR(files))
  169.     errors = ASC(SUBSTR(s, 139, 2))
  170.     @ro, lcol3 SAY "Number of errors: "
  171.     @ro, lcol4 SAY LTRIM(STR(errors))
  172.     ro = ro+1
  173.     csid = SUBSTR(s, 219, 21)
  174.     @ro, lcol1 SAY "Remote CSID: "
  175.     @ro, lcol2 SAY csid
  176.     ro = ro+1
  177.  
  178.     * DISPLAY RECIPIENT NAME
  179.     c = SUBSTR(s, 240, 32)
  180.     @ro, lcol1 SAY "Recipient: "
  181.     @ro, lcol2 SAY ALLTRIM(c)
  182.     ro = ro+1
  183.  
  184.     * DISPLAY SENDER NAME
  185.     c = SUBSTR(s, 272, 32)
  186.     @ro, lcol1 SAY "Sender: "
  187.     @ro, lcol2 SAY ALLTRIM(c)
  188.     ro = ro+1
  189.  
  190.     * PCX LOGO FILE PATH AND NAME
  191.     c = STRTRAN(SUBSTR(s, 304, 80), CHR(0), CHR(32))
  192.     @ro, lcol1 SAY "PCX Logo File Path: "
  193.     @ro, lcol2 SAY ALLTRIM(c)
  194.     ro = ro+1
  195.  
  196.     * FTR FIELDS
  197.     * FILE TYPE
  198.     c = ASC(SUBSTR(s, 384, 1))
  199.     @ro, lcol1 SAY "File type: "
  200.     IF c >= 0 .AND. c <= 2
  201.         @ro, lcol2 SAY ftype[c+1]
  202.     ENDIF
  203.     ro = ro+1
  204.  
  205.     * TEXT SIZE TO USE IF FILE TYPE IS ASCII
  206.     c = ASC(SUBSTR(s, 385, 1))
  207.     @ro, lcol1 SAY "Text size for ASCII faxes: "
  208.     IF c == 0
  209.         @ro, lcol2 SAY "80 col x 66 lines"
  210.     ELSE IF c == 1
  211.         @ro, lcol2 SAY "132 col x 66 lines"
  212.     ENDIF
  213.     ro = ro+1
  214.  
  215.     * STATUS OF THE FILE
  216.     c = ASC(SUBSTR(s, 386, 1))
  217.     @ro, lcol1 SAY "Status of this file: "
  218.     IF c >= 0 .AND. c <= 4
  219.         @ro, lcol2 SAY fstatus[c+1]
  220.     ENDIF
  221.     ro = ro+1
  222.  
  223.     * BYTES TRANSMITTED SO FAR
  224.     c = ASC(SUBSTR(s, 387, 1)) + ASC(SUBSTR(s, 388, 1)) * 256 +;
  225.         (ASC(SUBSTR(s, 389, 1)) + ASC(SUBSTR(s, 390, 1)) * 256) * 1024 * 64
  226.     @ro, lcol1 SAY "Bytes transmitted so far: "
  227.     @ro, lcol2 SAY ALLTRIM(STR(c))
  228.     ro = ro+1
  229.  
  230.     * SIZE IN BYTES OF THIS FILE
  231.     c = ASC(SUBSTR(s, 391, 1)) + ASC(SUBSTR(s, 392, 1)) * 256 +;
  232.         (ASC(SUBSTR(s, 393, 1)) + ASC(SUBSTR(s, 394, 1)) * 256) * 1024 * 64
  233.     @ro, lcol1 SAY "Size (in bytes) of file: "
  234.     @ro, lcol2 SAY ALLTRIM(STR(c))
  235.     ro = ro+1
  236.  
  237.     * FILE PAGES TRANSMITTED SO FAR
  238.     c = ASC(SUBSTR(s, 395, 2))
  239.     @ro, lcol1 SAY "Pages transmitted so far: "
  240.     @ro, lcol2 SAY ALLTRIM(STR(c))
  241.  
  242.     * TOTAL FILE PAGES IN FILE
  243.     c = ASC(SUBSTR(s, 397, 2))
  244.     @ro, lcol3 SAY "Pages in file: "
  245.     @ro, lcol4 SAY ALLTRIM(STR(c))
  246.     ro = ro+1
  247.  
  248.     * PATH AND NAME OF FILE TO SEND
  249.     c = STRTRAN(SUBSTR(s, 399, 80), CHR(0), CHR(32))
  250.     @ro, lcol1 SAY "Full file path: "
  251.     @ro, lcol2 SAY ALLTRIM(c)
  252.     ro = ro+1
  253.  
  254.     * 1/8th INCH INCREMENTS IN PAGE LENGTH
  255.     c = ASC(SUBSTR(s, 479, 1))
  256.     @ro, lcol1 SAY 'No. of 1/8" incr. to length: '
  257.     @ro, lcol2 SAY ALLTRIM(STR(c))
  258.  
  259.     * PAGE LENGTH
  260.     pa = ASC(SUBSTR(s, 480, 1))
  261.     @ro, lcol3 SAY "Page length (inches): "
  262.     IF pa == -1
  263.         @ro, lcol4 SAY "ASCII pages with form feeds"
  264.     ELSE
  265.         IF pa == 0
  266.             @ro, lcol4 SAY "11"
  267.         ELSE
  268.             IF pa > 0
  269.                 pa = pa + c/8
  270.                 @ro, lcol4 SAY ALLTRIM(STR(pa))
  271.             ENDIF
  272.         ENDIF
  273.     ENDIF
  274. RETURN
  275.