source: FOIAVistA/tag/r/CMOP-PSX/PSXJOB.m

Last change on this file was 628, checked in by George Lilly, 15 years ago

initial load of FOIAVistA 6/30/08 version

File size: 1.3 KB
Line 
1PSXJOB ;BIR/BAB,WPB-Interface Background Job ;[ 02/12/99 1:26 PM ]
2 ;;2.0;CMOP;**17**;11 Apr 97
3 ;Watches line for incoming data and the outgoing queue.
4 ;Hands off control to the Master or Slave module.
5EN ;Set E TIMER
6 S PSXTRASH=0,PSXTME=$P($H,",",2)
7READX ;Read one character, expecting ENQ
8 G:^PSX(553,1,"S")="S" STOP
9 I $P($G(^PSX(553,1,0)),"^")["LEAVENWORTH" G R1
10 I $G(PSXQRY)=1 G ^PSXQRY
11R1 R *X:$S($O(^PSX(552.1,"AQ",0)):0,1:5)
12 ;if read timed out, check if timer E expired or queue has outgoing
13 ;messages then goto master, otherwise reset params & continue idling
14 E D CHKE^PSXUTL G:PSXTMOUT!$D(^PSX(552.1,"AQ")) BID^PSXMST D SETPAR^PSXSTRT G READX
15 ;If ENQ,TERM send ACK0 and goto slave(Rec'd bid for master)
16 ;Else flush garbage from buffer and continue idling
17 E D TRASH
18 G:PSXTRASH>300 EN^PSXSTP G READX
19TRASH ;Trash received while idling!!
20 S PSXTRASH=PSXTRASH+1 D FLUSH1^PSXUTL I '(PSXTRASH#5) D JOB1,LOG^PSXUTL
21 Q
22JOB1 K LOG
23 S LOG(1)="JOB1 Unexpected character ("_X_") has been received ("_PSXTRASH_") times "
24 S LOG(2)="while Idling. Check INTERFACE connection."
25 Q
26STOP K LOG S LOG(1)="JOB2 Stop interface request detected from DHCP."
27 D LOG^PSXUTL
28 G EN^PSXSTP
29STRT ;Enter here when starting the interface
30 ;Flush buffers
31 D FLUSH1^PSXUTL
32 W *EOT,*TERM
33 K LOG S LOG(1)="JOB0 STARTING THE INTERFACE"
34 D LOG^PSXUTL
35 G EN
Note: See TracBrowser for help on using the repository browser.