VB ROBOT PAGER DOCUMENTATION (Draft only):



DESCRIPTION:

This program is a Visual Basic 3.0 executable that reads pager files from a shared network directory and then dials up the Telecom pager network and transfers the information in the pager file, using a TEL424 Modem via the PSTN. The pager file is then deleted and a log file is updated with the page details.

FILES:

DIRECTORYS:

(Currently non-configurable) uses

The F:\UTILS\PAGER\SEND directory is scanned every 5 secs by the Robot.

INSTALLATION

The program requires a Windows compliant PC with a TEL424 Modem and PSTN line. On boot-up the PC should login in as a Novell user (e.g. PAGEGATE) , with the rights above, and automatically run Windows. The ROBOT PAGER executable is run by installing its ICON in the Windows STARTUP GROUP. The autoexec.bat file of the Novell user should also include:- CAST OFF ALL To prevent the robot being interupted by Novell Msgs

RELIABILITY (Current version)

The Robot at Sturt St was last rebooted on 21\4\94, approx two months ago. The Sturt St Robot is currently averaging 1500 page's per week.

KNOWN BUGS:

  1. Still get some reports of users being paged twice with same message & time stamps.
  2. Program is dependent on the reliability of the Telecom Pager Network and the PSTN.
  3. Doing large group pages in the late afternoon may not always be successful i.e. Some employees turn their pagers off at 17:00!
  4. You may create a file sharing conflict with the Robot if you load "todays" LOG file in to a editor (Read\Write)

SUPPORT:

I am currently the only person supporting this program, I can not gurantee to do this indefinetly. Consequently I intend to make the program as user-configurable as technically feasible. All new ideas are welcome, preferably fairly general suggestions. I would prefer not to have to customize the program for each site.

LEGAL ISSUES

The program was developed on a legal personal copy of Microsoft Visual Basic 3.0. Legal installation of the program is the responsibility of the client.

PLATFORM CHOICE

The program was written to run under Windows because I assumed in a couple of years there would be no PC\AT PCs left to run DOS programs on. (Joking, of course??) Hopefully the program could co-exist with some Drift For Windows Robots (CDN-B\S), providing some savings in hardware costs to the client.

HISTORY

The program was originally written as a Drift for Windows Robot, but to attain the level of customer required reliability it was rewritten as a VB Custom Control application. The sending of Novell messages was disabled, pending the resolution of stack overflow problems.

PROGRAMMER:

Ross Phillips ITG, Network Operations, LAN Support (Melb) Telecom Australia

20\6\94

CODE SAMPLE:


'# Attempting to create a General Purpose Drift Robot
'# The design follows that of the familar Finite State Machine (one way of implementing it)
'# My design gathers all the neccessary states, timeouts, and actions into one procedure
'#
'# This procedure initializes the array that drives all the actions of the Robot
Sub InitializeStates ()

Dim State%
Dim CR$
Dim Nul$

CR$ = Chr$(13) ' On CS410 Newline=true
Nul$ = "" 'Chr$(7) 'BEL 'Chr$(0) doesnt work

' Set defaults
For State% = 1 To MAJORSTATES
SR(State%).Ack = State%
SR(State%).NextState(0) = 0
SR(State%).SendTo = ""
SR(State%).TimeOut = 20
SR(State%).MonitorType = MON_INCOMING
SR(State%).WaitFor = XM_IGNORE
SR(State%).monitorstring(0) = ""
SR(State%).monitorstring(MINORSTATES) = FORCETIMEOUT$ 'TIMEOUT
SR(State%).NextState(MINORSTATES) = 1
SR(State%).monitorstring(MINORSTATES - 1) = "NO CARRIER"
SR(State%).NextState(MINORSTATES - 1) = 0
Next

'******************************************************
' NOTHING TO DO (IDLE STATE)
State% = 0
SR(State%).SendTo = ""
SR(State%).TimeOut = 0
'******************************************************
State% = 1
'4\2004 change code so file can be uploaded via FTP without disconnecting modem !!! (even in binary mode!)
SR(State%).SendTo = Chr$(9) & "+++" & "ATH" & CR$ ' Initialize modem
ISR State%, 1, "OK", State% + 1, EVENT_NOEVENT ' Trigger on echo back
'****************************************************
State% = 2
SR(State%).SendTo = "AT" & "DT" & " 0, ,016039" & CR$
ISR State%, 1, "CONNECT", State% + 1, EVENT_NOEVENT '"CONNECT 2400" "CONNECT 1275"!
ISR State%, 2, "BUSY", 0, EVENT_NOEVENT
ISR State%, 3, "NO ANSWER", 0, EVENT_NOEVENT
SR(State%).TimeOut = 60 ' Takes a while to dial give it 60 seconds
'****************************************************
State% = 3
SR(State%).SendTo = Nul$
ISR State%, 1, "last seven", State% + 1, EVENT_READFILE ' Get a pager message to process
'****************************************************
State% = 4
SR(State%).SendTo = "#PAGER NO#" + CR$
' Was double triggering on ALPHANUMERIC !!
ISR State%, 1, "ALPHA", State% + 2, EVENT_ALPHA ' Its an alphanumeric pager
ISR State%, 2, "NUMERIC O", State% + 2, EVENT_NUMERIC
ISR State%, 3, "TONE", State% + 2, EVENT_TONE
ISR State%, 4, "Invalid Entry", 4, EVENT_READFILE 'EVENT_NOEVENT

'****************************************************
' State% = 5
' SR(State%).SendTo = Nul$ 'Trigger monitorstring\timeout
' ISR State%, 1, "ENTER MESSAGE", State% + 1, -1
'****************************************************
State% = 6
SR(State%).SendTo = "#MESSSAGE#" 'Send Message
ISR State%, 0, "", State% + 1, EVENT_NOEVENT 'Timeout
' Disable '0' (Fatal timeout)
SR(State%).TimeOut = 5 ' 3 Secs to short
'****************************************************
State% = 7
SR(State%).SendTo = Chr$(13) 'Trigger acceptance of msg
ISR State%, 1, "THANK YOU", 0, EVENT_MSG_DELETE
ISR State%, 2, "DISCONNECTING", 0, EVENT_MSG_DELETE
ISR State%, 3, "last seven", 4, EVENT_MSG_DELETE_READ

End Sub



Web Development
Home Page - Web and Software development