![]()
Outpost Scripting Command Reference |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Date: December 27, 2021 (v3.5.1) General Functions and Statements
File Functions
String Functions
Message Statements and System Variables
Send/Receive Statements and System Variables
Other System Variables
' (single quote) Description The single quote starts the beginning of a comment. Everything after the single quote is part of the comment up until the end of the line. Syntax ' <comment> Example ‘Comments can begin as the first character x = x+ 1 ‘ or after a statement Notes 1. All comments are preceded with a single quotation mark.
+ - / * Description Arithmetic operators: OSL supports the standard arithmetic operations. All precedence rules apply. Syntax <var> = [var | number] <operand> [var | number] Example x = x + 1 x = x * (5 - y) / 4 Notes 1. When an expression has a mix of operators, the precedence of execution is multiple and division first, then addition and subtraction. 2. Expressions in parenthesis are always executed first. 3. Space are optional when formatting an expression.
; (semicolon) Description Command line continuation. Placing a semicolon at the end of a line allows you to add another command to the same line. Example x=x+1; y = y – 1 BBS = "K6FB-2"; TNC = "KPC3" Notes 1. Care should be taken with this feature since it may contribute to readability problems and debugging your script. < > = Description Relationship operators. These are operators are used as part of conditional tests made with WHILE…ENDWHILE and IF…THEN… ELSE statements. Example #1 IF X > 5 THEN #2 WHILE Y <= 12 Notes 1. The following relationship operators are defined: < less than <= less than or equal to > greater than >= greater than or equal to = equal to
Commands Description Assignments are statements that assign a value, variable, result of a function call, or arithmetic operation to another variable. Syntax <var> = [ number | string | <var> | expression | function ] Examples #1. Temp = "Weather.txt" #2. Result = X / (Y+5) #3. Fname = NEXTFILE(0) Notes 1. The rules of operational precedence apply to all arithmetic calculations. 2. There is limited type checking; use caution when mixing strings and numbers in an arithmetic expression.
Type System Variable Description Holds the Friendly Name of the BBS. This variable is used by the CREATEMESSAGE and SENDRECEIVE statements Syntax BBS = "<bbs_name>" | <var> Default = blank Example BBS = "LCARC Path1" ' Las Cumbres ARC's K6FB-2 BBS via AA6WK-7 Print("Checking BBS " & BBS) SENDRECEIVE Notes 1. The value that you assign to the BBS variable is the Friendly name of a BBS that is already defined in Outpost. Connect Names can also be used, but in the event of multiple BBS Friendly Name entries with the same Connect Name, the 1st BBS entry will be used (#817, #858, 16-May-10). 2. If this BBS is not set up in Outpost, at the time the Send/Receive session is attempted, Outpost will generate the message: “Either the Station ID, BBS, or TNC is not selected…"
Type System Variable Description Holds the BBS message number that was associated with the message retrieved from the BBS. Example Expire(BBSMSGNO) SendReceive Notes 1. This field is for display purposes only after retrieving a message.
Description Causes the PC to Beep Syntax Beep Example IF x > 5 THEN BEEP ENDIF Notes 1. Also, see the PLAY statement as an alternate annunciation option.
Description Defines the beginning of the OSL Script statements. Syntax BEGIN Example SCRIPT
VAR
x as Number x = 5 Print("The value of ’’x’’ is " & x) END Notes 1. This statement immediately following all variable declarations and before the first script statement. 2. After pressing NEW , this statement is 1 of 3 statements that are automatically inserted in the new script editing window. 3. Also, see the SCRIPT, END statements.
Description Clears the Runtime Monitor display. Primarily used for display formatting. Syntax Clear Example Loop : Print("Polling BBS " & BBS) Sendreceive Pause(5) Clear EndLoop Notes 1. Description Creates a message based on the assignment settings of the message-reserved variables and writes it to the Outpost message database. Syntax CreateMessage Example BBS = "K6FB-2" FROM= "KN6PE" TO= "K6TEN " SUBJECT= "Repeater Update" MESSAGE = ReadFile("RepeaterMessage.txt") MTYPE = "PRIVATE" CreateMessage Notes 1. All message reserved variables must be set prior to executing this statement. 2. Message-reserved variables are: BBS, FROM, TO, SUBJECT, MESSAGE, MTYPE 3. A valid message is written to the Outpost message database and is set for the next send/receive session. 4. Also, see: BBS, TNC, MYCALL, TACCALL, RETRIEVE, FILTER
Description System Predefined Variable. Inserts a Carriage Return / Line Feed (same as pressing the Enter Key) in a string so that a single string can display on multiple lines. Example Msg = "Hi Cap," & CRLF & "Hope all is well." & CRLF & "73, Jim" Notes 1. The CRLF is a variable and not part of the string that you define. It is appended to other portions of the string with an "&".
Description System Variable. Holds the retrieved message Date time as listed on the BBS and the Outpost message listing. Example Print(DATETIME) Notes 1. This field is for display purposes after retrieving a message. There is no effect to set this field.
Description Deletes the named file. Syntax DELETE( "file_name" | <var> ) Return none Example #1. Delete("weather-report.txt") #2. FName = "weather-report.txt" Delete(FName) Notes 1. In the event the file does not exist, is open, or is write-protected, the file will not be deleted and an error message will be displayed on the Runtime Monitor.
Description The last statement in the script, Required. Syntax END Example SCRIPT BEGIN Print("Hello World!") END Notes 1. This statement must be the last statement in the script. 2. After pressing " NEW ", this statement is 1 of 3 statements that are automatically inserted in the new script editing window. 3. Also, see the SCRIPT, BEGIN statements.
Description Tests whether the named file exists. Syntax EXISTS( "file_name" | <var> ) Return Number: 0 – FALSE 1 – TRUE Example #1. If EXISTS("weather-report.txt") = TRUE then
#2. FName = "weather-report.txt" Result = Exists(FName) IF Result = FALSE THEN : Notes 1. The function will return either a 0 or 1 depending on the outcome. 2. When using with the IF statement (1st example), use the System Variables TRUE or FALSE for the test.
Description Terminate Opscripts when encountered (#748). Syntax Exit Example SCRIPT BEGIN Print("Hello World!") Exit END Notes 1. This command is typically used whenever you want to run a script once from Outpost and terminate scripting when done. 2. Save your work before running with this command. It will exit without saving the script.
Description Delete a bulletin message that belongs to you (you previously posted). Syntax EXPIRE( 0 | Bbs_Msg_ID )
Example FindMessage(1, 4, "*WX ADVISORY*") ' 1=Intray, 4=Subj Field of Bull name MsgID = NextMessage(0)
WHILE MsgID > 0 ' One exists if greater than 0 IF FROM = "KN6PE" then ' is it from me? If so, its my Bulletin Print("Deleting " & subject) EXPIRE(0) ' set it up to delete this bulletin movemessage(MsgID,4) ' move the message to Archive Folder ENDIF
MsgID = NextMessage(0) ' get the next match, if any ENDWHILE
Notes 1. Use a “0” with the Expire command to use the BBS message number associated with the last message loaded by the NextMessage function. 2. In the above example, suppose you periodically post a bulletin message that contains the subject line phrase “WX ADVISORY”. This lets you find the message again so we can delete it when a new update comes along. 3. The user needs to test to determine if the message being retrieved is in fact a bulletin that (i) exists, and (ii) the user originally posted. Only the bulletin owner can delete a posted bulletin.
Description System Predefined Variable. Holds the string of concatenated filter values that will be used during a Filter Retrieval. Syntax FILTER
= "filter1:filter2:...:filtern" |
<var> Example #1. FILTER = "QST" #2. FILTER = "LINUX:KEPS:SOCTY" Notes 1. FILTER must be set if the "F" Filter Retrieve option is set. 2. All filters must be separated with colons ":". 3. The entire Filter assignment enclosed in quotations. 4. Any number of filters can be assigned to the FILTER variable.
Description Searches for and collects all file names that match a particular string pattern. Syntax FINDFILE( "pattern" | <var> ) pattern: some or all of the file name to match; use "*" to fill. For instance c:\data\WX*.txt : finds files that start with WX and end with .TXT *.* : finds all files in the current directory Example SCRIPT VAR NameOnly as string VAR FullName as string VAR ctr as number
BEGIN ctr = 0 FINDFILE("c:\data\*.txt") FullName = NextFile(0)
While Exists(FullName) = TRUE NameOnly = GetFileName(FullName)
Print(FullName & " -- " & NameOnly) FullName = NextFile(0) ctr = ctr + 1 ENDWHILE
Print("Files Found: " & ctr) END Notes 1. This function initializes the File Mask function allowing the NextFile function to retrieve each file that matches the mask. 2.
Each file returned will contain the equivalent amount of
the path as was set up. For
instance: 3. On entering another file mask, the retrieval is reset. 4. Use the "*" to match any character(s) between characters 5. See the NextFile Function
Description Searches all Outpost messages that match a particular string pattern. Syntax FINDMESSAGE( <folder>, <field>, <pattern> ) folder: A number corresponding to an Outpost folder to search. Valid numbers are: 1. InTray 2. Out Tray 3. Sent Folder 4. Archive Folder 5. Draft Folder 6. Deleted Folder
field: A number corresponding to an Outpost Message field to search. Valid numbers are: 1. BBS 2. FROM 3. TO 4. SUBJECT 5. MESSAGE
pattern: The string pattern to match. Wildcard use (KN6*) is allowed. Return none Example SCRIPT VAR MsgID as number VAR ctr as number
BEGIN ctr = 0 FindMessage(1,4,"NOAA*") MsgID = NextMessage(0)
while msgid > 0 Print("Found Msg: " & SUBJECT) MsgID = NextMessage(0) ctr = ctr + 1 endwhile
Print("Messages found: " & ctr) END Notes 1.
This function initializes the Message Mask function
allowing the NextMessage function to retrieve each message that matches the mask.
For instance: 2. On entering another message mask, the retrieval is reset. 3. Use the "*" to match any character(s) between characters 4. See the NextMessage Function.
Description Sets up to return the individual words found within a comma-delimited string. Syntax FINDWORD( "<string>" | <var> ) <string>: string contains individual words that need to be retrieved Example SCRIPT VAR ListOfBBS as string VAR SingleBBS as string VAR ctr as number
BEGIN ctr = 0 ListOfBBS = "K6FB-1, W6XSC-1, K6TEN , SANDIEGO" FINDWORD(ListofBBS) SingleBBS = NextWord(0)
While LEN (SingleBBS) > 0 Print("Next BBS name is " & SingleBBS) SingleBBS = NextWord(0) ctr = ctr + 1 ENDWHILE
Print("Number of BBSs Found: " & ctr) END Notes 1. This function initializes the String Search function allowing the NextWord function to retrieve each word from the array of comma-delimited words. 2. On entering another Word search, the retrieval is reset. 3. The list of strings must be in a set a quotes. Individuals words must be separated by commas. 4. See the NextWord Function
Description System Predefined Variable. Holds the call sign or tactical calls for the message From field. Syntax FROM = "<call_sign>" | <var> Default = blank Example From = "KN6PE" Notes 1. The FROM assignment is enclosed in quotations.
Description Returns the file name portion of a string that includes the file name and path Syntax <var> = GetFileName("<full_name>" | <var> ) Example SCRIPT Var FullName as String Var FileName as String
BEGIN FullName = "c:\data\Weather.txt" FileName = GetFileName(FullName) returns "Weather.txt" Print(FullName & " " & FileName) END Notes 1. This command is useful if you intend to create messages with the subject name embedded in it
Description Conditionally executes a block of statements dependent on the state of the condition. Syntax IF <condition> THEN <statements> [ ELSE <statements> ] ENDIF Example #1. If x > 5 THEN x = x + 1 ENDIF
#2. If x > 5 THEN Print(x) ELSE x = x + 1 ENDIF Notes 1. The ELSE statement is optional and not required 2. See Also: WHILE, LOOP
Description Returns the length of a string (number of characters) Syntax <var_name> = LEN("<string>" | <var> ) result : integer, indicates the number of characters in the string string : the string to be tested Example 1 SingleBBS = "K6FB-1" WordLen = LEN(SingleBBS) Example 2 SingleBBS = "K6FB-1" While LEN(SingleBBS) > 0 <statements to loop> endwhile Notes 1. The only way to exit this loop is to press the "STOP" button on the Runtime control form. 2. See Also: IF, WHILE
Description System Predefined Variable. Holds the Local Message ID (LMI) if enabled in Outpost for incoming messages. Syntax LMI = “[ blank | <LMI value>” Default = depends on Outpost setting Example 1 None Notes 1. This field is for display purposes after retrieving a message. There is no effect to set this field. 2. See the Outpost Users Guide for a description of LMI.
Description Continuously loops on a block of statements Syntax LOOP <statements> ENDLOOP Example LOOP SendReceive Pause(300) ' Pauses for 5 minutes ENDLOOP Notes 1. The only way to exit this loop is to press the "STOP" button on the Runtime control form. 2. See Also: IF, WHILE
Description System Predefined Variable. Holds the body of the message. Syntax MESSAGE = "<message text>" | <var> Default = blank Example #1. Message= "Hi Vince, All is still OK here. 73, Jim" #2. Message= ReadFile("Message.txt") Notes 1. Use a string assigned to MESSAGE for short messages. 2. Use the ReadFile() function to read in the contents of a file to set the message. See Script example #3.
Description Moves the named file from one location to another. Syntax MOVEFILE( <path\file_name>, <dest_path> ) path\file_name : The current path and file name of the file to be moved dest_path : The Path only of where the file will be moved. Do not include any trailing back slashes Return none Example #1. MoveFile( "c:\data\wx.txt", "c:\data\sent" ) #2. MoveFile( InName, "c:\data\sent" ) Notes 1. If the source file is not found, a runtime error will occur and the script will stop. It is recommended that you check for the presence of the file with the Exists() function prior to moving or reading a file.
Description Moves a message from one Outpost folder to another. Syntax MOVEMESSAGE( <msg_id>, <folder_no> ) Msg_id: Outpost message pointer. Usually returned by the NextMessage statement folder_no: is defined as: 1. InTray 2. Out Tray 3. Sent Folder 4. Archive Folder 5. Draft Folder 6. Deleted Folder Return none Example #1. MoveMessage(MsgID, 4) message is moved to the Outpost archive folder #2. MoveMessage(MsgID, 6) message is moved to the Outpost deleted folder Notes 1. The Message ID is an internal Outpost identified not typically used in the normal operation from the Outpost forms. From an OSL perspective, the Message ID typically comes from the NextMessage function. 2. Any folder value other than those listed above will cause and error and the script to stop.
Description System Predefined Variable. Holds the message type for a message being created. Syntax MTYPE= "PRIVATE" | "NTS" | "BULLETIN" Default = blank Example #1. MTYPE = "Private" #2. MTYPE = "NTS" Notes 1. Only one message type can be set for each message. If more or set, the last Message Type set will the one applied the next time the CreateMessage statement is executed. 2. If not provided, MTYPE defaults to "PRIVATE"
Description System Predefined Variable. Holds the value of the Call Sign that is used to initialize the interface. This variable is used by the SendReceive statement. Syntax MYCALL = "<call_sign>" | <var> Default = blank Example MYCALL = "KN6PE"
Notes 1.
If left blank, then Outpost will use the currently defined
Call Sign as defined from Outpost's
Description Retrieves the next file name that was previously collected by the FindFile function Syntax <var_name> = NEXTFILE( 0 ) Return String: Next file name (only) that matches the pattern If non-blank, valid file name If blank (null string), no file found, or reached the end of the list Example SCRIPT VAR NameOnly as string VAR FullName as string VAR ctr as number
BEGIN ctr = 0 FINDFILE("c:\data\*.txt") FullName = NextFile(0)
While Exists(FullName) = TRUE NameOnly = GetFileName(FullName)
Print(FullName & " -- " & NameOnly) FullName = NextFile(0) ctr = ctr + 1 ENDWHILE
Print("Files Found: " & ctr) END Notes 1. This function retrieves the next file previously initialized by the FindFile function. The function returns the file name with whatever path was set up as the FindFile() parameter. 2. The parameter "0" is required. This is for future use. 3. Each time this function is called, the next file that matches the mask is returned. 4. When there are no other matches, a blank string is returned. Use the EXISTS() Function to test whether a valid file name was returned.
Description Retrieves the next message ID that was previously collected by the FindMessage function. Syntax <var_name> = NEXTMESSAGE( 0 ) Return Integer: next file that matches the pattern If > 0: a valid Outpost message ID If = 0: no message found, or reached the end of the list Example SCRIPT VAR MsgID as number VAR ctr as number
BEGIN ctr = 0 FindMessage(1,4,"NOAA*") MsgID = NextMessage(0)
while MsgID > 0 Print("Found Msg: " & SUBJECT) ‘ only print the subjects MsgID = NextMessage(0) ctr = ctr + 1 endwhile
Print("Messages found: " & ctr) END Notes 1. This function retrieves messages based on the selection criteria set up by the FindMessage() function. 2. The Parameter "0" is required. This is for future use. 3. Each time this function is called, the next message that matches the mask is returned. 4. When there are no other matches, a value of 0 is returned. Use an IF… Then to test whether there is a valid message returned.
Description Retrieves either the sequentially next word or a specific word that was previously collected by the FindWord function Syntax <var_name> = NEXTFILE( <index> ) index:
0 (zero), returns the next word from the list Return String: Next word name that was set up If non-blank, valid word name If blank (null string), no word found, or reached the end of the list Example 1 SCRIPT VAR SingleBBS as string VAR ctr as number
BEGIN ctr = 0 FINDWORD("K6FB-1, W6XSC-1, K6TEN , SANDIEGO") SingleBBS = NextWord(0)
While LEN (SingleBBS) > 0 Print("Next BBS name is " & SingleBBS) SingleBBS = NextWord(0) ctr = ctr + 1 ENDWHILE
Print("Number of BBSs Found: " & ctr) END Example 2 SCRIPT VAR SingleBBS as string VAR ctr as number
BEGIN ctr = 4 FINDWORD("K6FB-1, W6XSC-1, K6TEN , SANDIEGO") SingleBBS = NextWord(ctr)
While ctr > 0 Print("Next BBS name is " & SingleBBS) ctr = ctr - 1 SingleBBS = NextWord(ctr) ENDWHILE
END Notes 1. This function retrieves the next word previously initialized by the FindWord function. 2. If the parameter is 0 (zero), then the next sequential word is returned.. 3. If the parameter is > 0, then the word that is indexed by the parameter is returned. 4. A parameter is less than 0 or greater than the count of the number of words will returned a blank string. 5. For sequential (0) calls, each time this function is called, the next word is returned. The original string is not affected. 6. When there are no other matches, a blank string is returned. Use the LEN() Function to test whether a string with any length was returned.
Description System Predefined Variable. CONSTANTS Notes 1. Can be used as a setting and for checking. ON = 1, OFF = 0
Description Sets how Opscripts will handle specific types of errors Syntax ONERROR [ STOP | PAUSE | CONTINUE ] Default = STOP Example OnError STOP : ONERROR CONTINUE Delete(fname) : OnError STOP Notes 1. Setting a STOP condition will cause the script to report the error on the Runtime form, and stop execution of the script. 2. Setting a PAUSE condition will pop up a box telling the user to either press STOP to stop processing the script, or RESUME to continue 3. Setting a CONTINUE condition will indicate on the Runtime form that an error occurred, and we are continuing anyway. 4. ONERROR is used to handle the following situations:
-- Divide by zero 5. Once an ONERROR condition is set, all errors after that point will be processed with that setting that until a different ONERROR condition is set.
Description Causes the script to pause. Syntax PAUSE( seconds ) Example #1. pause(60) Pauses for 60 seconds
#2. pvalue = 60 Pause(pvalue) Pauses for 60 seconds
#3. pause(0) Script stops, waits for user interaction Notes 1. Any value greater than zero will cause the script to pause for the number of seconds indicated. Once this statement is called, the script pauses and the time remaining will count down and be displayed in the lower right portion of the status bar. 2. A value of "0" will cause the script to pause, and requires the user to press the Resume button on the Runtime Monitor window. This may be useful when there is something that the user needs to do prior to letting the script proceed.
Description Causes the script to play the named .wav file. Syntax PLAY( "wav_file_name" | <var> ) Example #1. Play("tada.wav")
#2. WavName = "tada.wav" Play(WavName) ' same, with string variable Notes 1. The file must be locatable either by a fully qualified path or by the system path statement. 2. In the event the file is not found, ot there is no sound card on your PC, the PC will sound a"beep."
Description Writes a text string to the Runtime Monitor window. Syntax Print( "<string>" [ & "<string>" | <var> ) Example #1. Print(15) prints the number 15
#2. x = 15 set "x" to 15 Print(x) print "x"; same result as above
#3. Print("Starting Process") print a string
#4. x = x + 1 use "x" as a counter Print("Pass #" & x) print a string and variable
#5. FName = "Weather.txt" assign a file name to Fname Print("The file is " & FName) Notes 1. Print will output a single or concatenated string to the runtime monitor window. 2. Multiple string components can be added and separated by an ampersand "&" sign. 3. Content can be a mix of explicit string values and variables.
Description Reads the content of the named file and assigns its contents to a string variable. Syntax READFILE( "file_name" | <var> ) Return String: file contents Example #1. x = ReadFile("c:\data\wx.txt") #2. MESSAGE = ReadFile(Fname) Notes 1. In the event the file does not exist, or the path is wrong, a "file not found" message is displayed, and the script continues to run.
Description System Predefined Variable. Holds the string representation of the types of messages to be retrieved. This variable is used by the SENDRECEIVE statement. Syntax RETRIEVE = <"P" "N" "B" "F"> Default = "P" Example #1. RETRIEVE = "P" retrieve only Private messages #2. RETRIEVE = "PNB" retrieve all message types #3. RETRIEVE = "PF" retrieve Private and Filtered; requires Filters to be set Notes 1. The coding for RETRIEVE is as follows: P = Private messages N = NTS messages B = Bulletins F = Filtered 2. If the "F" Filter and "B" Bulletin options are both set, then only the "F" Filter option will be used and the "B" will be ignored. 3. If the "F" Filter option is set, then the Filter string must also be set. If Filter string is not set, then the "F" Filter option is ignored. 4. RETRIEVE must be set prior to the next SendReceive statement.
Description Causes the script to run a program, and does not wait for the program to complete before continuing with the script. Syntax RUN ( "exe_file_name" | <var> ) Example #1. Run("notepad.exe") #2. Run(PName) Notes 1. The executable file must be locatable either by a fully qualified path or by the system path statement. 2. In the event the program does not exist, a "program not found" message is displayed, and the script continues to run.
Description Causes the script to run a program, and will wait for the program to complete before proceeding with the rest of the script. Syntax RUNW( "exe_file_name" | <var> ) Return none Example #1. Runw("notepad.exe") #2. Runw(PName) Notes 1. The executable file must be locatable either by a fully qualified path or by the system path statement. 2. In the event the program does not exist, a "program not found" message is displayed, and the script continues to run.
Description The first OSL statement that appears in the file. Example SCRIPT BEGIN Print("Hello World!") END Notes 1. This must be the first OSL command in the script file. 2. After pressing NEW , this is 1 of 3 statements that are automatically inserted in the new script editing window. 3. Also, see: BEGIN, END
Description Initiates an Outpost send only session based on the settings of the system variables. Messages in the out tray will be sent. No check for incoming messages is made. Syntax SENDONLY Example FROM = "KN6PE" TO = "K6KP" SUBJECT = "Will miss tonight's net" MESSAGE = "Stuck in traffic. Start the net without me." & CRLF & "Jim KN6PE" MTYPE = "P" CREATEMESSAGE SENDONLY Notes 1. All session-specific variables must be set prior to executing this statement. 2. Related System variables used by the SendOnly statement are: BBS, TNC, MYCALL, TACCALL 3. Opscripts does not perform any error checking on the existence of the BBS and TNC names entered on these variables. On a SendOnly error, Outpost will report the problem, not Opscripts. 4. Outpost must be running for this statement to work. An error will occur if Outpost is not running.
SendReceive Description Initiates an Outpost send/receive session based on the settings of the system variables. Syntax SENDRECEIVE Example MYCALL = "KN6PE" BBS = "K6FB-2" TNC = "KPC3" RETRIEVE = "PB" SENDRECEIVE Notes 1. All session-specific variables must be set prior to executing this statement. 2. Related System variables used by the SendReceive statement are: BBS, TNC, MYCALL, TACCALL, RETRIEVE, FILTER 3. Opscripts does not perform any error checking on the existence of the BBS and TNC names entered on these variables. On a Send/Receive error, Outpost will report the problem, not Opscripts. 4. Outpost must be running for this statement to work. An error will occur if Outpost is not running.
Description System Predefined Variable. Holds the subject for this message. Syntax SUBJECT = "<subject text>" | <var> Default = blank Example #1. Subject = "Status of the W6TDM Repeater" Notes 1. Subject Line prefixes will be inserted based on Outpost settings.
Description System Predefined Variable. Holds the value of the tactical call. This variable is used by the SendReceive statement. Syntax TACCALL = "<tac_call>" | <var> Default = "-" Example #1. TACCALL = "CUPEOC" sets tactical call to CUPEOC #2. TACCALL = "-" turns off tactical call Notes 1. TacCall is turned off by setting the variable to "-".
Description System Predefined Variable. Holds the value of the TNC. This variable is used by the SENDRECEIVE statement. Syntax TNC = "<TNC_name>" | <var> Default = blank Example TNC = "KPC3"
Description System Predefined Variable. Holds the call signs or tactical calls of the users for whom this message is intended. Syntax TO = "<call_sign> [, 2nd_address ]" | <var> Default = blank Example #1. To = "KN6PE" #2. To = "KN6PE, SMTP:kn6pe@arrl.net" #3. DistList = "K6KP, W6TDM, SMTP:kn6pe@arrl.net" To = DistList Notes 1. All standard address rules are in force when addressing messages to a Winlink station.
Description System Predefined Variable, CONSTANTS, used as part of a conditional test. Example IF Exists(Fname) = TRUE then Notes 1. TRUE and FALSE can be used to check for this case. Additional functions may be added in the future to take advantage of this.
Description System Predefined Variable. Holds the outgoing message URGENT Flag. Syntax URGENT = TRUE | FALSE Example #1. URGENT = TRUE #2. URGENT = FALSE Notes 1. Once the URGENT flag is set, it is applied to all subsequent created messages. It is recommended that you explicitly declare whether a message should be URGENT or not. 2. Initially, URGENT defaults to FALSE.
Description Creates a valid full-path file name from a path and name components. This is typically used when creating files from Outpost messages, and there may be invalid file name characters in the Subject name. Syntax <var_name> = ValidFileName(<path>, <name>) Example SCRIPT Var FullName as String Var FixedName as String
BEGIN SUBJECT = "CUP103: //Weather report//" FixedName = ValidFileName(SUBJECT) FullName = "c:\data\" & FixedName Print(FullName) END Notes 1.
The following 9 characters work for Outpost subjects but are invalid file name characters: 2. The ":" character will be replaced with a ";" 3. The / \ * ? | < > " characters will be replaced with a "~" 4. So, in the above example, the FixedName is set to… CUP103; ~~Weather report~~
Description Declares a user-defined variable that can be subsequently assigned and manipulated Syntax VAR <var_name> AS [STRING | NUMBER] Example Script VAR Fname as string VAR str as string VAR x as number BEGIN Notes 1. All user-defined variables must be defined after the SCRIPT statement and before the BEGIN statement 2. All variables must start with a letter and may follow with any combinations of letters or numbers. Punctuations are not allowed 3. Var types are String or Number
Description Executes a block of statements as long as the condition is true. Syntax WHILE <condition> <statements> ENDWHILE Example SCRIPT VAR Fnames string BEGIN FINDFILE("c:\data\" & "*.txt") Fname = NextFile(0) While Exists(Fname) = TRUE Print(Fname) Fname = NextFile(0) ENDWHILE END Notes 1. See Also: IF, LOOP
Description Writes data to a named file Syntax WRITEFILE( <data>, "<file_name>" | <var> ) data: a text string or variable of the data to be written file_name: a string or variable of the name of the file to be created Example #1 SCRIPT VAR MsgID as number BEGIN FindMessage(1,4,"NOAA*") ‘ set up the msg search MsgID = NextMessage(0) ‘ loads the current msg while msgid > 0 Print("Found Msg: " & SUBJECT) WriteFile(MESSAGE, Subject & ".txt") MsgID = NextMessage(0) endwhile END Example #2 ' Add a line of text to an existing file SCRIPT VAR Fname as string ' holds the name of a file VAR Fdata as string ' holds the contents of the file
BEGIN Fname = "C:\data\Master.ini" ' set the file name Fdata = ReadFile(Fname) ' Read the file contents
Fdata = Fdata & CRLF & "Cmd=0" ' append a line of text WriteFile(Fdata, Fname) ' Write the new file contents END Notes 1. Any content can be written to a file. If the file already exists, it will first be deleted. 2. The data to be written can be the explicit string in quotations, or a variable containing the string. 3. In the first example, the NextMessage loads the next message and all its variables into the system variables: BBS, FROM, TO, SUBJECT, MESSAGE. The WriteFile statement writes the content of the variable MESSAGE (the current Outpost message) to the file by the name "<subject>.txt"; the file has the subject string in the title. 4. In the 2nd example, this is a way to append data to a file. Essentially, read the contents, append the addition, and write it back.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||