Changeset 35 for hvcontrol


Ignore:
Timestamp:
04/24/09 14:06:49 (15 years ago)
Author:
lstark
Message:
Calibration table (DAC - HV values) integrated
Location:
hvcontrol
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • hvcontrol/HV.conf

    r14 r35  
    1 # Main configuration file for the HV control program V1.0, 2009 03 17, 18:46:08
     1# Main configuration file for the HV control program V1.0, 2009 04 23, 17:13:36
    22# Note: this file will be updated at program exit
    33
     
    1313IsDAC              FALSE   # Define here if user input is interpreted as DAC value or voltage
    1414
    15 HVCalibOffset      -0.800000   # Calibration of DAC to voltage values
     15DACMin             11008   # Starting point for calibration of DAC to voltage values
     16DACMax             12496   # End point for calibration of DAC to voltage values
     17HVMin              67.000000   # Starting point for calibration of voltage to DAC values
     18HVMax              76.000000   # End point for calibration of voltage to DAC values
     19HVCalibOffset      67.000000   # Calibration of DAC to voltage values
    1620HVCalibSlope       0.006400   # Calibration of DAC to voltage values
    1721
  • hvcontrol/Makefile

    r14 r35  
    11#
    2 #  Makefile for the CTX HV utility
     2#  Makefile example
    33#
    44
    5 include Makefile.general
     5SOURCES = hvcontrol.cpp src/CCCommand.cc src/ConsoleCommand.cc src/HV.cc src/HVConfig.cc src/HVCalib.cc src/HVMonitor.cc src/HVStatus.cc src/Log.cc src/ProcessIO.cc src/ReadCard.cc src/Utilities.cc ../../fact_repos.svn/pixelmap/Pixel.cc ../../fact_repos.svn/pixelmap/PixelMap.cc
    66
    7 PROGRAMS = hvcontrol remotecontrol
     7OBJECTS = $(addsuffix .o, $(basename $(SOURCES)))
    88
    9 SUBDIRS = src
     9#INCDIRS   = -I. -IDRS -I../pixelmap
     10INCDIRS   = -I. -I../pixelmap -I./src
    1011
     12CFLAGS = -pipe -fthread-jumps -funroll-all-loops -O3 -Wall -DOS_LINUX
     13CPPFLAGS = -pipe -fPIC -fthread-jumps -funroll-all-loops -O3 -Wall -DOS_LINUX $(VMECTRL)
     14LIBS = -lstdc++ -lz -lpthread -lutil -lfl -lusb -lftdi -L/usr/lib -L/sw/lib
    1115
    12 all: $(PROGRAMS)
     16hvcontrol: $(OBJECTS)
     17        $(CC) $(CPPFLAGS) -o $@ $(OBJECTS) $(LIBS)
    1318
     19clean:
     20        @rm -f $(OBJECTS) $(SOBJECTS).so
     21        @rm -f *.d
     22        @rm -f *~
    1423
    15 OBJECTS   = $(SUBDIRS:=/*.o)
     24-include Dep.d
    1625
    17 INCDIRS   = -I. $(SUBDIRS:%=-I%)
     26# Implicit rules
    1827
    19 MRPROPERS = $(SUBDIRS:=.mrproper)
     28%.o : %.c
     29        $(CC) $(CFLAGS) $(INCDIRS) -c -o $@ $<
     30%.o : %.cc
     31        $(CC) $(CPPFLAGS) $(INCDIRS) -c -o $@ $<
     32%.o : %.cpp
     33        $(CC) $(CPPFLAGS) $(INCDIRS) -c -o $@ $<
     34%.d :
     35        @echo "Generating dependencies" $@
     36        @$(CC) -MM $(SOURCES) $(INCDIRS) \
     37        | sed 's/^\(.*\).o:/$@ \1.o:/' > $@
    2038
    21 CLEANERS  = $(SUBDIRS:=.cleaner)
    22 
    23 LIBRARIES = $(SUBDIRS:=.all)
    24 
    25 
    26 $(PROGRAMS) : % : %.o $(LIBRARIES)
    27         $(G++) $(CFLAGS) -o $@ $@.o  $(OBJECTS) $(LIBS)
    28 
    29 include Makefile.rules
    30 
    31 $(LIBRARIES):
    32         @echo " Calling make in $(@:.all=)"
    33         @(cd $(@:.all=); $(MAKE) -f Makefile all)
    34 
    35 $(MRPROPERS):
    36         @echo " Doing Mr.Proper in $(@:.mrproper=)"
    37         @(cd $(@:.mrproper=); $(MAKE) -f Makefile mrproper)
    38 
    39 $(CLEANERS):
    40         @echo " Doing clean in $(@:.cleaner=)"
    41         @(cd $(@:.cleaner=); $(MAKE) -f Makefile clean)
    42 
    43 mrproper: $(MRPROPERS) rmobj rmbak rmdep
    44         @rm -f $(PROGRAMS)
    45         @echo " Done."
    46 
    47 clean: $(CLEANERS) rmobj
    48         @echo " Done."
    49 
  • hvcontrol/hvcontrol.cpp

    r14 r35  
    3131#define LOCKFILE "/tmp/CTX_HV_LOCK"
    3232
     33void CrashHandler(int Signal);
     34
    3335
    3436int main(int argc, char *argv[]) {
     
    4648  // The flag O_EXCL together with O_CREAT assure that the lock
    4749  // file cannot be opened by another instance, i.e. there are no parallel write accesses
    48   if ((LockDescriptor = open(LOCKFILE,O_RDONLY|O_CREAT|O_EXCL)) == -1) { 
     50  /*  if ((LockDescriptor = open(LOCKFILE,O_RDONLY|O_CREAT|O_EXCL)) == -1) { 
    4951    sprintf(str, "Could not create lock file %s", LOCKFILE);
    5052    perror(str);
     
    5254  }
    5355  close(LockDescriptor);
     56  */
     57  if((LockDescriptor = open(LOCKFILE,O_WRONLY|O_CREAT|O_EXCL,S_IWUSR|S_IRUSR|S_IRGRP|S_IROTH)) == -1) {
     58    if(errno==EEXIST) {
     59      printf("Error: Lock file already existing\n");
     60      sprintf(str,"paste %s -s -d ' '",LOCKFILE);
     61      system(str);
     62    }
     63    else {
     64      sprintf(str, "Could not create lock file %s", LOCKFILE);
     65      perror(str);
     66    }
     67    exit(EXIT_FAILURE);
     68  }
     69  close(LockDescriptor);
     70  sprintf(str,"echo Created >%s; date >>%s; echo by $USER@$HOSTNAME>>%s",LOCKFILE,LOCKFILE,LOCKFILE);
     71  system(str);
    5472
    5573
     
    8199  signal(SIGUSR1, &SignalHandler);
    82100  siginterrupt (SIGUSR1, true);
     101
     102  // Install signals to assure that the lock file is deleted in case of a program crash
     103  signal(SIGQUIT, &CrashHandler);
     104  signal(SIGILL, &CrashHandler);
     105  signal(SIGABRT, &CrashHandler);
     106  signal(SIGFPE, &CrashHandler);
     107  signal(SIGSEGV, &CrashHandler);
     108  signal(SIGBUS, &CrashHandler);
     109  signal(SIGTERM, &CrashHandler);
     110  signal(SIGINT, &CrashHandler);
     111  signal(SIGHUP, &CrashHandler);
     112
    83113
    84114  // Create threads
     
    116146  return 0;
    117147}
     148
     149// Remove lock file before running default signal code
     150void CrashHandler(int Signal) {
     151  remove(LOCKFILE);
     152  printf("Caught signal number %d. Removing lockfile and performing standard signal action. Good luck.\n",Signal);
     153  signal(Signal, SIG_DFL);
     154  raise(Signal);
     155}
  • hvcontrol/src/CCCommand.cc

    r14 r35  
    7979      m->status->Pc = comline;     
    8080                 
    81       sprintf(str,"Test in CCComand: %s",m->status->Pc);
    82       printf(str);
    8381
    8482      ParseInput(m->status->Pc,&(m->status->NParam),m->status->Param);
  • hvcontrol/src/HV.cc

    r14 r35  
    334334
    335335  unsigned char wbuf[] = {0,0,0};
    336  
     336
    337337  if (!(hv>=0.0 && hv<=0X3FFF)) {
    338338    fprintf(fptr," Error: HV beyond limits [0 - 0x3FFF]\n");
    339339    return 0;
    340340  }
     341 
    341342
    342343  switch (chain) {
  • hvcontrol/src/HVConfig.cc

    r14 r35  
    3636  fTimeOut           = 1.;
    3737  IsDAC              = true;
     38  DACMin             = 11008;
     39  DACMax             = 12496;
     40  HVMin              = 67.0;
     41  HVMax              = 76.0;
    3842  fHVCalibOffset      = -.8;
    3943  fHVCalibSlope       = 0.0064;
     
    9195  ReadCard("CCClient",           fCCClient,          's', f);
    9296  ReadCard("IsDAC",             &str,                's', f);
     97  ReadCard("DACMin",            &DACMin,             'I', f);
     98  ReadCard("DACMax",            &DACMax,             'I', f);
     99  ReadCard("HVMin",             &HVMin,              'f', f);
     100  ReadCard("HVMax",             &HVMax,              'f', f);
    93101  ReadCard("HVCalibOffset",     &fHVCalibOffset,     'f', f);
    94102  ReadCard("HVCalibSlope",      &fHVCalibSlope,      'f', f);
     
    121129  fprintf(fptr," CCClient:          %s\n\n",     fCCClient);
    122130  fprintf(fptr," Set DAC values:    %s\n\n",     IsDAC ? "yes" : "no");
     131  fprintf(fptr," DACMin value:      %d\n\n",     DACMin);
     132  fprintf(fptr," DACMax value:      %d\n\n",     DACMax);
     133  fprintf(fptr," HVMin value:       %f\n\n",     HVMin);
     134  fprintf(fptr," HVMax value:       %f\n\n",     HVMax);
    123135  fprintf(fptr," HVCalibOffset :    %f\n\n",     fHVCalibOffset);
    124136  fprintf(fptr," HVCalibSlope :     %f\n\n",     fHVCalibSlope);
     
    166178  fprintf(f,"CCClient           %s   # Central Control client name\n\n",fCCClient);
    167179  fprintf(f,"IsDAC              %s   # Define here if user input is interpreted as DAC value or voltage\n\n",((IsDAC) ? "TRUE" : "FALSE"));
     180  fprintf(f,"DACMin             %d   # Starting point for calibration of DAC to voltage values\n",DACMin);
     181  fprintf(f,"DACMax             %d   # End point for calibration of DAC to voltage values\n",DACMax);
     182  fprintf(f,"HVMin              %f   # Starting point for calibration of voltage to DAC values\n",HVMin);
     183  fprintf(f,"HVMax              %f   # End point for calibration of voltage to DAC values\n",HVMax);
    168184  fprintf(f,"HVCalibOffset      %f   # Calibration of DAC to voltage values\n",fHVCalibOffset);
    169185  fprintf(f,"HVCalibSlope       %f   # Calibration of DAC to voltage values\n\n",fHVCalibSlope);
  • hvcontrol/src/HVConfig.h

    r14 r35  
    3636  float  fStatusRefreshRate;
    3737
     38  int DACMin;
     39  int DACMax;
     40  float HVMin;
     41  float HVMax;
     42
    3843  float  fHVCalibOffset;
    3944  float  fHVCalibSlope;
  • hvcontrol/src/HVStatus.cc

    r14 r35  
    162162 
    163163  if (status->Socket != -1) // Print status string to socket if open
    164     write(status->Socket,str,strlen(str));
     164    write(status->Socket,str,strlen(str)+1);
    165165
    166166}
  • hvcontrol/src/ProcessIO.cc

    r14 r35  
    2222  status  = new Status;
    2323  config  = new HVConfig(stdout,ConfigFile);
     24  calib  = new HVCalib(config);
    2425  log     = new Log(config->fLogPath);
    2526  hv      = new HV(config->fUSBDevice,config->USBDeviceNumber,stdout);
     27 
     28  pm = new PixelMap("../fact_repos.svn/config/PixelMap.txt");
    2629
    2730  // Initialize status structure (HVStatus.cc/h)
     
    8588  config->WriteHVConfig(stdout,config->FileName);
    8689
    87   if (hv)      delete hv;
    88   if (status)  delete status;
    89   if (config)  delete config;
    90   if (log)     delete log;
     90  delete hv;
     91  delete status;
     92  delete config;
     93  delete log;
     94  delete pm;
    9195 
    9296}
     
    104108  puts(" help                              Print help");
    105109  puts(" hv <ch>|<all> [b][x]<v>           Set chan. <ch>|<all> chan. of active chain(s)/board(s) to <v>");
    106   puts(" hvdiff <ch>|<all> [b][x]<diff>    Set chan. <ch>|<all> chan. of active chain(s)/board(s) to <diff>");
     110  //  puts(" hvdiff <ch>|<all> [b][x]<diff>    Set chan. <ch>|<all> chan. of active chain(s)/board(s) to <diff>");
     111  puts(" hvdiff <PXL id> <diff>            Set HV difference of pixel PXL id to <diff>");
    107112  puts(" list                              List all HV boards");
    108113  puts(" load <file>                       Load HV settings from <file>");
     
    128133int ProcessIO::CommandControl() {
    129134
    130   //  bool IsDAC;
    131   //  float  fHVCalibOffset;
    132   //  float  fHVCalibSlope;
    133   //  float  fHVMaxDiff;
    134 
    135135
    136136  // Adress HV board
     
    340340      }
    341341
    342       if (!(config->IsDAC))
    343         hvoltage=(unsigned int)((hvoltageV-config->fHVCalibOffset)/config->fHVCalibSlope);
    344342
    345343      StopMonitor();
     
    350348        for (int j=status->FirstChain;j<=status->LastChain;j++) {
    351349          if (!allchannels) {
    352             if ((hv->GetHVBoard(i))->SetHV(stdout,j,channel,hvoltage,rbuf,status->Verbose)==1) {
    353              
     350 // Convert from HV to DAC values
     351            if (!(config->IsDAC))
     352              hvoltage = calib->HVToDAC(hvoltageV,i,j,channel);
     353            if ((hv->GetHVBoard(i))->SetHV(stdout,j,channel,hvoltage,rbuf,status->Verbose)==1){
    354354              status->HV[i][j][channel]=hvoltage;
    355               sprintf(str, "Test1   status->HV = %d\n",hvoltage);
    356               DoPrompt(str);
    357355              UpdateStatus(i,rbuf);
    358356             
     
    370368              errors++;
    371369            }
    372 
    373370          }
     371
    374372          else {
    375 
    376373            sprintf(str,"updating board %d chain %d\n",hv->GetHVBoard(i)->GetBoardNumber(),j);
    377374            DoPrompt(str);
    378375           
    379 
    380376            for (int k=0;k<MAX_NUM_CHANNELS;k++) {
     377 // Convert from HV to DAC values
     378              if (!(config->IsDAC))
     379                hvoltage = calib->HVToDAC(hvoltageV,i,j,k);
    381380              if ((hv->GetHVBoard(i))->SetHV(stdout,j,k,hvoltage,rbuf,status->Verbose)==1) {
    382                
    383381                status->HV[i][j][k]=hvoltage;
    384382                UpdateStatus(i,rbuf);
     
    436434    int hvdiff = 0;
    437435    unsigned int hvoltage = 0;
     436    float hvoltageV = 0.0;
    438437    float hvdiffV = 0.0;
    439     int channel = 0;
    440     bool allchannels = FALSE;
     438    std::string pixelname(status->Param[1]);
     439    unsigned int board = 0;
     440    unsigned int chain = 0;
     441    unsigned int channel = 0;
     442
    441443
    442444    if (status->Param[1][0]>0 && status->Param[2][0]>0) {
    443445
     446
     447      // Set board
     448      board = pm->Pixel_to_HVboard(pixelname);
     449      //      std::cout << "Board: " << board << std::endl;
     450      // Set chain
     451      chain = pm->Pixel_to_HVchain(status->Param[1]);
     452      //      std::cout << "Chain: " << chain << std::endl;
    444453      // Set channel
    445       if (IsNoDigit(status->Param[1]))
    446         channel = atoi(status->Param[1]);
    447       else if(status->Param[1][0] == 'a')
    448         allchannels = TRUE;
    449       else {
    450         DoPrompt("error: wrong input format - usage: hvdiff <channel>|<all> <hv difference>\n");
    451         return 0;
    452       }
     454      channel = pm->Pixel_to_HVchannel(status->Param[1]);
     455      //      std::cout << "Channel: " << channel << std::endl;
     456
     457      /*      if (IsNoDigit(status->Param[1]))
     458              channel = atoi(status->Param[1]);
     459              else if(status->Param[1][0] == 'a')
     460              allchannels = TRUE;
     461              else {
     462              DoPrompt("error: wrong input format - usage: hvdiff <channel>|<all> <hv difference>\n");
     463              return 0;
     464        }*/
    453465
    454466      // Binary input
     
    481493        return 0;
    482494      }
    483       else if (hvdiff>0X3FFF) {
    484         DoPrompt("difference of high voltage out of range (Vmin: -16383, Vmax: 16383)!\n");
    485         return 0;
    486       }
    487       else if (hvdiffV>78.0 && (-78.0<hvdiffV)) {
    488         DoPrompt("difference of high voltage out of range (Vmin: -78.0, Vmax: 78.0)!\n");
    489         return 0;
    490       }
    491 
     495      else if (hvdiff>config->DACMax || hvdiff <(-(config->DACMax))) {
     496        sprintf(str,"difference of high voltage [hvdiff:%d] out of range (Vmin: 0.0, Vmax: %d)!\n", hvdiff,config->DACMax);
     497        DoPrompt(str);
     498        return 0;
     499      }
     500      else if (hvdiffV>(calib->DACToHV(config->DACMax,0,0,0))|| hvdiffV<-(calib->DACToHV(config->DACMax,0,0,0))) {
     501        sprintf(str,"difference of high voltage [hvdiff:%f] out of range (Vmin: 0.0, Vmax: %f)!\n",hvdiffV,calib->DACToHV(config->DACMax,0,0,0));
     502        DoPrompt(str);
     503        return 0;
     504      }
     505
     506      //Convert from HV to DAC values
    492507      if (!(config->IsDAC)){
    493         hvdiff=(int)(hvdiffV/config->fHVCalibSlope);
     508        hvoltage = status->HV[board][chain][channel];
     509        hvoltageV = calib->DACToHV(hvoltage,board,chain,channel);
     510        hvoltageV = hvoltageV + hvdiffV;
     511        hvdiff = calib->HVToDAC(hvoltageV,board,chain,channel) - hvoltage;
    494512      }
    495513      StopMonitor();
    496514
    497      
    498       for (int i=status->FirstBoard;i<=status->LastBoard;i++) {
    499 
    500         for (int j=status->FirstChain;j<=status->LastChain;j++) {
    501           if (!allchannels) {
    502             hvoltage = status->HV[i][j][channel];
    503             for (int k=0;k<=abs((int)(hvdiff/config->fHVMaxDiff));k++){
    504               if (k<abs((int)(hvdiff/config->fHVMaxDiff))){
    505                 hvoltage=(unsigned int)(hvoltage + config->fHVMaxDiff*hvdiff/abs(hvdiff));
    506               }
    507               if (k==(int)(abs((int)(hvdiff/config->fHVMaxDiff)))){
    508                 hvoltage=(unsigned int)(hvoltage + (hvdiff%(int)config->fHVMaxDiff));
    509               }
    510 
    511 
    512               status->HV[i][j][channel]=hvoltage;
    513               if ((hv->GetHVBoard(i))->SetHV(stdout,j,channel,hvoltage,rbuf,status->Verbose)==1) {
    514                 UpdateStatus(i,rbuf);
    515                 sprintf(str,"board %d: high voltage of chain %d channel %d set to %d | 0X%.4X\n",hv->GetHVBoard(i)->GetBoardNumber(),j,channel,hvoltage,hvoltage);
    516                 DoPrompt(str);
    517                 if (status->Verbose) {
    518                   sPrintStatus(status,str,i);
    519                   DoPrompt(str);
    520                 }
    521                 sPrintStatus(status,str,i); // Print status only to socket
    522               }
    523               else {
    524                 sprintf(str,"board %d error: could not set hv - check timeout and try again\n",hv->GetHVBoard(i)->GetBoardNumber());
    525                 DoPrompt(str);
    526                 errors++;
    527               }
    528               //            Sleep(1);
    529             }
     515   
     516     
     517      hvoltage = status->HV[board][chain][channel];
     518      for (int k=0;k<=abs((int)(hvdiff/config->fHVMaxDiff));k++){
     519        if (k<abs((int)(hvdiff/config->fHVMaxDiff))){
     520          hvoltage=(unsigned int)(hvoltage + config->fHVMaxDiff*hvdiff/abs(hvdiff));
     521        }
     522        if (k==(int)(abs((int)(hvdiff/config->fHVMaxDiff)))){
     523          hvoltage=(unsigned int)(hvoltage + (hvdiff%(int)config->fHVMaxDiff));
     524        }
     525       
     526       
     527        status->HV[board][chain][channel]=hvoltage;
     528        if ((hv->GetHVBoard(board))->SetHV(stdout,chain,channel,hvoltage,rbuf,status->Verbose)==1) {
     529          UpdateStatus(board,rbuf);
     530          if (k==(int)(abs((int)(hvdiff/config->fHVMaxDiff)))){
     531            sprintf(str,"board %d: high voltage of chain %d channel %d set to %d | 0X%.4X\n",hv->GetHVBoard(board)->GetBoardNumber(),chain,channel,hvoltage,hvoltage);
     532            DoPrompt(str);
     533            sPrintStatus(status,str,board); // Print status only to socket
    530534          }
    531           else {
    532            
    533             sprintf(str,"updating board %d chain %d\n",hv->GetHVBoard(i)->GetBoardNumber(),j);
    534             DoPrompt(str);
    535            
    536 
    537             for (int k=0;k<MAX_NUM_CHANNELS;k++) {
    538               int hvoltage = status->HV[i][j][k];
    539               for (int l=0;l<=abs((int)(hvdiff/config->fHVMaxDiff));l++){
    540                 if (l<abs((int)(hvdiff/config->fHVMaxDiff)))
    541                   hvoltage=(unsigned int)(hvoltage + config->fHVMaxDiff*hvdiff/abs(hvdiff));
    542                 if (l==(int)(abs((int)(hvdiff/config->fHVMaxDiff))))
    543                   hvoltage=(unsigned int)(hvoltage + (hvdiff%(int)config->fHVMaxDiff));
    544                 status->HV[i][j][k]=hvoltage;
    545                 if ((hv->GetHVBoard(i))->SetHV(stdout,j,k,hvoltage,rbuf,status->Verbose)==1) {
    546                
    547                   UpdateStatus(i,rbuf);
    548                
    549                   if (status->Verbose) {
    550                     sprintf(str,"board %d: high voltage of chain %d channel %d set to %d | 0X%.4X\n",hv->GetHVBoard(i)->GetBoardNumber(),j,k,hvoltage,hvoltage);
    551                     DoPrompt(str);
    552                     sPrintStatus(status,str,i);
    553                     DoPrompt(str);
    554                   }
    555                   sPrintStatus(status,str,i); // Print status only to socket
    556                  
    557                 }
    558                 else {
    559                   sprintf(str,"board %d error: could not set HV - check timeout and try again\n",hv->GetHVBoard(i)->GetBoardNumber());
    560                   DoPrompt(str);
    561                   errors++;
    562                 }
    563                 //              Sleep(0.001);
    564               }
    565             }
    566           }
    567         }
    568       }
     535        }
     536        else {
     537          sprintf(str,"board %d chain %d channel %d error: could not set hv - check timeout and try again\n",hv->GetHVBoard(board)->GetBoardNumber(), chain, channel);
     538          DoPrompt(str);
     539          errors++;
     540        }
     541      }          // for loop over k
     542        //          Sleep(1);
     543      if (status->Verbose) {
     544        sPrintStatus(status,str,board);
     545        DoPrompt(str);
     546      }
     547   
     548   
    569549      StartMonitor();
    570550
    571551      if (errors) {
    572         sprintf(str,"warning %d error(s) => check timeout and try again\n",errors);
     552        sprintf(str,"warning %d error(s)\n",errors);
    573553        DoPrompt(str);
    574554      }
     
    579559    }
    580560    else {
    581       sprintf(str,"usage: hvdiff <channel>|<all> <hv difference>\n");
     561      sprintf(str,"usage: hvdiff <PXL id> <hv difference>\n");
    582562      DoPrompt(str);
    583563    }
    584564    return 0;
    585565
    586     }
     566  }
    587567
    588568      // End: Write difference of high voltage --------------------------------------------------------------------
  • hvcontrol/src/ProcessIO.h

    r14 r35  
    2828#include "Log.h"
    2929#include "HVConfig.h"
     30#include "HVCalib.h"
    3031#include "Utilities.h"
    3132#include "HV.h"
     33
     34#include <iostream>
     35#include "../../fact_repos.svn/pixelmap/PixelMap.h"
    3236
    3337
     
    4549  char bdata[16];
    4650
     51  PixelMap *pm;
     52
    4753 public:
    4854 
    4955  HVConfig*    config;
     56  HVCalib*     calib;
    5057  Status*      status;
    5158  Log*         log;
Note: See TracChangeset for help on using the changeset viewer.