Project

General

Profile

{{title}}

Environment setup

Set up (or verify) your account setup (see here).

In particular:

- add the following lines to $HOME/.bashrc:

export INTROOT=$HOME/introot
source $HOME/.acs/.bash_profile.acs

- run the following command(s) to create an integration root area for your personal account (INTROOT defined above):

cd $HOME
rm –rf $INTROOT    (if it already exists)
getTemplateForDirectory INTROOT $INTROOT

Create the project

e.g.:

mkdir ~/Projects
cd ~/Projects
tar zxvf DAQ_ACS.tar.gz

Import the project into Eclipse

File -> New -> Make project with existing code

and select your folder (e.g.: 'DAQ_ACS').

Create Make targets for your project into Eclipse

In the Eclipse right panel:

- select "M"
- browse the project dir up to the "src" where the Makefile is located
- right click on the "src" dir -> New
- specify the Make target name (e.g. 'all' )

- repeat the above steps for each target you want

Compile your project with Eclipse

In the Eclipse right panel:

- double click in the Make 'all' target created above

e.g.:

cta ctadev:~/Projetcs/DAQ_ACS/src 29 > make all
make[1]: Entering directory `/home/ctadev/Projetcs/DAQ_ACS/src'
== Dependencies C++: ../object/daqComponentImpl.d
== (preprocessing MIDL => IDL) daqComponent
== IDL Compiling for TAO (C++): daqComponent
processing /home/ctadev/Projetcs/DAQ_ACS/src/../idl/daqComponent.idl
== Dependencies for generated code: ../object/daqComponentC.d
== Dependencies for generated code: ../object/daqComponentS.d
make[1]: Leaving directory `/home/ctadev/Projetcs/DAQ_ACS/src'
make[1]: Entering directory `/home/ctadev/Projetcs/DAQ_ACS/src'
== Dependencies C++: ../object/daqComponentImpl.d
make[1]: Leaving directory `/home/ctadev/Projetcs/DAQ_ACS/src'
make[1]: Entering directory `/home/ctadev/Projetcs/DAQ_ACS/src'
== checking IDL for Interface Repository ==
2012-11-19T10:41:52.835 INFO [acsstartupLoadIFR] Loading files passed on the command line:  ../idl/daqComponent.idl
2012-11-19T10:42:06.215 INFO [acsstartupLoadIFR] Checking of IDL interfaces in Interface Repository completed OK
/bin/bash: lockfile: command not found
WARNING, ignoring lock ../lib/python/site-packages/.make-OmniOrb.lock
== IDL Compiling for OmniOrb (Python): daqComponent
== (preprocessing) daqComponent
== IDL Compiling for JacORB (Java): daqComponent 
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
== Creating jarfile daqComponent from  ../object/daqComponent/src
== C++ Compiling generated code: daqComponentS.cpp
== C++ Compiling generated code: daqComponentC.cpp
== Making library: ../lib/libdaqComponentStubs.a
== Making library: ../lib/libdaqComponentStubs.so
== C++ Compiling: daqComponentImpl.cpp
In file included from /alma/ACS-10.2/ACSSW/include/enumpropROImpl.h:383,
                 from ../include/daqComponentImpl.h:16,
                 from daqComponentImpl.cpp:10:
/alma/ACS-10.2/ACSSW/include/enumpropROImpl.h: In constructor ‘ROEnumImpl<T, TCB, TSeq, TSeq_out, TAlarm, SK>::ROEnumImpl(const ACE_CString&, baci::BACIComponent*, DevIO<T>*, bool) [with T = DAQCOMPONENT::CamServerState, TCB = DAQCOMPONENT::CBCamServerState, TSeq = DAQCOMPONENT::CamServerStateSeq, TSeq_out = TAO_Seq_Out_T<DAQCOMPONENT::CamServerStateSeq>, TAlarm = DAQCOMPONENT::AlarmCamServerState, SK = POA_DAQCOMPONENT::ROCamServerState]’:
daqComponentImpl.cpp:46:   instantiated from here
/alma/ACS-10.2/ACSSW/include/enumpropROImpl.h:371: warning: ‘ROEnumImpl<DAQCOMPONENT::CamServerState, DAQCOMPONENT::CBCamServerState, DAQCOMPONENT::CamServerStateSeq, TAO_Seq_Out_T<DAQCOMPONENT::CamServerStateSeq>, DAQCOMPONENT::AlarmCamServerState, POA_DAQCOMPONENT::ROCamServerState>::alarmSystemEnabled_m’ will be initialized after
/alma/ACS-10.2/ACSSW/include/enumpropROImpl.h:320: warning:   ‘baci::MonitorenumpropEventDispatcher* ROEnumImpl<DAQCOMPONENT::CamServerState, DAQCOMPONENT::CBCamServerState, DAQCOMPONENT::CamServerStateSeq, TAO_Seq_Out_T<DAQCOMPONENT::CamServerStateSeq>, DAQCOMPONENT::AlarmCamServerState, POA_DAQCOMPONENT::ROCamServerState>::monitorEventDispatcher_mp’
/alma/ACS-10.2/ACSSW/include/enumpropROImpl.i:26: warning:   when initialized here
In file included from /alma/ACS-10.2/ACSSW/include/enumpropROImpl.h:25,
                 from ../include/daqComponentImpl.h:16,
                 from daqComponentImpl.cpp:10:
/alma/ACS-10.2/ACSSW/include/enumpropAlarm.i: At global scope:
/alma/ACS-10.2/ACSSW/include/enumpropAlarm.h: In instantiation of ‘baci::AlarmenumpropEventStrategy<DAQCOMPONENT::CamServerState, ROEnumImpl<DAQCOMPONENT::CamServerState, DAQCOMPONENT::CBCamServerState, DAQCOMPONENT::CamServerStateSeq, TAO_Seq_Out_T<DAQCOMPONENT::CamServerStateSeq>, DAQCOMPONENT::AlarmCamServerState, POA_DAQCOMPONENT::ROCamServerState>, ACS::Alarmpattern>’:
/alma/ACS-10.2/ACSSW/include/enumpropROImpl.i:758:   instantiated from ‘ACS::Subscription* ROEnumImpl<T, TCB, TSeq, TSeq_out, TAlarm, SK>::new_subscription_AlarmEnum(ACS::Alarmpattern*, const ACS::CBDescIn&) [with T = DAQCOMPONENT::CamServerState, TCB = DAQCOMPONENT::CBCamServerState, TSeq = DAQCOMPONENT::CamServerStateSeq, TSeq_out = TAO_Seq_Out_T<DAQCOMPONENT::CamServerStateSeq>, TAlarm = DAQCOMPONENT::AlarmCamServerState, SK = POA_DAQCOMPONENT::ROCamServerState]’
daqComponentImpl.cpp:273:   instantiated from here
/alma/ACS-10.2/ACSSW/include/enumpropAlarm.i:138: warning: deprecated covariant return type for ‘char* baci::AlarmenumpropEventStrategy<T, ROT, AlarmT>::getObjectState() [with T = DAQCOMPONENT::CamServerState, ROT = ROEnumImpl<DAQCOMPONENT::CamServerState, DAQCOMPONENT::CBCamServerState, DAQCOMPONENT::CamServerStateSeq, TAO_Seq_Out_T<DAQCOMPONENT::CamServerStateSeq>, DAQCOMPONENT::AlarmCamServerState, POA_DAQCOMPONENT::ROCamServerState>, AlarmT = ACS::Alarmpattern]’
/alma/ACS-10.2/ACSSW/include/baciEvent.h:197: warning:   overriding ‘virtual const char* baci::EventStrategy::getObjectState()’
In file included from /alma/ACS-10.2/ACSSW/include/enumpropAlarm.h:123,
                 from /alma/ACS-10.2/ACSSW/include/enumpropROImpl.h:25,
                 from ../include/daqComponentImpl.h:16,
                 from daqComponentImpl.cpp:10:
/alma/ACS-10.2/ACSSW/include/enumpropAlarm.i: In member function ‘void baci::AlarmenumpropEventStrategy<T, ROT, AlarmT>::setObjectState(const char*) [with T = DAQCOMPONENT::CamServerState, ROT = ROEnumImpl<DAQCOMPONENT::CamServerState, DAQCOMPONENT::CBCamServerState, DAQCOMPONENT::CamServerStateSeq, TAO_Seq_Out_T<DAQCOMPONENT::CamServerStateSeq>, DAQCOMPONENT::AlarmCamServerState, POA_DAQCOMPONENT::ROCamServerState>, AlarmT = ACS::Alarmpattern]’:
daqComponentImpl.cpp:273:   instantiated from here
/alma/ACS-10.2/ACSSW/include/enumpropAlarm.i:183: warning: format ‘%llu’ expects type ‘long long unsigned int*’, but argument 6 has type ‘ACS::TimeInterval*’
== Making library: ../lib/libdaqComponentImpl.a
== Making library: ../lib/libdaqComponentImpl.so
make[1]: Leaving directory `/home/ctadev/Projetcs/DAQ_ACS/src'
 . . . 'all' done

Build your project with Eclipse

In the Eclipse right panel:

- double click in the Make 'install' target created above, e.g.:

cta ctadev:~/Projetcs/DAQ_ACS/src 30 > make install
.....includes:
    daqComponentImpl.h
...CDB-Schemas:
.....idl:
/bin/bash: lockfile: command not found
WARNING, ignoring lock /home/ctadev/introot/lib/python/site-packages/.make-OmniOrb.lock
daqComponentStubs
Finished installing IDL daqComponent
.....lib:
daqComponentImpl
.....exe:
...other files

 Copying current files 
        from: /home/ctadev/Projetcs/DAQ_ACS/src
          to: /home/ctadev/introot/Sources/DAQ_ACS/src
        from: /home/ctadev/Projetcs/DAQ_ACS/include
          to: /home/ctadev/introot/Sources/DAQ_ACS/include
                                               . . . done 

 . . . installation done
cta ctadev:~/Projetcs/DAQ_ACS/src 31 > 

Test your ACS Component using the ACS Command Centre

  • Start the ACS Command Centre
cta ctadev:~/Projetcs/DAQ_ACS/test 31 > cd Projetcs/DAQ_ACS/test/
cta ctadev:~/Projetcs/DAQ_ACS/test 31 > export ACS_CDB=$PWD
cta ctadev:~/Projetcs/DAQ_ACS/test 31 > acscommandcenter
  • start the ACS Suite using the appropriate 'Start' button
  • start the Object Explorer tool through the appropriate Tools menu entry.

Stop the ACS Command Centre

  • exit the Object Explorer
  • stop the ACS Suite using the appropriate 'Stop' button