int readConfig() // Load Prioritizerd config stuff { // Config file thingies // KvpErrorCode kvpStatus=0; int status=0; char* eString ; kvpReset(); status = configLoad (GLOBAL_CONF_FILE,"global") ; status = configLoad ("Prioritizerd.config","output") ; if(status == CONFIG_E_OK) { printToScreen=kvpGetInt("printToScreen",-1); verbosity=kvpGetInt("verbosity",-1); hkDiskBitMask=kvpGetInt("hkDiskBitMask",0); if(printToScreen<0) { syslog(LOG_WARNING, "Couldn't fetch printToScreen, defaulting to zero"); printToScreen=0; } } else { eString=configErrorString (status) ; syslog(LOG_ERR,"Error reading LOSd.config: %s\n",eString); fprintf(stderr,"Error reading LOSd.config: %s\n",eString); } kvpReset(); status = configLoad ("Prioritizerd.config","prioritizerd"); if(status == CONFIG_E_OK) { panicQueueLength=kvpGetInt("panicQueueLength",5000); writePowSpecPeriodSeconds=kvpGetInt("writePowSpecPeriodSeconds",60); } else { eString=configErrorString (status) ; syslog(LOG_ERR,"Error reading Prioritizerd.config: %s\n",eString); fprintf(stderr,"Error reading Prioritizerd.config: %s\n",eString); } kvpReset(); status = configLoad ("Archived.config","archived"); if(status == CONFIG_E_OK) { priorityPPS1=kvpGetInt("priorityPPS1",3); priorityPPS2=kvpGetInt("priorityPPS2",2); } else { eString=configErrorString (status) ; syslog(LOG_ERR,"Error reading Prioritizerd.config: %s\n",eString); fprintf(stderr,"Error reading Prioritizerd.config: %s\n",eString); } return status; }
int readConfigFile() /* Load Calibd and Relay config stuff */ { /* Config file thingies */ int status=0; // int tempNum=12; // int tempNum=3,count=0; // KvpErrorCode kvpStatus=0; char* eString ; kvpReset(); status = configLoad ("Calibd.config","output") ; status = configLoad ("Calibd.config","calibd") ; status |= configLoad ("Calibd.config","relays") ; if(status == CONFIG_E_OK) { //Which board is the digital acromag? digitalCarrierNum=kvpGetInt("digitalCarrierNum",1); printf("digitalCarrierNum %d\n",digitalCarrierNum); //Debug printToScreen=kvpGetInt("printToScreen",-1); //Heartbeat relayWritePeriod=kvpGetInt("relayWritePeriod",60); readoutPeriod=kvpGetInt("readoutPeriod",60); telemEvery=kvpGetInt("telemEvery",60); adcAverage=kvpGetInt("adcAverage",5); calibrationPeriod=kvpGetInt("calibrationPeriod",1200); //Relay States stateAmplite1=kvpGetInt("stateAmplite1",0); stateAmplite2=kvpGetInt("stateAmplite2",0); stateBZAmpa1=kvpGetInt("stateBZAmpa1",0); stateBZAmpa2=kvpGetInt("stateBZAmpa2",0); stateNTUAmpa=kvpGetInt("stateNTUAmpa",0); stateSB=kvpGetInt("stateSB",0); stateNTUSSD5V=kvpGetInt("stateNTUSSD5V",0); stateNTUSSD12V=kvpGetInt("stateNTUSSD12V",0); // stateNTUSSDShutdown=kvpGetInt("stateNTUSSDShutdown",0); } else { eString=configErrorString (status) ; syslog(LOG_ERR,"Error reading Calibd.config: %s\n",eString); } return status; }
int readConfigFile() /* Load Playbackd config stuff */ { /* Config file thingies */ char *tempString; int status=0; char* eString ; kvpReset(); status = configLoad (GLOBAL_CONF_FILE,"global") ; status = configLoad ("Playbackd.config","playbackd") ; if(status == CONFIG_E_OK) { sendData=kvpGetInt("sendData",0); useDisk=kvpGetInt("useDisk",0); msSleepPeriod=kvpGetInt("msSleepPeriod",0); startPriority=kvpGetInt("startPriority",0); stopPriority=kvpGetInt("stopPriority",8); startEvent=kvpGetInt("startEvent",0); tempString=kvpGetString("usbName"); if(tempString) { strncpy(usbName,tempString,FILENAME_MAX); } else { syslog(LOG_ERR,"Couldn't get usbName"); fprintf(stderr,"Couldn't get usbName\n"); } } else { eString=configErrorString (status) ; syslog(LOG_ERR,"Error reading Playbackd.config: %s\n",eString); } makeDirectories(PLAYBACK_LINK_DIR); return status; }
void readConfigFile() { /* Config file thingies */ int status=0; KvpErrorCode kvpStatus=0; char* eString ; // char *tempString; /* Load Config */ kvpReset () ; status = configLoad (GLOBAL_CONF_FILE,"global") ; status &= configLoad ("Cmdd.config","lengths") ; eString = configErrorString (status) ; if (status == CONFIG_E_OK) { kvpStatus=kvpGetIntArray ("cmdLengths",cmdLengths,&numCmds); if(kvpStatus!=KVP_E_OK) { fprintf(stderr,"Problem getting cmdLengths -- %s\n", kvpErrorString(kvpStatus)); } } else { syslog(LOG_ERR,"Error reading config file: %s\n",eString); } }
int readConfig() // Load Openportd config stuff { // Config file thingies KvpErrorCode kvpStatus=0; int status=0,tempNum,count,maxVal,maxIndex; char* eString ; //Load output settings kvpReset(); status = configLoad ("Openportd.config","output") ; if(status == CONFIG_E_OK) { printToScreen=kvpGetInt("printToScreen",-1); verbosity=kvpGetInt("verbosity",-1); if(printToScreen<0) { printf("Couldn't fetch printToScreen, defaulting to zero\n"); printToScreen=0; } } else { eString=configErrorString (status) ; syslog(LOG_ERR,"Error reading Openportd.config: %s\n",eString); fprintf(stderr,"Error reading Openportd.config: %s\n",eString); } //Load Openportd specfic settings kvpReset(); status = configLoad ("Openportd.config","openportd"); if(status == CONFIG_E_OK) { sendData=kvpGetInt("sendData",0); sendWavePackets=kvpGetInt("sendWavePackets",0); maxFileSize=kvpGetInt("maxFileSize",50000); syslog(LOG_INFO,"sendWavePackets %d\n",sendWavePackets); } else { eString=configErrorString (status) ; syslog(LOG_ERR,"Error reading Openportd.config: %s\n",eString); fprintf(stderr,"Error reading Openportd.config: %s\n",eString); } //Load bandwidth settings kvpReset(); status = configLoad ("Openportd.config","bandwidth") ; if(status == CONFIG_E_OK) { // maxEventsBetweenLists=kvpGetInt("maxEventsBetweenLists",100); headersPerEvent=kvpGetInt("headersPerEvent",30); eventBandwidth=kvpGetInt("eventBandwidth",5); tempNum=NUM_HK_TELEM_DIRS; kvpStatus = kvpGetIntArray("hkTelemOrder",hkTelemOrder,&tempNum); if(kvpStatus!=KVP_E_OK) { syslog(LOG_WARNING,"kvpGetIntArray(hkTelemOrder): %s", kvpErrorString(kvpStatus)); if(printToScreen) fprintf(stderr,"kvpGetIntArray(hkTelemOrder): %s\n", kvpErrorString(kvpStatus)); } tempNum=NUM_HK_TELEM_DIRS; kvpStatus = kvpGetIntArray("hkTelemMaxPackets",hkTelemMaxPackets,&tempNum); if(kvpStatus!=KVP_E_OK) { syslog(LOG_WARNING,"kvpGetIntArray(hkTelemMaxPackets): %s", kvpErrorString(kvpStatus)); if(printToScreen) fprintf(stderr,"kvpGetIntArray(hkTelemMaxPackets): %s\n", kvpErrorString(kvpStatus)); } tempNum=10; kvpStatus = kvpGetIntArray("priorityBandwidths",priorityBandwidths,&tempNum); if(kvpStatus!=KVP_E_OK) { syslog(LOG_WARNING,"kvpGetIntArray(priorityBandwidths): %s", kvpErrorString(kvpStatus)); if(printToScreen) fprintf(stderr,"kvpGetIntArray(priorityBandwidths): %s\n", kvpErrorString(kvpStatus)); } else { for(orderIndex=0;orderIndex<NUM_PRIORITIES*100;orderIndex++) { //Check for hundreds first for(count=0;count<tempNum;count++) { if(priorityBandwidths[count]>=100) priorityOrder[orderIndex++]=count; } //Next look for highest number maxVal=0; maxIndex=-1; for(count=0;count<tempNum;count++) { if(priorityBandwidths[count]<100) { if(priorityBandwidths[count]>maxVal) { maxVal=priorityBandwidths[count]; maxIndex=count; } } } if(maxIndex>-1) { priorityOrder[orderIndex]=maxIndex; priorityBandwidths[maxIndex]--; } else break; } numOrders=orderIndex; if(printToScreen) { printf("Priority Order\n"); for(orderIndex=0;orderIndex<numOrders;orderIndex++) { printf("%d ",priorityOrder[orderIndex]); } printf("\n"); } } } else { eString=configErrorString (status) ; syslog(LOG_ERR,"Error reading Openportd.config: %s\n",eString); fprintf(stderr,"Error reading Openportd.config: %s\n",eString); } return status; }
int main (int argc, char *argv[]) { int retVal=0; int relaysChanged=0; int firstTime=1; int lastRelayWriteSec=0; // Config file thingies int status=0; char* eString; char *globalConfFile="anitaSoft.config"; // Log stuff char *progName=basename(argv[0]); int millisecs=0; struct timespec milliWait; milliWait.tv_sec=0; int lastCal=0; time_t rawTime; // Setup log setlogmask(LOG_UPTO(LOG_INFO)); openlog (progName, LOG_PID, ANITA_LOG_FACILITY) ; // Set signal handlers signal(SIGUSR1, sigUsr1Handler); signal(SIGUSR2, sigUsr2Handler); signal(SIGTERM, handleBadSigs); signal(SIGINT, handleBadSigs); signal(SIGSEGV, handleBadSigs); //Dont' wait for children signal(SIGCLD, SIG_IGN); //Sort out PID File retVal=sortOutPidFile(progName); if(retVal!=0) { return retVal; } // Load Config kvpReset () ; status = configLoad (globalConfFile,"global") ; // Get Calibd output dirs if (status == CONFIG_E_OK) { hkDiskBitMask=kvpGetInt("hkDiskBitMask",1); disableUsb=kvpGetInt("disableUsb",1); if(disableUsb) hkDiskBitMask&=~USB_DISK_MASK; // disableNeobrick=kvpGetInt("disableNeobrick",1); // if(disableNeobrick) // hkDiskBitMask&=~NEOBRICK_DISK_MASK; disableHelium2=kvpGetInt("disableHelium2",1); if(disableHelium2) hkDiskBitMask&=~HELIUM2_DISK_MASK; disableHelium1=kvpGetInt("disableHelium1",1); if(disableHelium1) hkDiskBitMask&=~HELIUM1_DISK_MASK; } else { eString=configErrorString (status) ; syslog(LOG_ERR,"Error reading %s: %s\n",globalConfFile,eString); } makeDirectories(CALIBD_STATUS_LINK_DIR); makeDirectories(HK_TELEM_DIR); makeDirectories(HK_TELEM_LINK_DIR); prepWriterStructs(); //Need to set digital carrier num retVal=readConfigFile(); //Setup acromag acromagSetup(); ip470Setup(); //Set code values autoZeroStruct.code=IP320_AVZ; rawDataStruct.code=IP320_RAW; calDataStruct.code=IP320_CAL; do { if(printToScreen) printf("Initializing Calibd\n"); retVal=readConfigFile(); relaysChanged=1; currentState=PROG_STATE_RUN; //RJN for Hkd ip320Setup(); millisecs=0; lastRelayWriteSec=0; while(currentState==PROG_STATE_RUN) { time(&rawTime); //Set Relays to correct state if(relaysChanged || firstTime) retVal=setRelays(); if(relaysChanged || (rawTime-lastRelayWriteSec)>=relayWritePeriod) { if(printToScreen) { printf("Amplite1 (%d) Amplite2 (%d) BZAmpa1 (%d) BZAmpa2 (%d) NTUAmpa (%d)\tSB (%d) SSD_5V (%d) SSD_12V (%d) SSD_Shutdown (%d)\n",stateAmplite1,stateAmplite2,stateBZAmpa1,stateBZAmpa2,stateNTUAmpa,stateSB,stateNTUSSD5V,stateNTUSSD12V,stateNTUSSDShutdown); } writeStatus(); relaysChanged=0; lastRelayWriteSec=rawTime; } if(firstTime) firstTime=0; if((millisecs % readoutPeriod)==0) { time(&rawTime); // printf("Mag Ret: %d\n",retVal); if((rawTime-lastCal)>calibrationPeriod) { ip320Calibrate(); outputData(IP320_CAL); outputData(IP320_AVZ); lastCal=rawTime; } ip320Read(0); outputData(IP320_RAW); millisecs=1; } //Just for safety we'll reset the sleep time milliWait.tv_nsec=1000000; nanosleep(&milliWait,NULL); millisecs++; } //End of run loop } while(currentState==PROG_STATE_INIT); closeHkFilesAndTidy(&hkRawWriter); closeHkFilesAndTidy(&hkCalWriter); closeHkFilesAndTidy(&calibWriter); unlink(CALIBD_PID_FILE); syslog(LOG_INFO,"Calibd Terminating"); return 0; }
int readConfig() // Load LOSd config stuff { // Config file thingies KvpErrorCode kvpStatus=0; int status=0,tempNum,count,maxVal,maxIndex; char* eString ; kvpReset(); status = configLoad ("LOSd.config","output") ; if(status == CONFIG_E_OK) { printToScreen=kvpGetInt("printToScreen",-1); verbosity=kvpGetInt("verbosity",-1); if(printToScreen<0) { syslog(LOG_WARNING, "Couldn't fetch printToScreen, defaulting to zero"); printToScreen=0; } } else { eString=configErrorString (status) ; syslog(LOG_ERR,"Error reading LOSd.config: %s\n",eString); fprintf(stderr,"Error reading LOSd.config: %s\n",eString); } kvpReset(); status = configLoad ("LOSd.config","losd"); if(status == CONFIG_E_OK) { sendData=kvpGetInt("sendData",0); sendWavePackets=kvpGetInt("sendWavePackets",0); maxEventsBetweenLists=kvpGetInt("maxEventsBetweenLists",100); minTimeWait_b = kvpGetFloat("minTimeWait_b", 0.005); minTimeWait_m = kvpGetFloat("minTimeWait_m", 1e-5); laptopDebug=kvpGetInt("laptopDebug",0); losBus=kvpGetInt("losBus",1); losSlot=kvpGetInt("losSlot",1); } else { eString=configErrorString (status) ; syslog(LOG_ERR,"Error reading LOSd.config: %s\n",eString); fprintf(stderr,"Error reading LOSd.config: %s\n",eString); } kvpReset(); status = configLoad ("LOSd.config","bandwidth") ; if(status == CONFIG_E_OK) { eventBandwidth=kvpGetInt("eventBandwidth",80); tempNum=10; kvpStatus = kvpGetIntArray("priorityBandwidths",priorityBandwidths,&tempNum); if(kvpStatus!=KVP_E_OK) { syslog(LOG_WARNING,"kvpGetIntArray(priorityBandwidths): %s", kvpErrorString(kvpStatus)); if(printToScreen) fprintf(stderr,"kvpGetIntArray(priorityBandwidths): %s\n", kvpErrorString(kvpStatus)); } else { for(orderIndex=0;orderIndex<NUM_PRIORITIES*100;orderIndex++) { //Check for hundreds first for(count=0;count<tempNum;count++) { if(priorityBandwidths[count]>=100) priorityOrder[orderIndex++]=count; } //Next look for highest number maxVal=0; maxIndex=-1; for(count=0;count<tempNum;count++) { if(priorityBandwidths[count]<100) { if(priorityBandwidths[count]>maxVal) { maxVal=priorityBandwidths[count]; maxIndex=count; } } } if(maxIndex>-1) { priorityOrder[orderIndex]=maxIndex; priorityBandwidths[maxIndex]--; } else break; } numOrders=orderIndex; if(printToScreen) { printf("Priority Order\n"); for(orderIndex=0;orderIndex<numOrders;orderIndex++) { printf("%d ",priorityOrder[orderIndex]); } printf("\n"); } } } else { eString=configErrorString (status) ; syslog(LOG_ERR,"Error reading LOSd.config: %s\n",eString); fprintf(stderr,"Error reading LOSd.config: %s\n",eString); } return status; }
int main (int argc, char *argv[]) { char ip470carrier[FILENAME_MAX]; sprintf(ip470carrier,"%s",carrierDefault); int retVal,port,channel,value,ip470BoardLocation=0; int gpsOnPort,gpsOffPort,ndOnPort,ndOffPort,rfcmOnPort,rfcmOffPort; /* Config file thingies */ int status=0; char* eString ; /* Log stuff */ char *progName=basename(argv[0]); /* Getopt needs to run first: it'll resort the argv array */ char option; while ((option = getopt(argc, argv, "tn:")) != -1) { switch (option) { case 't': toggle = 1; printf("Toggle mode.\n"); break; case 'n': nbits = atoi(optarg); if (nbits < 2) nbits = 1; printf("%d-bit mode.\n", nbits); break; default: return usage(progName); } } /* All non-options are now offset by optind */ if(argc-optind==3) { port = atoi(argv[optind]); channel = atoi(argv[optind+1]); value = atoi(argv[optind+2]); } else return usage(progName); if (channel + nbits > 8) return usage(progName); /* Setup log */ setlogmask(LOG_UPTO(LOG_INFO)); openlog (progName, LOG_PID, ANITA_LOG_FACILITY) ; /* Load Config */ kvpReset () ; status = configLoad ("Hkd.config","relaycontrol") ; eString = configErrorString (status) ; /* Get Port Numbers */ if (status == CONFIG_E_OK) { char *temp; temp = kvpGetString("ip470carrier"); if (temp != NULL) sprintf(ip470carrier,"%s",temp); ip470BoardLocation=kvpGetInt("ip470BoardLocation",-1); gpsOnPort=kvpGetInt("gpsOnLogic",-1); gpsOffPort=kvpGetInt("gpsOffLogic",-1); ndOnPort=kvpGetInt("ndOnLogic",-1); ndOffPort=kvpGetInt("ndOffLogic",-1); rfcmOnPort=kvpGetInt("rfcmOnLogic",-1); rfcmOffPort=kvpGetInt("rfcmOffLogic",-1); } else { printf("Error trying to read %s:\t%s\n","Hkd.config",eString); } printf("ip470carrier: %s\n", ip470carrier); retVal=0; acromagSetup(ip470BoardLocation, ip470carrier); ip470Setup(); retVal=ip470Write(port,channel,value); if(retVal<0) { printf("Error setting: port %d, chan %d, value %d\n%d\n",port,channel,value,retVal); return 0; } printf("Set: port %d, chan %d, value %d\n%d\n",port,channel,value,retVal); return 0; }