home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fish 'n' More 2
/
fishmore-publicdomainlibraryvol.ii1991xetec.iso
/
dirs
/
handshake_449.lzh
/
HandShake
/
HandShake_ARexx.doc
< prev
next >
Wrap
Text File
|
1991-02-02
|
12KB
|
261 lines
-----------------
/\/\
/ / \
---/ / /\ \-----
\/ \
Hand / Shake Version 2.20a
---\ / /-----
\ / /
\/\/
-----------------
The HandShake/AREXX Interface
-----------------------------
HandShake has an AREXX port as of version 2.20a. This allows other
programs to issue commands to HandShake, as well as providing a script
language for HandShake. To use this feature, you must own a copy of AREXX
which is available from you local dealer or directly from William Hawes.
HandShake deals with both AREXX commands and AREXX functions. When
HandShake starts up, it will declare itself as an AREXX function host.
Any AREXX macro which contains calls to the HandShake functions while
HandShake is running will send them to HandShake.
In order to send commands to HandShake, it is nesessary to issue an
ADDRESS or SHELL command from the macro of the following form:
ADDRESS 'HANDSHAKE' or
SHELL 'HANDSHAKE'
Note that the word HANDSHAKE must be in upper case. The name of the
HandShake AREXX port is 'HANDSHAKE'. External programs can send commands
or functions directly by sending correctly formatted Rexx Messages to
this port.
Below is a list of the commands which can be sent to HandShake.
NOTE: The case of the command or function name is not important to
HandShake.
COMMANDS
--------
HS_BAUD baud_rate Sets the baud rate. The baud rate parameter can
be any valid Amiga baud rate.
HS_COLOR Causes HandShake to go into color (3 bit plane)
mode. This command will fail if any windows are
open on the HandShake screen.
HS_DATABITS stop_bits Sets the number of data bits. This parameter must
be '7' or '8'.
HS_DELAY seconds Causes macro execution to pause for the specified
number of seconds.
HS_ENDASCII Causes an ASCII receive to finish.
HS_GETLENGTH Sets the number of additional characters that are
returned with the matched part of a string from
the HS_GETSTR command. By default this is set to
zero.
HS_HANGUP Hang up the phone (Disconnect from the other host).
HS_HIDE Place the HandShake screen behind all other screens.
HS_MONO Causes HandShake to go into monochrome (2 bit
plane) mode. This command will fail if any windows
are open on the HandShake screen.
HS_PARITY parity Sets the parity. The parameter must be one of:
NONE, ODD, EVEN, SPACE, MARK.
HS_PROTOCOL protocol This command sets the file transfer protocol for
subsequent file transfers. The protocol must be
one of:
ASCII
XMODEM
XMODEM/CRC
YMODEM
YMODEM/BATCH
KERMIT/TEXT
KERMIT/8BIT
KERMIT/7BIT
HS_SHOW Place the HandShake screen infront of all other
screens.
HS_STOPBITS stop_bits Sets the number of stop bits. This parameter must
be '0' or '1' or '2'.
HS_TIMEOUT seconds This sets the timeout value for the GETSTR()
function. If no match is found within the
specified number of seconds. The GETSTR() function
will abort and return the string HSERR_TIMEOUT.
HS_QUIT This command will cause HandShake to terminate. It
will fail if any windows are open on the HandShake
screen.
Below is a list of the functions which can be sent to HandShake.
NOTE: The returned value 'r' is a boolean value of '0' for failure or '1'
for success unless otherwise noted.
NOTE: When calling AREXX functions, the openning parentheses must
immediately follow the function name with no intervening white space.
r = HS_DIAL(dial_str) This function dials a host system. The
dial_str is a string of one of the following
forms:
'phone_number:baud_rate,data_bits,parity,
stop_bits[*]' or
destination_name[*].
HandShake makes a decision about which form is
being used, based on the first character. if
it is a numeric digit. If it is, it is assumed
to be a phone_number string. If it is non-
numeric, it is assumed to be a destination
string.
Note that the optional
trailing '*' forces auto-redial.
Following are some correct dial strings:
'123-4567:2400,8,n,1'
'1-(555)-555-5555:1200,8,e,1*'
"Fred's BBS"
'BIX'
'John my brother'
'555-5555:1200,7,e BIX*'
The parameters after the phone number are
optional, but they must be specified in the
order if present. A destination_name is the
name of an entry in the dialing directory.
For a more complete description of dial
strings,see the file HandShake.doc.
r = HS_GETSTR(str1,str2,..) This function waits for one of the specified
strings to arrive on the serial port. The
first match will cause the funtion to return
the string that was matched. If HS_GETLENGTH is
set to a non-zero value, that number of additional
characters will be returned wil the matched string.
HS_GETSTR will wiat for a match for the number
of seconds specified by the HS_TIMEOUT command
(see above). Upon completion, it will return
either the matched string plus the next
HS_GETLENGTH characters, or 'HSERR_TIMEOUT'
in the event of a timeout.
r = HS_LOADPARMS(file_name) Load a parameter file. This is the same as
selecting the load parameters item
from the PROJECT menu. This function will
fail if there are any windows open on the
HandShake screen.
r = HS_RECEIVE(file_name) This function causes HandShake to go into
file receive mode. This file is received
using the protocol selected by the PROTOCOL
command (see above). If one of the batch
protocols (Kermit or Ymodem Batch) is being
used, the file name parameter is the
destination path name and must be terminated
with a '/' or a ':'
if ASCII protocol is selected, this function
only starts the receive. To terminate the
ASCII receive, use the ENDASCII command
described above.
r = HS_SAVEPARMS(file_name) Save current parameters to a file. This is
the same as selecting the save parameters
item from the PROJECT menu.
r = HS_STRING(char_str) This function sends the specified string
out the serial port. No carriage return is
sent. A carriage return is not automatically
appended. If you wish to send a carriage
return of any other control character, it must
be formatted into the string. onw way of doing
this is illustrated below:
/* Assign some characters to variables.*/
cr = '0d'x
esc = '1b'x
/* Send a string without a carriage return */
r = hs_string('No carriage return')
/* Send a string with a carriage return */
r = hs_string('With carriage return'cr)
/* Send an escape sequence */
r = hs_string(esc'[0m')
The same technique could be used to define an
ESCAPE character for instance.
Any Features of the AREXX language can be used
to build the string to be sent.
r = HS_TRANSMIT(file_name) This function causes HandShake to go into
file transmit mode. The file is transmitted
using the protocol selected by the protocol
command (see above). If one of the batch
protocols (Kermit of Ymodem Batch) is being
used, the file name parameter can contain
AmigaDOS wild card characters.
INVOKING AREXX MACROS FOR USE WITH HandShake
--------------------------------------------
There are five ways to invoke an AREXX macro for use with HandShake:
1) From a workbench CLI window.
2) From a HandShake CLI window.
3) From the RUN MACRO item in the AREXX menu.
4) From the HandShake command line.
5) From a HandShake Project icon.
The first two methods are the same as running any other AREXX macro from
the command line. In the first case just invoke the macro from any
workbench WSHELL, AmigaShell or CLI window (or anybody elses shell for
that matter.
In order to make it easier to run macros (especially those that require
parameters from the command line) HandShake lets you open a CLI window
on the HandShake screen if you have William Hawe's CONMAN console
editing/manager running on your system. This is done by selecting the
DOS window item from the AREXX window. HandShake will first try to start
a WShell ( William Hawe's wonderfull shell), Then an AmigaShell and
finally a CLI window on the HandShake screen. You can have as many of
these DOS windows open as you like. Beware that some commands or functions
sent to HandShake will not work if there is a window open on the HandShake
screen. This is because some operations cause HandShake to close its
screen (either temporarily or permanently), and this cannot be safely done
with windows open on the screen. If the macro is run from a CLI on the
workbench screen all commands and functions sent to HandShake by AREXX
will function normally.
The third method can be used to run any AREXX macro which does not take
any command line parameters. The RUN MACRO menu item will open a file
requester. Just select the file which contains the AREXX macro which you
would like to run. All commands and functions sent from AREXX to HandShake
work when using this method.
The Fourth method allows you to have HandShake invoke an AREXX macro as
it starts up. just specify the -m switch on the command line followed by
the macro name. For instance:
HandShake -m readbix
will invoke the READBIX.REXX macro. If a dial descriptor is included
on the command line, the dial activity will take place before the macro
is invoked.
The fifth method can be used when invoking HandShake from an icon. If
there is a Tool Types array entry in the icon of the form:
MACRO=READBIX
it will be invoked when HandShake is started. If there is also a
DIALUP= Tool Types entry, the dial activity will happen first.