Generic hardware access library
/home/cschwick/hal/utilities/classtester/src/common/PersistentCommandSequencerTester.cc
Go to the documentation of this file.
00001 #include "PersistentCommandSequencer.hh"
00002 #include "PCIAddressTableASCIIReader.hh"
00003 #include "PCIAddressTable.hh"
00004 #include "HardwareAccessException.hh"
00005 
00006 #define CONFIGURATIONFILE "CommandConfiguration.dat"
00007 #define PCITESTADDRESSTABLE "PCITestAddressTable.dat"
00008 
00009 #include <iostream>
00010 
00011 int main() {
00012   bool loop = true;
00013   uint32_t ic;
00014   int option;
00015   std::string name;
00016   std::vector<std::string> names;
00017 
00018   HAL::PCIAddressTableASCIIReader addressTableReader( PCITESTADDRESSTABLE );
00019   HAL::PCIAddressTable addressTable( "Test address table", addressTableReader );
00020   HAL::PersistentCommandSequencer test( CONFIGURATIONFILE, addressTable );
00021 
00022     try {
00023       while ( loop ) {
00024         std::cout << "1) register sequence" << std::endl; 
00025         std::cout << "2) delete sequence" << std::endl;
00026         std::cout << "3) delete all sequences"<< std::endl;
00027         std::cout << "4) list sequences" << std::endl;
00028         std::cout << "Enter option : ";
00029         std::cin >> option;
00030         
00031         switch (option) {
00032         case 0:
00033           loop = false;
00034           break;
00035         case 1:
00036           std::cout << "Enter sequence name : ";
00037           std::cin >> name;
00038           test.registerSequence( name );
00039           break;
00040         case 2:
00041           std::cout << "Enter sequence name : ";
00042           std::cin >> name;
00043           test.deleteSequence( name );
00044           break;        
00045         case 3:
00046           std::cout << "Deleting all sequences" << std::endl;
00047           test.deleteSequences();
00048           break;
00049         case 4:
00050           names = test.getNameVector();
00051           for ( ic=0; ic<names.size(); ic++) {
00052             std::cout << names[ic] << std::endl;
00053           }
00054           break;
00055         }
00056       }
00057     } catch  ( HAL::HardwareAccessException& e ) {
00058       std::cout << "exceptional exception : " << std::endl;
00059       std::cout << e.what() << std::endl;
00060     } catch ( std::exception& e ) {
00061       std::cout << "another exception" << std::endl;
00062     }
00063     std::cout << "This is the end, my friend..." << std::endl;
00064     return 0;
00065 }