home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 April A / Pcwk4a98.iso / Wtestowe / OnNet16 / UBION.SCR < prev    next >
Text File  |  1996-10-13  |  5KB  |  204 lines

  1. <* language=slang *>
  2.  
  3. <* ftp Software, Inc. Copyright 1995                  *>
  4. <* You run this script to establish a CDPD connection *>
  5. <* between the ftp Software TCP/IP kernel and the     *>
  6. <* PCSI Ubiquity 1000/2000 or AMPS Cellular/CDPD      *>
  7. <* "PAL" phone.    Actually, this script should work      *>
  8. <* with any PCSI modem that speaks the Ubi 2000       *>
  9. <* AT command set.                                      *>
  10.  
  11. <* Be vary careful of variable names in here... *>
  12. <* Things defined with (define, are case sensitive. *>
  13.  
  14. <*     Check to see if physical is high, if it is, bypass all *>
  15. <*    this, because "Ubi" is probably in "SLIP" mode, and *>
  16. <*    will not respond to AT commands, anyway. *>
  17.     
  18. <*    However, exiting this script will place the serial driver *>
  19. <*    into packet mode, so if PC was shut down without serial CDPD *>
  20. <*    connection "idleld", this (bypassing init due to carrier high), *>
  21. <*     will probably restore the CDPD connection. *>
  22.  
  23.  
  24. (poll, physical, open, 1000, ,
  25. {
  26.  
  27. (status, {CDPD device initialization is in progress.})
  28.  
  29. (output,
  30.     (cr)(lf)
  31.     {The dialer is initializing the CDPD device,} 
  32.     (cr)(lf){and placing it in CDPD mode.}
  33.     (cr)(lf))
  34.     
  35. (slang_init_modem) <* Blast out string from modem.ini *>
  36.  
  37. (remecho,off)
  38.  
  39. <* Tell user why there's such a long wait... *>
  40.  
  41. (status, {CDPD network synchronization is in progress.})
  42.         
  43. (output,
  44.      {Waiting for the CDPD device to synchronize with CDPD network.}
  45.      (cr)(lf))
  46.         
  47. <*     Although we say it to user, we're really not synchronizing, *>
  48. <*    as much as waiting for Network to process Ubi's CDPD *>
  49. <*    credentials.*>
  50.  
  51. (status, {Signal strength determination is in progress.})
  52.  
  53. (output, 
  54.     (cr)(lf)
  55.     {Dialer is determining the available signal strength.}
  56.     (cr)(lf))
  57.  
  58. (send, {AT!RSSI}(cr))
  59.  
  60. <* The wait value of 4 seconds (4000) was determined empiracly, and *>
  61. <* might need to be tweaked on a faster PC. *>
  62.  
  63. (define, Signal, (receive, 4000))
  64.  
  65. <* Remove the AT!RSSI(cr) from the return string, so all we have left *>
  66. <* is the numeric value of signal. The compare primitive gets very *>
  67. <* cranky if the string being compared is not a number. *>
  68.  
  69.  
  70. (replace, Signal, {AT!RSSI}(cr), ,)
  71.  
  72. <* Signal values -- good estimates from testing, not cast in stone. *>
  73.  
  74. (define, NoNetSig,    -113)
  75. (define, PoorSig,     -96)
  76. (define, GoodSig,    -95)
  77.  
  78. (status, {Signal received; calculation is in progress.})
  79. (output, 
  80.     {Dialer is determining if the signal strength is sufficient.}
  81.     (cr)(lf))
  82.  
  83. <* Check for absoultely no signal... *>
  84.  
  85. (define, SigWarn, 
  86.     (compare, (value, Signal), (value, NoNetSig), 
  87.         ContinueScript, StopScript, StopScript))
  88.  
  89. (has, SigWarn, StopScript,
  90.     {(message,
  91. {There is not enough cellular signal strength to initiate the CDPD connection.  The script will stop. Try the connection from a location with stronger signal strength.}, 
  92. OK,s)} {(status, {Insufficient signal strength. This connection attempt stopping.}) 
  93.         (exit)},) 
  94.  
  95. <* Check for so-so signal. *>
  96.  
  97. (define, SigWarn,
  98.     (compare, (value, Signal), (value, PoorSig),
  99.         ContinueScript, PauseScript, PauseScript))
  100.  
  101. (has, SigWarn, PauseScript,
  102.     {(status, {Marginal signal strength.  User decision required.}) 
  103.         (define, Answer, (message,
  104. {The cellular signal strength is weak.  It might not be possible to make or sustain a CDPD connection.  Do you want to continue?},
  105.     YESNO,e,2,ContinueSript, StopScript))},)
  106.  
  107. <* The user says whether or not to continue. *>
  108.  
  109. (has, SigWarn, StopScript, {(exit)},)
  110. (status, {CDPD registration in progress.})
  111. (output, 
  112.     {Signal strength is sufficient to make and sustain a CDPD connection.}
  113.     (cr)(lf))
  114.     
  115. (output, (cr)(lf){Dialer is waiting for CDPD network registration confirmation.}(cr)(lf))
  116.  
  117.  
  118. <* wait a second; we're doing so much other stuff, we'll probably *>
  119. <* register on the first or second try. *>
  120.  
  121. (define, WaitVal, (receive, 1500))
  122. (delete, WaitVal)
  123.  
  124. (output, (cr)(lf))
  125.  
  126. (loop, 
  127. {
  128.     (send, {AT!REGSTATE}(cr))
  129.     (define, RegState, (receive, 3000))
  130.     (has, RegState, OK, 
  131.         {
  132.             (output, 
  133.                 (cr)(lf)
  134.                 {CDPD Network registration has completed successfully.}
  135.                 (cr)(lf))
  136.             
  137.             (lbreak)
  138.         },
  139.         {              
  140.             <* Yes, we're outputing a '.' w/out cr/lf *>
  141.             (output, {.})
  142.         }
  143.     )
  144.             
  145. }, 10)
  146.  
  147. (status, {Entering SLIP mode.})
  148.  
  149. (output, 
  150.     (cr)(lf)
  151.     {Dialer is attempting to place CDPD device in SLIP mode.}
  152.     (cr)(lf))
  153.  
  154. (has, RegState, OK, 
  155.     {
  156.         (send, {AT!SLIP}(cr))
  157.         (define, SlipState, (receive, 3000))
  158.         (has, SlipState, OK,
  159.             {
  160.                 (poll, physical, open, 5000,
  161.                 {               
  162.                     (status, 
  163.                         {CDPD device registeration is complete.})
  164.                         
  165.                     (output, 
  166.                         (cr)(lf)
  167.                         {CDPD device is registered; Dialer is starting serial driver.}
  168.                         (cr)(lf))
  169.                         
  170.                     (lbreak)
  171.                 },
  172.                     {
  173.                         (message,
  174.                             {The Dialer cannot connect to the CDPD device in CDPD mode.}, 
  175.                                 OK, STOP)
  176.                     }
  177.                 )
  178.             },
  179.             {
  180.                 (message, 
  181.                     {The CDPD device did not enter SLIP mode.}, OK, STOP)
  182.             }
  183.         )
  184.     },
  185.     {
  186.             (message, 
  187.                 {The CDPD device did not register with the CDPD network.},
  188.                     OK,STOP )
  189.             (send, {AT!IDLE}(cr))
  190.             (exit)
  191.     }
  192. )
  193.  
  194. (status, {CDPD connection is established})
  195. (output, {CDPD connection attempt was successful.}(cr)(lf))
  196.  
  197. (remecho)
  198.  
  199. })<* end of poll physical major loop *>
  200.  
  201.  
  202.  
  203.  
  204.