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

XUSC1S1.m

Go to the documentation of this file.
  1. XUSC1S1 ;ISCSF/RWF - Read data ;04/01/2002 17:13
  1. ;;8.0;KERNEL;**283**;Jul 10, 1995
  1. Q
  1. DATA(ROOT,STAT) ;get Data
  1. N I,M
  1. D DCODE(XUSCDAT),TRACE^XUSC1S("DECODE "_XUSCDAT)
  1. ;Check if data type is OK
  1. ;I ...
  1. F I=1:1 S M=$$DREAD() Q:XUSCER!M S @ROOT@(I)=XUSCDAT
  1. ;If we got it all
  1. D SEND^XUSC1S($S(XUSCER:"500 Data error",1:"220 OK"))
  1. Q
  1. ;
  1. SDATA(ROOT,TYPE) ;Send data from a source
  1. N X,Y,L,D
  1. S ROOT=$NA(@ROOT),X=ROOT,Y=$E(ROOT,1,$L(ROOT)-1),XUSCER=0
  1. D SEND^XUSC1S("DATA PARAM="_TYPE)
  1. S X=ROOT
  1. F S X=$Q(@X) Q:$E(X,1,$L(Y))'=Y D DSEND(@X)
  1. D ESEND ;Tell other end we'r done
  1. Q
  1. DCODE(D) ;Decode a DATA string
  1. S D=$$UP^XLFSTR(D),D=$P(D,"PARAM=",2,99)
  1. F I=1:1 S STAT("P"_I)=$P(D,",",I) Q:$P(D,",",I+1)=""
  1. Q
  1. DREAD() ;Data read
  1. N L,D,R S (D,XUSCDAT)="",XUSCER=0
  1. S L=$$LREAD(3) Q:XUSCER 1
  1. I L<0 S XUSCDAT="" Q 1
  1. I L'?3N S XUSCER="1 Out of sync: "_L Q 1
  1. I L>0 S XUSCDAT=$$LREAD(L)
  1. Q 0
  1. DSEND(D) ;Data send
  1. N L
  1. S L=$L(D),L=$E(1000+L,2,4)
  1. W L,D,! ;Flush buffer
  1. Q
  1. ESEND ;Send end of data message
  1. W "-10",!
  1. Q
  1. LREAD(N) ;Read N char
  1. N D,C,P S D="",C=N,XUSCER=0
  1. F D Q:'C!XUSCER
  1. . R P#C:XUSCTIME E S XUSCER=1 Q
  1. . D TRACE^XUSC1S("LREAD "_$A(P)) ;*rwf
  1. . S D=D_P,C=N-$L(D)
  1. . Q
  1. Q D