STRE prototype SGLB Misc/Class Reference CLAS 354395 ESBR SORD 2 LITO 30000 /o,14,65535;Max. Input Frequency (Hz) LITO 35 /o,8,35;Update Period (ms) LITO 30000 /o,1,32500;Frequency Divider (no units) LITO 0 /e,Level,Quadrature;Direction Sensing LITO 1 LVAL 0 LVAL 0 ESBR SORD 3 ICAL Channel 3 /oChannel 3 Function Block ESBR SORD 4 ICAL Channel 4 /oChannel 4 Function Block ESBR SORD 5 ICAL Channel 5 /oChannel 5 Function Block ESBR SORD 6 ICAL Channel 6 /oChannel 6 Function Block ESBR SORD 7 ICAL Channel 7 /oChannel 7 Function Block ESBR SORD 8 ICAL Channel 8 /oChannel 8 Function Block ESBR SORD 9 ICAL Channel 9 /oChannel 9 Function Block ESBR SORD 10 ICAL Channel 10 /oChannel 10 Function Block ESBR SORD 11 ICAL Channel 11 /oChannel 11 Function Block ESBR SORD 12 ICAL Channel 12 /oChannel 12 Function Block ESBR SGLB Output/#1 LCON /*+;Frequency output ESBR SGLB Output/#2 LCON /*+;Divide by N Output ESBR SGLB Output/#3 LCON /*+;Divide by N count direction ESBR SGLB Output/#4 LCON /*+;High-Speed count ESBR SGLB Output/#5 LCON /*+;High-Speed rollover ESBR ESTR STRE SGLB Misc/Superclass Reference CLAS 354008 ESBR SGLB General/Initialize CMNT Expects: É¥ inst/É LITO 0 É ¥ 0/inst/É GSYM Output/#5 É ¥ #5/init/inst/É PRIM Misc/Send entry É ¥ inst/É PRIM Heap/Name of self É¥ name/inst/É PRIM Stack/Swap É¥ inst/name/É LITO 12 É¥ 12/inst/name/É PRIM Stack/Pop to aux É/12 ¥ inst/name/É LCAL init É¥ inst/name/É PRIM Stack/Swap É¥ name/inst/É PRIM Heap/Set self É¥ inst/É CMNT intialization code for frequency input LITO 0 É¥ 0/inst/É LITO 2 É¥ 2/0/inst/É PRIM S_tree/Read É¥ init. data list/inst/É PRIM List/List to stack É¥ Div state/Spd state/Chan. no/Count mode/Update pd./Max. freq./Freq. divider/inst/É PRIM Stack/Drop É¥ Spd state/Chan. no/Count mode/Update pd./Max. freq./Freq. div./inst/É PRIM Stack/Drop É¥ Chan. no/Count mode/Update pd./Max. freq./Freq. div./inst/É PRIM Stack/Swap É¥ Count mode/Chan. no/Update pd./Max. freq./Freq. div./inst/É LITO 2 É¥ 2/Count mode/Chan. no/Update pd./Max. freq./Freq. div./inst/É PRIM Ordinal/Ior É¥ Cnt mode/Chan. no/Update pd./Max. freq./Freq. div./inst/É PRIM Stack/Swap É¥ Chan. no/Cnt mode/Update pd./Max. freq./Freq. div./inst/É ASIO DIO/DIO_init É¥ inst/É PRIM Heap/Store self É¥ É ESBR SGLB DIO/Trigger for internal class use only ! CMNT Expects: É ¥ inst/data/channel/É PRIM Stack/Rotate down É ¥ channel/inst/data/É LITO 1 É ¥ 1/channel/inst/data/É PRIM Stack/Swap É ¥ channel/1/inst/data/É PRIM S_tree/Read É ¥ i-name/inst/data/É LIST É ¥ list/i-name/inst/data/É GSYM DIO/Trigger ELST PRIM List/Add É ¥ list'/inst/data/É PRIM Tags/Set delegate É ¥ MSGE/inst/data/É PRIM Stack/Swap É ¥ inst/MSGE/data/É PRIM Heap/Store self É ¥ MSGE/data/É PRIM Misc/Execute transfer control to channel ESBR SGLB DIO/Frequency for internal class use only ! CMNT Expects: É ¥ inst/flag/frequency/É PRIM Stack/Swap É ¥ flag/inst/frequency/É BRFL É ¥ inst/frequency/É CMNT Handle frequency count value updates PRIM Stack/Over É ¥ frequency/inst/frequency/É LITO 6 É ¥ 6/frequency/inst/frequency/É LITO 2 É ¥ 2/6/frequency/inst/frequency/É PRIM S_tree/Replace É ¥ inst/frequency/É PRIM Stack/Swap É ¥ frequency/inst/É GSYM Output/#1 É ¥ #1/frequency/inst/É PRIM Misc/Send entry É ¥ inst/É PRIM Heap/Store self É ¥ É BRTR CMNT Handle frequency divide by n updates CMNT Note that "frequency" data actually contains count "direction". PRIM Stack/Swap É ¥ direction/inst/É GSYM Output/#3 É ¥ #3/direction/inst/É PRIM Misc/Send entry É ¥ inst/É LITO 7 É ¥ 7/inst/É LITO 2 É ¥ 2/7/inst/É PRIM S_tree/Read É ¥ Freq. div. state/inst/É PRIM Ordinal/Not É ¥ new Freq. div. state/inst/É PRIM Stack/Dup to aux Énew Freq. div. state ¥ new Freq. div. state/inst/É LITO 7 Énew Freq. div. state ¥ 7/new Freq. div. state/inst/É LITO 2 Énew Freq. div. state ¥ 2/7/new Freq. div. state/inst/É PRIM S_tree/Replace Énew Freq. div. state ¥ inst/É PRIM Stack/Push from aux É ¥ new Freq. div. state/inst/É GSYM Output/#2 É ¥ #2/new Freq. div. state/inst/É PRIM Misc/Send entry É ¥ inst/É PRIM Heap/Store self É ¥ É ESBR SGLB DIO/Rollover for internal class use only ! CMNT Expects: É ¥ inst/É LITO 1 É ¥ 0/inst/É GSYM Output/#5 É ¥ #5/dummy data/inst/É PRIM Misc/Send entry É ¥ inst/É LITO 0 É ¥ 0/inst/É GSYM Output/#5 É ¥ #5/dummy data/inst/É PRIM Misc/Send entry É ¥ inst/É PRIM Heap/Store self É ¥ É ESBR SGLB DIO/Get Frequency /2v6,-100,100;%3.2f%% CMNT Expects: É ¥ inst/route/É LITO 6 É ¥ 6/inst/route/É LITO 2 É ¥ 2/6/inst/route/É PRIM S_tree/Read É ¥ frequency/inst/route/É CALL 354056 ESBR SGLB DIO/DIO Status /4e,Module Health,Enc. Status,Lo Config,Hi Config,Lo State,Hi State,Lo Health,Hi Health;DIO Register|:u/$%.2X; CMNT Expects: É¥ inst/status reg./route/É CMNT /1 notify /2 interrogate /3 update /4 xchg PRIM Stack/Swap É ¥ status reg./inst/route/É ASIO DIO/DIO_status É ¥ status data/inst/route/É CALL 354056 É ¥ É ESBR SGLB DIO/Reset Count /1 CMNT Expects: É ¥ inst/É ASIO DIO/DIO_reset_cnt É ¥ inst/É PRIM Heap/Store self É ¥ É ESBR SGLB DIO/Trigger Count output /1 CMNT Expects: É ¥ inst/É ASIO DIO/DIO_get_cnt É ¥ count/inst/É GSYM Output/#4 PRIM Misc/Send entry É ¥ inst/É PRIM Heap/Store self É ¥ É ESBR ESTR LDEF init CMNT Sends an initialize method to all of the channel instances CMNT Input: É/index ¥ inst/É CMNT Output: É ¥ inst/É LITO 1 É/index ¥ 1/inst/É PRIM Stack/Dup from aux É/index ¥ index/1/inst/É PRIM S_tree/Read É/index ¥ name/inst/É PRIM Stack/Dup from aux É/index ¥ index/name/inst/É PRIM Stack/Swap É/index ¥ name/index/inst/É LIST É/index ¥ list/name/index/inst/É GSYM DIO/Initialize ELST PRIM List/Add É/index ¥ list'/index/inst/É PRIM Tags/Set delegate É/index ¥ MSGE/index/inst/É PRIM Misc/Execute É/index ¥ inst/É PRIM Stack/Push from aux É ¥ index/inst/É PRIM Ordinal/Decrement É ¥ index-1/inst/É PRIM Stack/Dup to aux É/index-1 ¥ index-1/inst/É LITO 2 É/index-1 ¥ 2/index-1/inst/É PRIM Ordinal/Test equal É/index-1 ¥ rslt/index-1/inst/É PRIM Stack/Xdrop É/index-1 ¥ rslt/inst/É BRFL branch if not done LCAL init É/index-1 ¥ inst/É BRTR PRIM Stack/Drop from aux É ¥ inst/É EDEF