;cpd.ini.lln - written for Lulin site. Option for humidigraph and 2nd neph ;08/06/24 aj [Global] ;Full path to the cpd executable (based on CPD), used when restarting (or if it is PATH, just "cpd") CPDBin=/bin/cpd ;Full path to the state file (again $(CPD)this) CPDState=/etc/cpdstate ;Path to the binarys, must have the trailing / BaseBin=/bin/ ;Instruments to spawn, HEADING:binary ;Or pause:time ;First the instruments ;Instrument=GPS:gps Instrument=BESTUPS:bestups Instrument=CNC1:cnserial Instrument=NEPH1:neph ;Instrument=NEPH2:neph Instrument=UMAC1:umac Instrument=AETHALOMETER:aethalometer Instrument=PSAP3:psap3 Instrument=LOVEPID1:lovepid ;Instrument=RAWDATA:rawdatarec ;Instrument=CCN:ccn ;Can only be here if it is in serial mode ;Now the controllers Instrument=pause:2.0 Instrument=LOVEPIDUMAC1:lovepidumac Instrument=pause:2.0 ;Must be here (after delay) if it is in analog mode (it uses the uMAC) Instrument=AEROSOL:aerosol ;Wait to let aerosol spawn (others use it) Instrument=pause:2.0 ;Instrument=HUMIDOGRAPH:humidograph ;Instrument=pause:2.0 Instrument=AEROMON:aeromon ;Full path to the serial server, if null, looks in the instrument bin dir for sersrv, if it cant open the file as a full pathname, prepends the bin dir to it, or just sersrv if it's in PATH) SerSrvBin=/aer/prg/cpd/bin/sersrv ;List of headings that designate spanchecks Spancheck=SPANCHECK ;List of uMACs, HEADING:id (id is hundreds digit on analog channels) uMAC=UMAC1:0 uMAC=LOVEPIDUMAC1:2 ;Heading that other instruments will open to get aerosol data Aerosol=AEROSOL ;Heading that cpx will use to get aeromon data Aeromon=AEROMON ;Heading that cpx will use to get ups data Bestups=BESTUPS ;Heading that cpx will use to get gps data ;Gps=GPS ;Password for the client to use ;ClientPassword=cmdl [Disk] ;Place to create log files, must have the trailing / LogDir=/aer/lln/log/ ;Monitor file to use (gets the log timestamp appended) MonitorFile=CPDMON ;Time to rotate the files, hh:mm format LogRotateInterval=24:00 ;Do log rotation on the day boundary, regardless LogRotateOnDay=TRUE ;Interval to flush files, in minutes FlushInterval=15 ;First field after the timestamp (when writing records) StationID=LLN ;Maximum file size (more causes an auto-switch); in KB MaxFileSize=1024 ;Default for unspcified logging or "GLOBAL" GlobalLogging=TRUE ;Interval to calculate averages GlobalAvgInterval=1:00 ;Default interval for logging, if not specified or set to GLOBAL, mm:ss GlobalLogInterval=15:00 [SPANCHECK] ;List of nephs to check Neph=NEPH1 ;Neph=NEPH2 ;Time to measure CO2 on spancheck, mm:ss SpanCO2Time=8:00; 8 min for 2 nephs, 5 min for 1 neph ;Air SpanAirTime=10:00 ;Time to flush with CO2 SpanCO2FlushTime=7:00 ;With air SpanAirFlushTime=3:00 ;Name for the clients to use ClientName=Spancheck [CNC1] ;Port description Port=/dev/ttyUSB5:9600E71 ;Printable name (used mainly for error printing) NiceName=CNC3010-1 ;Used to create status strings by the client ShortName=C ;Type (3010, 3010Polled, 3703, Pulse) CNType=3010Polled ;Are we logging? (initially, can be changed while running) IsLogging=GLOBAL ;Gets "_yyyymmdd_hhmm" appended to it, and used as the log out file LogBase=CNC001 ;Prepend this to all log entries LogPrepend= ;Interval between log entries, in mm:ss, or GLOBAL (to use to default) LogInterval=GLOBAL ;Flow (cc/s) Q_cnc_cc_s=16.267;090607/chia;16.083;090606/kuo;16.19;080709/aj ;Create ca_ records Run_Averages=TRUE ;Reference Neph [NEPH1] ;Port description Port=/dev/ttyUSB0:9600E71 ;Printable name NiceName=TSI Neph-1 ;Used to create status strings by the client ShortName=N ;Are we logging? (initially, can be changed while running) IsLogging=GLOBAL ;Gets "_yyyymmdd_hhmm" appended to it, and used as the log out file LogBase=NEPH01 ;Prepend this to all log entries LogPrepend= ;Interval between log entries, in mm:ss, or GLOBAL (to use to default) LogInterval=GLOBAL ;Strings to send during init, after all defaults InitStr=L1 InitStr=B255 ;Values to set SMZ=4 STA=1 STB=61 STP=30600 STZ=300 SMB=1 SP=73 ;Set lamp wattage to this on server exit SPexit=73 ;Times to zero check on, seconds into the hour ZeroAt=3418 ;Wavelengths Lambda_Green=550.0 Lambda_Red=700.0 ;Create na_ records Run_Averages=TRUE ;Wet Neph [NEPH2] ;Port description Port=/dev/ttyUSB1:9600E71 ;Printable name NiceName=TSI Neph-2 ;Used to create status strings by the client ShortName=O ;Are we logging? (initially, can be changed while running) IsLogging=GLOBAL ;Gets "_yyyymmdd_hhmm" appended to it, and used as the log out file LogBase=NEPH02 ;Prepend this to all log entries LogPrepend= ;Interval between log entries, in mm:ss, or GLOBAL (to use to default) LogInterval=GLOBAL ;Strings to send during init, after all defaults InitStr=L1 InitStr=B255 ;Values to set SMZ=4 STA=1 STB=29 STP=30600 STZ=300 SMB=1 SP=75 ;Set lamp wattage to this on server exit SPexit=75 ;Times to zero check on, seconds into the hour ZeroAt=3420 ;Wavelengths Lambda_Green=550.0 Lambda_Red=700.0 ;Create ca_ records Run_Averages=TRUE ;Aerosol rack uMAC [UMAC1] ;Port description Port=/dev/ttyUSB2:9600N81 ;Printable name NiceName=uMAC-1 ;Used to create status strings by the client ShortName=U ;Are we logging? (initially, can be changed while running) IsLogging=GLOBAL ;Gets "_yyyymmdd_hhmm" appended to it, and used as the log out file LogBase=UMAC01 ;Address on uMAC chain Addr=0 ;Number of analog input channels to use CountAIch=24 ;Digital channels CountDch=2 ;Minium digital channel MinDch=0 ;Intial values for the analog out channels InitAO=0.0,3.0 ;Intial value for digital channels, hex, 2 digits per channel, accending channel order, left to right InitDO=0000 [AEROSOL] ;Show window initially DefaultShow=FALSE ;Printable name (used mainly for error printing) NiceName=Aerosol ;Used to create status strings by the client ShortName=A ;Are we logging? (initially, can be changed while running) IsLogging=GLOBAL ;Gets "_yyyymmdd_hhmm" appended to it, and used as the log out file LogBase=AEROSL ;Prepend this to all log entries LogPrepend= ;Interval between log entries, in mm:ss, or GLOBAL (to use to default) LogInterval=GLOBAL ;uMAC to use for digital out Dig_uMAC=0 ;DOT channel for the impactor Dig_Chan_AnalyzerImpactor=1 ;For the bypass Dig_Chan_Bypass=0 ;Reference neph to use, the heading RefNeph=NEPH1 ;Humidified neph WetNeph=NEPH2 ;CN counter to use CNC=CNC1 CNA=CCN ;3 wavelength PSAP PSAP3=PSAP3 ;Seconds to pause averaging after a valve change SecondsToFlush=31 ;Seconds to pause averaging at startup SecondsToSpinup=90 ;Do averages when contaminated - disable if there is a filter system Average_On_Contam=TRUE ;Bypass when contaminated Bypass_On_Contam=FALSE ;Use linear out for cn out CN_Out_Lin=FALSE ;Channel on uMAC to output to, -1 disables CN_uMAC_Chan=-1 ;MFC voltage at STP MFC_Set_V=2.500 ;MFC output channel, -1 disables MFC_uMAC_Chan=-1 ;Default cut to use DefaultCut=FINE ;Cutpoints, format is mm:ss(or just seconds), FINE/COARSE Cutpoint=00:00,COARSE Cutpoint=30:00,FINE ;uMAC channel assignments ;T&RH sensor pairs, -1 disables a channel ;Inlet sensor Chan_Inlet_T=8 Chan_Inlet_RH=200 ;Humido preheater Chan_HumidoPreheat_T=-1 Chan_HumidoPreheat_RH=-1; ;Humido controller Chan_HumidoControl_T=9 Chan_HumidoControl_RH=201;needs to be 201 (pid32) to connect w/floatswitch ;Ambient Chan_Ambient_T=-1 Chan_Ambient_RH=-1 ;Sample Chan_Sample_T=8 Chan_Sample_RH=200 ;Rack Chan_Rack_T=-1 Chan_Rack_RH=-1 ;Stack Chan_Stack_T=10 Chan_Stack_RH=202;(equiv to PID 33) ;Pumpbox Chan_Pumpbox_T=-1 Chan_Pumpbox_RH=-1 ;Heater Chan_Heater_T=-1 Chan_Heater_RH=-1 ;uMAC internal sensor Chan_uMAC_T=60 ;dP sensors Chan_dP_Pitot=19 Chan_dP_Purge=-1 Chan_dP_NephImp=20 Chan_dP_Spare1=-1 Chan_dP_Spare2=21 ;Flowrate sensors Chan_Q_Filter=-1 Chan_Q_Analyzer=203 Chan_Q_Spare3=-1 Chan_Q_Spare4=-1 Chan_Q_Bypass=-1 Chan_Q_CNDrier=13 Chan_Q_CN=12 ;General Chan_Wind_S=-1 Chan_Wind_D=-1 Chan_P_ambient=-1 ;Calibration info ;For T&RH sensors ;if RH sensor values come from PID box set cals to 0,1 ;if RH sensor values come from umac set cals to 0,100 Cal_RefInlet_T=-273.15,1.0 Cal_WetInlet_T=-273.15,1.0 Cal_Inlet_T=-40.0,100.0 Cal_Inlet_RH=0.0,1.0;behind rack Cal_HumidoPreheat_T=-40.0,100.0 Cal_HumidoPreheat_RH=0.0,1.0 Cal_HumidoControl_T=-40.0,100.0 Cal_HumidoControl_RH=0.0,1.0 Cal_Ambient_T=-40.0,100.0 Cal_Ambient_RH=0.0,100.0 Cal_Sample_T=-40.0,100.0 Cal_Sample_RH=0.0,1.0;behind rack Cal_Rack_T=-40.0,100.0 Cal_Rack_RH=0.0 Cal_Heater_T=0.0 Cal_Heater_RH=0.0 Cal_Stack_T=-40.0,100.00 Cal_Stack_RH=0.0,1.0;by splitter Cal_Pumpbox_T=-40.0,100.0 Cal_Pumpbox_RH=0.0 Cal_uMAC_T=0.0,1.0 Cal_RefNeph_T=-273.15,1.0 Cal_RefNeph_RH=0.0,1.0 Cal_WetNeph_T=-273.15,1.0 Cal_WetNeph_RH=0.0,1.0 ;dP sensors Cal_dP_Pitot=0.7508,-4.2763;090607/chia;0.7598,-4.0172;081010/aj;-0.7254,3.778;080820/aj Cal_dP_Purge=0.0 Cal_dP_NephImp=-211.06,337.01;090213/aj;-216.06,337.01;080709/aj Cal_dP_Spare1=0.0 Cal_dP_Spare2=-211.77,338.32;080709/aj ;Flowrate sensors Cal_Q_Analyzer=-0.348,0.972;090606/kuo;0.1552,0.9344;080709/aj Cal_Q_Spare3=30.0 Cal_Q_Spare4=30.0 Cal_Q_Bypass=30.0 Cal_Q_CNDrier=0.053,1.967;080709/aj Cal_Q_CN=0.031,0.391;080709/aj ;General Cal_Wind_S=0.0,10.0 Cal_Wind_D=180.0,72.0;aligned to true N/jao Cal_P_ambient=1000.0 [HUMIDOGRAPH] ;Show window initially DefaultShow=FALSE ;Printable name (used mainly for error printing) NiceName=Humidograph ;Used to create status strings by the client ShortName=H ;Are we logging? (initially, can be changed while running) IsLogging=GLOBAL ;Gets "_yyyymmdd_hhmm" appended to it, and used as the log out file LogBase=HUMGR1 ;Prepend this to all log entries LogPrepend= ;Interval between log entries, in mm:ss, or GLOBAL (to use to default) LogInterval=GLOBAL ;LovePID DeviceChanAandB=lovepid LovePIDChanA=LOVEPID1:33:1;pre-heater LovePIDChanB=LOVEPID1:32:1;humidifier ;uMAC analog channel for the pump Pump_uMAC_ch=0 ;uMAC to use for digital out Dig_uMAC=0 ;uMAC Channel for pumpvalve PumpRange_uMAC_ch=4 ;If false, do not do any setpoints Scanning=TRUE ;Initial (and default) setpoint ;ChanA,ChanB,ChanC,ChanD SP_init=30.0, 30.0, 0.0, L ;Set this on exit SP_idle=100.0, 0.0, 0.0, L ;Setpoints ;ChanA is pre-heater setpt RH, ChanB is humidifier setpt RH ;ChanC is pump speed and direction, ChanD is solonoid flow control ;Time (either seconds, or mm:ss, both after the hour),ChanA,ChanB,ChanC,ChanD Setpoint=00:00, 30.0, 0.0, 20.0, L Setpoint=01:00, 30.0, 0.0, 20.0, L Setpoint=02:00, 30.0, 0.0, 20.0, L Setpoint=03:00, 30.0, 0.0, 20.0, L Setpoint=04:00, 30.0, 0.0, 20.0, L Setpoint=05:00, 30.0, 0.0, 20.0, L Setpoint=06:00, 30.0, 40.0, 20.0, L Setpoint=07:00, 30.0, 40.0, 20.0, L Setpoint=08:00, 30.0, 50.0, 20.0, L Setpoint=09:00, 30.0, 50.0, 20.0, L Setpoint=10:00, 30.0, 54.0, 20.0, L Setpoint=11:00, 30.0, 57.0, 20.0, L Setpoint=12:00, 30.0, 60.0, 20.0, L Setpoint=13:00, 30.0, 62.0, 20.0, L Setpoint=14:00, 30.0, 64.0, 20.0, L Setpoint=15:00, 30.0, 66.0, 20.0, L Setpoint=16:00, 30.0, 68.0, 20.0, L Setpoint=17:00, 30.0, 70.0, 20.0, L Setpoint=18:00, 30.0, 72.0, 20.0, L Setpoint=19:00, 30.0, 74.0, 20.0, L Setpoint=20:00, 30.0, 76.0, 20.0, L Setpoint=21:00, 30.0, 78.0, 20.0, L Setpoint=22:00, 30.0, 80.0, 20.0, L Setpoint=23:00, 30.0, 82.0, 20.0, L Setpoint=24:00, 30.0, 83.0, 20.0, L Setpoint=25:00, 30.0, 84.0, 20.0, L Setpoint=26:00, 30.0, 85.0, 20.0, L Setpoint=27:00, 30.0, 86.0, 20.0, L Setpoint=28:00, 30.0, 87.0, 20.0, L Setpoint=29:00, 30.0, 88.0, 20.0, L Setpoint=30:00, 30.0, 88.0, 20.0, L;start measuring on fine cut size Setpoint=31:00, 30.0, 86.0, 20.0, L Setpoint=32:00, 30.0, 84.0, 20.0, L Setpoint=33:00, 30.0, 82.0, 20.0, L Setpoint=34:00, 30.0, 80.0, 20.0, L Setpoint=35:00, 30.0, 78.0, 20.0, L Setpoint=36:00, 30.0, 76.0, 20.0, L Setpoint=37:00, 30.0, 74.0, 20.0, L Setpoint=38:00, 30.0, 72.0, 20.0, L Setpoint=39:00, 30.0, 70.0, 20.0, L Setpoint=40:00, 30.0, 67.0, 20.0, L Setpoint=41:00, 30.0, 64.0, 20.0, L Setpoint=42:00, 30.0, 61.0, 20.0, L Setpoint=43:00, 30.0, 58.0, 20.0, L Setpoint=44:00, 30.0, 55.0, 20.0, L Setpoint=45:00, 30.0, 52.0, 20.0, L Setpoint=46:00, 30.0, 50.0, 20.0, L Setpoint=47:00, 30.0, 50.0, 20.0, L Setpoint=48:00, 30.0, 40.0, 20.0, L Setpoint=49:00, 30.0, 40.0, 20.0, L Setpoint=50:00, 30.0, 40.0, 20.0, L Setpoint=51:00, 30.0, 40.0, 20.0, L Setpoint=52:00, 30.0, 0.0, 20.0, L Setpoint=53:00, 30.0, 0.0, 20.0, L Setpoint=54:00, 30.0, 0.0, 20.0, L Setpoint=55:00, 30.0, 0.0, 20.0, L Setpoint=56:00, 30.0, 0.0, 20.0, L Setpoint=57:00, 30.0, 0.0, 20.0, L;start neph zero cycle Setpoint=58:00, 30.0, 0.0, 20.0 L Setpoint=59:00, 30.0, 0.0, 20.0, L [AEROMON] ;Show window initially DefaultShow=FALSE ;Printable name (used mainly for error printing) NiceName=Aerosol Contamination ;Used to create status strings by the client ShortName=M ;Are we logging? (initially, can be changed while running) IsLogging=GLOBAL ;Gets "_yyyymmdd_hhmm" appended to it, and used as the log out file LogBase=AERMON ;Prepend this to all log entries LogPrepend= ;Interval between log entries, in mm:ss, or GLOBAL (to use to default) LogInterval=GLOBAL ;CN counter to use for contamination control CNC=CNC1 ;Maximum dP across the Neph impactor, -1.0 disables Max_NephImp_dP=100.0 ;CNC contamination control ;CNC>this is always contaminated CNCC_Dirty=80000.0 ;CNC