Script functions in Kiwi CatTools
Kiwi CatTools includes several built in functions available to Client scripts. Use the "cl." prefix to access a function from the client. For example:
cl.Log 1, "Expected response not received from command ..."
Functions
ConnectHost() As Boolean
- Attempts to connect to the current host specified in
CurDevHostAddress.True= the connection is successful.- A warning message is logged if a connection attempt fails.
- The connection is attempted three times before failing. After three failed attempts, an error message is logged.
ConnectHostSingleAttempt() As String
- Attempts to connect to the current host specified in
CurDevHostAddress. - If the connection is successful, a value of "
OK" is returned. Otherwise the error description is returned. - This function is called 3 times by
ConnectHost.
ConvertToFilename(Filename as variant) As String
- Converts a device name into a suitable filename.
- Replaces any invalid characters in the filename with an underscore, including quotes and spaces. The following characters are considered invalid in a filename:
"&+?:;,()=|\/<>*^%@
CreateFile(Filename) As Boolean
- Attempts to create the specified file even if the path does not exist.
- If the file already exists, no action is taken.
- If the file does not exist, the path and a file are created. The file is 0 bytes in length.
CurrentDateStamp(Format as long) as String
- Returns the current date formatted based on the value of "
Format". Formatvalues:0= ISO Format (YYYY/MM/DD)1= US Format (MM/DD/YYYY)2= UK Format (DD/MM/YYYY)
CurrentDateTime(Format as long) as String
- Returns the current date and time formatted based on the value of "
Format". Formatvalues:0= ISO Format (YYYYMMDDHHNNSS)1= US Format (MMDDYYYYHHNNSS)2= UK Format (DDMMYYYYHHNNSS)
CurrentDateTimeStamp(Format as long) as String
- Returns the current date and time without separators, formatted based on the value of "
Format". Formatvalues:0= ISO Format (YYYY/MM/DD HH:MM:SS)1= US Format (MM/DD/YYYY HH:MM:SS)2= UK Format (DD/MM/YYYY HH:MM:SS)
DBCheckScheduleOption(ScheduleNumber, Option Number) As Long
- Returns the activity specific option check box value.
0= unchecked1= checked.
- Each activity has 10 optional data values that can be set for the activity. Pass the activity number and an option value - from 1 to 10 - and the return value of the specific option check box is returned.
- Refer to the activity .ini file for details of each specific option.
Sub DBDevicesClearCurDevFields()
- Clears all the current device variables and sets them to
"".
Sub DBDevicesGetAllFields(DeviceName)
- Locates the specified device in the database and loads all the fields into the CurDevXXX variables.
- To check if the function worked:
check len(CurDevName) > 0
Function DBDevicesGetField(DeviceName, FieldName) as Variant
- Returns the data contained in the field "
FieldName" of device "DeviceName" from the database file. - Returns blank if the data retrieval fails.
Function DBScheduleGetField(ScheduleNumber, FieldName) as String
- Returns the data contained in the field "
FieldName" of activity "ScheduleNumber" from the database. - Returns blank if the data retrieval fails.
Function DeleteFile(Filename) As Boolean
- Deletes the specified file and returns true or false based on if the file exists after the delete attempt.
True= File deleted.False= File still exists and was not deleted successfully.
Sub DisconnectHost()
- Closes the active connection to the current device
Function FileExists(Filename) As Boolean
- Tests to see if the specified file exists.
True= the file is found.False= the file is not found.
Sub FlushRxBuffer()
- Flushes the data found in the receive buffer and waits until there is no further data being received from the active socket.
Sub InfoUpdate(Message)
- Sends an info update message back to the main program.
Sub LogToFile(Filename, Data, Append)
- Opens a file for writing. Writes the data stored in
Datato the file.Append = 1, the data is appended to the end of the file.Append = 0, the file is overwritten with the new data.
Function Ping(Hostname As String, Timeout As Long, PingCount As Long, ProcessID As Long) As String
- Attempts to ping the host name and returns the results in the format:
!!!!! TAB 100% TAB 10 TAB 100 TAB 80 or ..... TAB 0% TAB TAB TAB
Hostnameis the IP address or hostname of the device to ping Timeout is in seconds. The default is 5 seconds.PingCountis the number of Ping echo requests to send. Default is 5 pings.ProcessIDis the current processID (cl.ProcessID). This is used to identify the sent ping packets so that the responses can be tied back to the correct process that sent them.
- The min, max and average response times are calculated from any ping echoes received.
- The return data is tab delimited for easy parsing and reporting.
Function ReadFromFile(Filename) As String
- Reads the contents of the specified filename and returns the data as a string value.
- A
""value is returned if the file doesn't exist or contains no data.
Function ReplaceClientFilenameVariables(Filename) As String
- Replaces the
%Variable%item with the associated value.%AppPath%= cl.AppPath%GroupName%= cl.CurDevGroup%DeviceName%= cl.CurDevName%DateISO%= cl.CurrentDateStamp(0) ("YYYY-MM-DD")
Sub SaveResults(Data, Append)
- Saves results data into separate files.
- The file name is created from the device name and
UniqueFileIDset in the Main script in the format:Filename =
cl.AppPath+ "\ClientTemp\" +UniqueFileID+ConvertToHex(DeviceName)+ ".txt" DeviceNameis converted to hex format to remove any invalid characters present.
Sub SendData(MessageText)
- Sends the string in
MessageTextto the current connection.
Function WaitForMultData(Mult, Choices, Timeout) As Long
- Monitors the
RxBufferfor data contained in theMult()array. - If a match is found, the array index value is returned.
- A return value of
0indicates that no match was found before the timeout occurred.
- A return value of
- The timeout is specified in seconds and the variable
cl.RecDataTimeOutis usually passed as this value. - Choices indicates the number of elements in the
Multarray. For example:Mult(1) = "Login:" Mult(2)= "Password:", Choices=2
Function ReplaceControlChrs(Message) As String
- Replaces any control characters less than ASCII value of 32 with a text string of the numeric value.
- For example: A tab character (ASCII 9) becomes
<009>. - This is used when logging debug data to the display or file for later analysis.
cl.Log
Sub Log(Priority, Message)
- Sends a log event message back to the main program.
- Use one of the following priority codes to classify the message:
4= Debug3= Info2= Warning1= Error