%{ /* NCtStat: D0: Trigger Counter Overflow D1: Counter 1N Overflow D2: Counter 1A Overflow D3: Counter 1B Overflow D4: Counter 2N Overflow D5: Counter 2A Overflow D6: Counter 2B Overflow D7: Spare D8-11: R/W Integration period select D12: Counter 1N Config D13: Counter 2N Config D14: L2Stat (True if latched twice before reading) D15: Resynch (True if a resynch occurred since last status read) */ #include "subbus.h" unsigned long long_count( unsigned int addr ){ unsigned long low, high=0; high = ( ((unsigned long)read_subbus(0, addr + 0x2 )) & 0x000fL) << 16; low = read_subbus(0, addr ); return(high+low); } %} TM 1 Hz USTAT CtStat; Address CtStat 0x600; TM 1 Hz Ct20 Det1; Address Det1 0x610; TM 1 Hz Ct20 Det2; Address Det2 0x614; TM 1 Hz Ct20 Det3; Address Det3 0x618; TM 1 Hz Ct20 Det4; Address Det4 0x61C; TM 1Hz Ct16 Las1A; Address Las1A 0x640; TM 1Hz Ct16 Las1F; Address Las1F 0x642; TM 1Hz Ct16 Las1C; Address Las1C 0x644; TM 1Hz Ct16 Las2A; Address Las2A 0x646; TM 1Hz Ct16 Las2F; Address Las2F 0x648; TM 1Hz Ct16 Las2C; Address Las2C 0x64A; TM 1 Hz Ct16 LasStat; Address LasStat 0x64C; TM 1 Hz Ct16 GtWd0; Address GtWd0 0x64E; Group HCt ( CtStat, Det1, Det2, Det3, Det4, LasStat, Las1A, Las1F, Las1C, Las2A, Las2F, Las2C, GtWd0) { CtStat = sbwa( CtStat.address ); Det1 = long_count( Det1.address ); Det2 = long_count( Det2.address ); Det3 = long_count( Det3.address ); Det4 = long_count( Det4.address ); LasStat = sbwa( LasStat.address ); Las1A = sbwa( Las1A.address ); Las1F = sbwa( Las1F.address ); Las1C = sbwa( Las1C.address ); Las2A = sbwa( Las2A.address ); Las2F = sbwa( Las2F.address ); Las2C = sbwa( Las2C.address ); GtWd0 = sbwa( GtWd0.address ); } TM 1Hz Ct16 Las3A; Address Las3A 0x660; TM 1Hz Ct16 Las3F; Address Las3F 0x662; TM 1Hz Ct16 Las3C; Address Las3C 0x664; TM 1Hz Ct16 Las4A; Address Las4A 0x666; TM 1Hz Ct16 Las4F; Address Las4F 0x668; TM 1Hz Ct16 Las4C; Address Las4C 0x66A; TM 1 Hz Ct16 LasStat2; Address LasStat2 0x66C; TM 1 Hz Ct16 GtWd2; Address GtWd2 0x66E; Group LCt2 ( LasStat2, Las3A, Las3F, Las3C, Las4A, Las4F, Las4C, GtWd2) { LasStat2 = sbwa( LasStat2.address ); Las3A = sbwa( Las3A.address ); Las3F = sbwa( Las3F.address ); Las3C = sbwa( Las3C.address ); Las4A = sbwa( Las4A.address ); Las4F = sbwa( Las4F.address ); Las4C = sbwa( Las4C.address ); GtWd2 = sbwa( GtWd2.address ); }