/* All values in this file are DIGIO bits */ #if ! defined(STATUS_H) #define STATUS_H /* The first status byte: run status and run type */ #define HPF_STAT_ADDR 0x88A #define RUN_BIT 0 #define SIGNAL_BIT 1 #define BACKGROUND_BIT 2 #define INJECTION_BIT 3 #define ZERO_BIT 4 #define PLUME_BIT 5 #define ABORT_BIT 6 #define LASER_BIT 7 /* The second status byte: flow controller on/off */ #define FLOW_ONOFF_ADDR 0x888 #define WHITE_CELL_FLOW_BIT 0 #define LOW_FLOW_BIT 1 #define HE_FLOW_BIT 2 #define HIGH_FLOW_BIT 3 #define XS_FLOW_BIT 4 #define MAKEUP_FLOW_BIT 5 #define NO2_FLOW_BIT 6 #define H2_FLOW_BIT 7 #define MANIFOLD_INJECT_BIT 1 #define VACUUM_BIT 2 #define BULB_1_BIT 3 #define VALVE_ONOFF_ADDR_1 0x868 #define NITROGEN_BIT 0 #define BULB_2_BIT 3 #define BULB_3_BIT 5 #define PITOT_ISO_BIT 5 #define BULB_4_BIT 6 #define PITOT_BRIDGE_BIT 6 #define VALVE_ONOFF_ADDR_2 0x86C typedef struct scanSTRUCT { char scanInfoPath[64]; char skelCmdLine[256]; char entryExt[4]; char receiptExt[4]; char killExt[4]; unsigned int scanNumber; unsigned int maxScans; char runID[4]; unsigned int numberOfScans; unsigned int numberOfResolutions; unsigned int resolutionNumber; unsigned int pollingInterval; char resolutionStr[4]; } ScanInfo; extern ScanInfo scanInfo; extern int delayCounter; unsigned maskVal(unsigned char status, unsigned char shift); unsigned runHasBegun(unsigned char status); unsigned runHasEnded(unsigned char status); unsigned runWasAborted(unsigned char status); void clearDigIOBit(unsigned short baseAddress, char bitNum); void setDigIOBit(unsigned short baseAddress, char bitNum); int runPending(); int initScanInfo(ScanInfo *scanInfo); void readScanInfo(ScanInfo *scanInfo); void enqueueFTIRScan(const ScanInfo *scanInfo); int scanCompleted(const ScanInfo *scanInfo); #endif