CompuServe Thread

#VLT & QuickB

14 messages in this thread
#140450From: Joe VeazeyApr 23, 1994 11:11 PM
Does anybody have a VLT script to download weather maps from CIS? I am trying to write one, to run unattended (ie, batch mode, early in the morning), and I want to use CIS QuickB (to make it fast as possible), but VLT or the xprquickb.library insists on putting up interactive requesters asking for filename, buffer size, and other parameters. Does anybody know how to turn all these off? Presumably by specifying everything in advance… AdThanksVance! Thanks in Advance 😉
#140455From: Robert ComerApr 23, 1994 11:47 PM
I can't really say what might be wrong, my VLT/quickb doesn't do that. If you'd like to post the script, or send it to me though CMail, I'd be glad to see if I can find the problem! Bob Comer — Cruising the nets on Autopilot! Cheyenne, Wyoming U.S.A.
#140522From: Joe VeazeyApr 24, 1994 2:58 PM
Ok, you asked for it! 🙂 This is just the first cut. I had this working originally with Xmodem, but that is kind of slow. I want to speed it up by using QuickB. BTW, which xprquickb.library are you using? Maybe I have a different quickb lib, or an older version. The version command tells me mine is "XPR Quick B v1.2". It is 15016 bytes long. /** GetWeather.vlt **/ trace commands userid="73227,2656" password="**********" /* Add libraries if necessary */ if show("l", "rexxarplib.library") = 0 , then do call addlib('rexxsupport.library', 0, -30, 0) call addlib('rexxarplib.library', 0, -30, 0) call addlib('rexxmathlib.library', 0, -30, 0) end /* First define some text strings and procedures. Here we assume * a Hayes compatible modem. If you have a different modem, you should * be able to change just the following three strings. * * Here's a set of responses that is given by Hayes modems: */ response = "OK" connectstr = "CONNECT 9600" busystr = "BUSY" nocarrierstr = "NO CARRIER" /* build a date-time string for report names */ rptdate='.'||compress(date('o'),'/')||'-'||time('h') forecastname="Forecast" || rptdate || ".txt" /* Here is a hangup script that may work for Hayes modems. * You could also just drop DTR if that works for you: * * hangupscript = "hangup" */ hangupscript = "on (OK) continue; send (+++); delay 2; send (ATH); " hangupscript = hangupscript || "on (OK) (); delay 1; send (*R*R)" /* This script I use to get the modem in line after changing parity. * You may be able to get away with not doing anything, like this: * * retrainscript = "" */ retrainscript = "on (OK) exit; $1: delay .3; send (AT*R); goto $1" /* name of VLT rexx port */ vltport="GetWeather" /* Okay, to the real work. First set the port to that of this invocation * of VLT. */ address command "runwsh VLT:VLT +u 2 +n" vltport address command WAITFORPORT vltport address value vltport /* Check if we're set up correctly without requesters coming up. * If not, call the setup program */ call pragma('W','NULL') /* * * Preset the cancel flag to something, announce who we're calling, * set baud and parity. Then do the first (predial) set of commands. */ vlt.CANCELFLAG = "start" "message (Dialing CompuServe…)" "baud 9600" "parity 7E1" "handshake Xon" "ansicolormode off" "volume 0" "buffersize 8192" "rendermode quick" "transfer Mode image" "transfer protocol Quickb" "xpr INIT OY" /* "xmodemmode 128 CRC" */ /* We may have changed parity, and the modem may need some time. */ if retrainscript ~= "" then retrainscript /* Send the modem string if any. */ "on ("response") continue; send (ATE0 Q0 V1 *X2AE1 X4*R*N); delay 5" /* Set up the "CONNECT" trap. Make it start postdial set of commands * if there are any. */ "trap add 314 install ("connectstr") (graphicslock on;screeng off; echo off; cancel $vltphone_wait connect)" /* Set up the BUSY and NO CARRIER traps. Note the use of the new feature * of the CANCEL command. */ "trap add 315 install ("busystr") (cancel $vltphone_wait busy)" "trap add 316 install ("nocarrierstr") (cancel $vltphone_wait nocarrier)" /* Send dial string and wait until the "pause" gets cancelled */ "$vltphone_wait: send (ATDT650-5143*R); pause" /* We got cancelled. See which event cancelled us. */ event = vlt.CANCELFLAG /* Remove the traps but only the ones we used. */ "trap remove 314 315 316" /* If we got connected, then do our thing. */ if upper(event) = "CONNECT" , then do "message (Connected to CompuServe)" "send (*R)" "wait (Host Name:) 3" "send (CIS*R)" "wait (User ID:) 3" "send ("userid"*R)" "wait (Password:) 3" "send ("password"*R)" "wait (!) 15" "send (go weather*R)" "wait (!)" 60 "send (1*R)" "wait (MORE !) 8" "cd AP:Headlines" "send (1*R)" "wait (local:) 5" "capture" forecastname "send (*R)" "wait (!) 15" "capture flush; capture off" "send (*R)" /* get weather menu again */ "wait (MORE !) 4" "cd AP:WeatherMaps" "send (4*R)" /* radar map */ "wait (!) 3" /* protocol */ "send (6*R)" /* xmodem */ "wait (is complete) 5" "send (Radar.wmap*R)" "file receive Radar.wmap" /* do the receive */ call grabamap(7,"ConusSat") call grabamap(9,"00_Weather") call grabamap(10,"24_Weather") call grabamap(11,"48_Weather") call grabamap(13,"Night_Lows") call grabamap(14,"24_Highs") call grabamap(18,"SCen_NA") "send (bye*R)" "wait (Host Name:) 20" hangupscript end /* If we need to resume, send a few hangups. */ if upper(event) = "RESUME" then hangupscript /* Check if we got an abort event. If so, quit. */ if upper(event) = "ABORT" , then "message (Aborted!)" "exit VLT quiet" exit 0 grabamap: procedure mapnum=arg(1) mapname=arg(2) "wait (MORE !) 3" "send ("mapnum"*R)" "send ("mapname".wmap*R)" "file receive" mapname".wmap" return
#140578From: Robert ComerApr 24, 1994 6:49 PM
Nice script! I've found your problem with the interactive quickb protocol requesters. It's just a matter of quickb is an autostarting proto call, so you don't want to do a "file receive" to start it, all that has to be done, is to send the file name<CR> at the CIS file name prompt, CIS will then start the transfer. Then you'll have to have VLT trap for the file transfer done message, to go on to the next map(s). (I'll fix up this part tonight, and if you want, I can send you what I've got.) Another couple of things I see in the script, is that your setting the parity to 7e1. This should probably be set to 8n1 unless you've got a wierd feed into CIS. You should also send the VLT command "strip on" to not get the garbled characters at startup that you would normally get if you login at 8n1 parity. (my modem couldn't handle the change to 8n1 to start the download with a parity of 7e1) Also, CTS/RTS handshaking might be a bit faster than Xon/Xoff. Bob Comer — Cruising the nets on Autopilot! Cheyenne, Wyoming U.S.A.
#140705From: Joe VeazeyApr 25, 1994 5:01 AM
Wow… Thanx for all the advice. BTW, I cannibalized this script from someone else, so I can't take all the credit. Yes, by all means when you get yours going, send it to me or upload it (I am sure there might be some other folks that would like to have these scripts.) Once I get mine going to my satisfaction, I shall upload it too.
#140660From: Robert ComerApr 24, 1994 11:38 PM
Here's the meat of your code back… It works pretty well now, though it's not waiting for the ":" character correctly, so I just put in a delay of 1 second to make things work. It probably could be sped up a little if I could figure out why it doesn't see the ":"'s. if upper(event) = "CONNECT" , then do "message (Connected to CompuServe)" "send (*R)" "wait (Host Name:) 3" "send (CIS*R)" "wait (User ID:) 3" "send ("userid"*R)" "wait (Password:) 3" "send ("password"*R)" "wait (!) 15" "send (go weather*R)" "wait (!)" 60 "send (1*R)" "wait (MORE !) 8" "cd AP:Headlines" "send (1*R)" "wait (local:) 5" "capture" forecastname "send (*R)" "wait (!) 15" "capture flush; capture off" "send (*R)" /* get weather menu again */ "wait (MORE !) 4" "cd AP:WeatherMaps" "send (4*R)" /* radar map */ "wait (!) 3" /* protocol */ "send (6*R)" /* xmodem */ "wait (is complete) 5" "wait (:) 1" "send (Radar.wmap*R)" call grabamap(7,"ConusSat") call grabamap(9,"00_Weather") call grabamap(10,"24_Weather") call grabamap(11,"48_Weather") call grabamap(13,"Night_Lows") call grabamap(14,"24_Highs") call grabamap(18,"SCen_NA") "send (bye*R)" "wait (Host Name:) 20" hangupscript end /* If we need to resume, send a few hangups. */ if upper(event) = "RESUME" then hangupscript /* Check if we got an abort event. If so, quit. */ if upper(event) = "ABORT" , then "message (Aborted!)" "exit VLT quiet" exit 0 grabamap: procedure mapnum=arg(1) mapname=arg(2) "wait (MORE !)" "send ("mapnum"*R)" "wait (:) 1" "send ("mapname".wmap*R)" return Bob Comer — Cruising the nets on Autopilot! Cheyenne, Wyoming U.S.A.
#140776From: Joe VeazeyApr 25, 1994 7:19 PM
I eventually converged on this code also. However, QuickB just doesn't seem to work on an A2232 board. I am seeing exactly the same symptoms under VLT that I see with AP: the script sends the desired map name to CIS, and then several garbage characters appear, and the download gets stuck waiting. I guess I'll have to rearrange my ports, and put the modem back on port 0 (the original serial port).
#140790From: Robert ComerApr 25, 1994 9:09 PM
Have you tried the bplus protocol? Maybe its implementation will work with the A2232. The code is pretty similar, but it might be worth a shot. Bob Comer — Cruising the nets on Autopilot! Cheyenne, Wyoming U.S.A.
#140920From: Steve AhlstromApr 26, 1994 2:55 PM
The XPR BPlus library is extremely buggy … I would not recommend it. -sja
#140963From: Terence FinneyApr 26, 1994 5:52 PM
FX: Wakes up blinking… Now that's interesting – no-one has reported XPR Bplus as being "extremely buggy" to me. There have been problems using it with NCOMM, but then this was so for Quick B too. The program seemed intent on filtering out the important control sequences before the protocol could see them, a problem I could never work around. It has always worked OK for me with TERM, both on an A500 and more recently on an A4000/030. I tested it on an earlier version of VLT and it worked fine then. I can't say for any later versions, I have stuck with TERM since for my interactive sessions. I was offline for quite a while last year, not the fault of BPlus I must add, so perhaps I missed the threads where BPlus was flamed to cinders? At the risk 3rd degree burns, what have other peoples experiences been? For serious CIS use, of course, everyone should use Autopilot if possible, as I do. 😉
#140966From: Steve AhlstromApr 26, 1994 6:13 PM
Terence, When I used it, it crashed and burned on me often, I switched back to the QB library. If you are interested, I could send you C source for a BPlus module (not XPR format) that is a relative stable implementation and includes realtime GIF display.
#141192From: Bob Dunlap IIApr 27, 1994 10:07 PM
>I was offline for quite a while last year, not the fault of BPlus I must >add, so perhaps I missed the threads where BPlus was flamed to cinders? >At the risk 3rd degree burns, what have other peoples experiences been? i have used term and the xprbplus.lib (v1.0) for about 1.5 years without any serious problems. i used xprquickb.lib for a year before that, again with out any major problems. i've used a hayes ultra & usr sportster 14.4k fax with baudbandit.device v1.4 and my modem locked at 19.2k. bob – 1:226/600.3@fidonet.org – zooming by in his TIE Interceptor on AutoPilot
#140484From: Dale LarsonApr 24, 1994 6:59 AM
Of course, AutoPilot will automatically display the weathermaps as they are being downloaded and allow you to save or not save them once they're on the screen. — Dale L. Larson, Intangible Assets Manufacturing — INTERNET:dale@iam.com
#140537From: Joe VeazeyApr 24, 1994 3:09 PM
Uh, not really. I am running this on a CBM a2232 multi-serial board, and there is (was, still?) a known problem with downloading weather maps from CIS with an A2232 port. Besides, as I said, this is done early morning via a cron task, and I don't want to be there at 0-dark-30 when it runs. However, this reminds me to check if this is still broken in AP with an a2232 board…..