Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: LABCX7U

LABCX7U.m

Go to the documentation of this file.
  1. LABCX7U ; IHS/DIR/FJE - ; [ 05/27/2003 6:53 AM ]
  1. ;;5.2;LA;**1016**;MAY 27, 2003
  1. DOC ;utility routine, performs various functions to maintain CX7s.
  1. STAT ;check instrument status
  1. S A=0 F I=1:1 S A=$O(^LAB(62.4,"D","CX7",A)) Q:'A S VAR="DEV"_I,@VAR=A ;JPW removed label 0 (duplicate);10/27/94
  1. I I=1 W *7,*7,!!,"YOU HAVE NO DEVICES DEFINED IN THE AUTO INSTRUMENT FILE AS A CX7!!",!! K A,I,VAR Q
  1. W ! I $D(OPT) D MON G EXIT
  1. I I=2 S T=DEV1 D SEND G EXIT
  1. S D=I-1 F J=1:1:D S VAR="DEV"_J,T=@VAR D REQ
  1. EXIT K A,I,D,DEV1,DEV2,VAR,T,CNT,S1,S2,S3,OUT,CX3,CX4,CX3T,CX4T,POP,J,ANS
  1. K OPT,MDEV,NAME,CK,CKSUM Q
  1. REQ ;Request instrument state
  1. W !,"Device ",T,", ",$P(^LAB(62.4,T,0),U),"? Y// " R ANS:30
  1. I '$T!(ANS["^")!(ANS["N") W " No action taken" Q
  1. SEND D ZIS(0,.ANS) Q:ANS=1 ;CHECK IF LINE UP, NO ERROR IF IT IS
  1. L ^LA(T,"O") S CNT=$G(^LA(T,"O")),^LA(T,"O")=CNT+3 L ;***JPC $GET***
  1. S S1=CNT+1,S2=CNT+2,S3=CNT+3 K ^LAZ("ZZZ",T)
  1. S (OUT,^LA(T,"O",S1))=$C(1)
  1. S OUT="["_T_",703,03]" S CK=0 F I=1:1:$L(OUT) S CK=CK+$A($E(OUT,I))
  1. S CK=CK#256,CKSUM=256-CK D HEX^LABCX7R
  1. S (OUT,^LA(T,"O",S2))=OUT_CKSUM
  1. S (OUT,^LA(T,"O",S3))=$C(4)
  1. REC ;Receive 703,04 from CX7
  1. W !,"Waiting for response from device ",T,"..."
  1. ;The following FOR loop will determine how long the host will wait for
  1. ;a response from the CX7. You may adjust depending on response time.
  1. F I=1:1:60 Q:$D(^LAZ("ZZZ",T)) H 1 ;JPC CHANGE TIME 30 TO 60
  1. I '$D(^LAZ("ZZZ",T)) D ZIS(1) Q
  1. S CX3=+$P(^LAZ("ZZZ",T),",",7) I CX3=0 S CX3=$E($P(^(T),",",7),2)
  1. S CX4=+$P(^LAZ("ZZZ",T),",",8) I CX4=0 S CX4=$E($P(^(T),",",8),2)
  1. S CX3T=$P($T(@CX3),";",2),CX4T=$P($T(@CX4),";",3)
  1. W !!,"DEVICE ",T,": CX3 is in the ",CX3T," state."
  1. W !,?11,"CX4 is in the ",CX4T," state.",!!,*7
  1. K ^LAZ("ZZZ",T)
  1. Q
  1. ZIS(MES,ANS) ;check to see if CX7 is off-line, or interface went down
  1. S ANS=0,IOP=$P(^LAB(62.4,T,0),U,2) D ^%ZIS ;JPC-CHECK POP AFTER %ZIS, NOT %ZISC
  1. I MES,POP K IOP W !!,?19,"The interface IS operating properly!",!,?5,*7,*7,"The CX7 is NOT in Bi-Directional mode. Put the CX7 back On-Line.",!! ;JPC
  1. I 'POP D ^%ZISC K IOP W !!,?5,*7,*7,"The interface is down, Please Restart the interface",!! S ANS=1 ;JPC - CLOSE DEVICE
  1. Q
  1. STATUS ;CX3 STATUS CODES ; CX4 STATUS CODES ;
  1. 0 ;NO STATE;NO STATE;
  1. 1 ;STOPPED;STOPPED;
  1. 2 ;STANDBY;PAUSE INITIATED;
  1. 3 ;SYSTEM HOME;;
  1. 4 ;REAGENT LOAD;EXTINCTION-COEFFICIENT;
  1. 5 ;PRIME;RUNNING;
  1. 6 ;CALIBRATION;IDLE, SHUTDOWN IN PROGRESS;
  1. 7 ;RUNNING;IDLE;
  1. 8 ;MAINTENANCE;INITIALIZING;
  1. 9 ;AUTOPRIME;REAGENT LOAD;
  1. 10 ;CALIBRATION REQUEST;HOMING;
  1. 11 ;NO STATE;PRIMING;
  1. 12 ;BOOTING;;
  1. 13 ;PAUSE INITIATED;SAVING TO DISK;
  1. 14 ;WAITING;READING FROM DISK;
  1. 15 ;SYSTEM IDLE;STANDBY;
  1. 16 ;;CHECKING LEVELS;
  1. 17 ;;;
  1. 18 ;;PROCEDURE IN PROGRESS;
  1. 19 ;;PROCEDURE TERMINATION IN PROGRESS;
  1. 20 ;;PROCEDURE COMPLETE;
  1. 21 ;;WAITING;
  1. MON ;monitor CX7 interface - for programmers only
  1. I I=2 S T=DEV1,NAME=$P(^LAB(62.4,T,0),U) D @OPT Q ;ADDED SET OF NAME ** JPC**
  1. S D=I-1 F J=1:1:D S VAR="DEV"_J,T=@VAR,NAME=$P(^LAB(62.4,T,0),U) D @OPT
  1. Q
  1. START W !,"Do you want to monitor device ",T,", ",NAME,"? N// " R ANS:30
  1. I ANS["Y" S MDEV="D"_T K ^LA(MDEV) S ^LA(MDEV,0)=0 W *7," Monitoring in progress" Q
  1. W " No action taken" Q
  1. STOP S MDEV="D"_T I '$D(^LA(MDEV,0)) W !,"Device ",T,", ",NAME,", ","is not being monitored. No action needed." Q
  1. W !,"Do you want to stop monitoring device ",T,", ",NAME,"? Y// " R ANS:30
  1. I ANS["N"!(ANS["^") W " No action taken" Q
  1. K ^LA(MDEV) W *7," Monitoring is stopped" Q