Building and Installing the LBC Software
Build the TCS
> ssh -X lbccontrol@cmu.lbc.lbto.org
> cd /lbt/tcs
> svn export https://svn.lbto.org/repos/tcs/branches/2013B 2013B-build
> cd 2013B-build
> export RECIPE=libTCS ... we only need the tcs library
> ./install.sh 2013B | tee install.log 2>&1 ... takes only a couple minutes
This installs the required libraries and include files in
/lbt/tcs/2013B
.
Now, change
current
link to point to the new version. The
TCSVER
variable in the
LBC makefile
uses
current
for the
TCS version.
TCS needs to read the
tcs.conf
file for
LBC to startup from
/lbt/tcs/current
as well.
How do we get TCS info on the CMU?
LBC communicates via RPC with the
TCS. It uses ports defined in the
lbt.conf
file.
/etc/profile file has:
LBTCONF_PATH=/lbt/tcs/current/etc/lbt.conf
and executes:
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
. $i
fi
done
which includes a tcs.sh:
LBTCONF_PATH=/lbt/tcs/current/etc/lbt.conf
export LBTCONF_PATH
Building LBC Software
Build the LBC Control Software on the CMU
1. Login to cmu.lbc.lbto.org
as lbccontrol
and export
(or checkout
, if you're going to make changes) the source code
> ssh -X lbccontrol@cmu.lbc.lbto.org
> cd /lbccontrol
> svn export https://svn/repos/lbccontrol/trunk VERSION
> cd VERSION
2. Modify files
- If the LBC TCS interface module needs work, the code is in
src/tcs/tcs.c
and tcs.h
.
- If you need to change the TCS version being used, modify the
TCSVER
variable in the makefile
.
- If you want to update the version number displayed on the GUIs, update:
VERSION
in src/lbc/lbc.c
and the release name in www/ui/6.php
.
- If necessary, update the copyright year in
www/footer.html
and www/ui/title.html
.
3. Build the libraries, executables, and documentation
> cd /lbccontrol/VERSION
> gmake
> doxygen documentation.dox
4. Release the version
- move the soft link
/lbccontrol
to point to /lbccontrol/VERSION
- create the subdirectory
/lbccontrol/VERSION/log
- create a link in
/lbccontrol/current/conf
as redfilterslist.dat
using the correct red filters file
- set the permissions on the directory
www/ui/dynamic
to 777
- set the permissions on the files
www/ui/dynamic/*.html
to 666
- set the permissions on the
uploads
directory to 777
- make sure the following links exist in
www/ui/dynamic
: BAOParam.txt -> /images/tftp/BTech/AOParam.txt
Bchip1.gif -> /images/tftp/BTech/chip1.gif
Bchip2.gif -> /images/tftp/BTech/chip2.gif
Bguide.gif -> /images/tftp/BTech/guide.gif
Blbcia.log -> /images/tftp/BTech/lbcia.log
RAOParam.txt -> /images/tftp/RTech/AOParam.txt
Rchip1.gif -> /images/tftp/RTech/chip1.gif
Rchip2.gif -> /images/tftp/RTech/chip2.gif
Rguide.gif -> /images/tftp/RTech/guide.gif
Rlbcia.log -> /images/tftp/RTech/lbcia.log
5. Test the new version
Build TCSSendWavefront on the CMU
Beginning with
TCS Build 2014B, the
TCSSendWavefront
program used by
DOFPIA
should come from an
LBC build, not a
TCS build.
With the Ice version of the
LBC TCS, the
TCSSendWavefront
doesn't require any paths when you copy it to the obs machine. The
TCSSendWavefront
is no longer built with the overall build of
LBC software, it's done in the
src/tcs
subdirectory since it's built differently than the rest of
LBC.
But, it really only has to be built if the interface changes.
1. Login to cmu.lbc.lbto.org
as lbccontrol
and go to the current version of LBC instrument control and make
> ssh -X lbccontrol@cmu.lbc.lbto.org
> cd /lbccontrol/current/src/tcs
> svn export https://svn.lbto.org/repos/tcs/trunk/iif/ice/Factory.ice Factory.ice or use the correct releases/XXXX instead of trunk
> svn export https://svn.lbto.org/repos/tcs/trunk/iif/ice/IIFServer.ice IIFServer.ice
> gmake clean -f makefile-TCSSendWavefront
> gmake makefile-TCSSendWavefront
2. Copy the executable to the mountain directories
/home/lbcobs/LBCFPIA/lbcfpia/TCSSendWavefront
and
/home/lbceng/TCSSendWavefront
(while we are transitioning to the new
DOFPIA
we need to do both.)
> ssh lbcobs@obs3.mountain.lbto.org
> cd LBCFPIA/lbcfpia/TCSSendWavefront
> scp -p lbccontrol@cmu.lbc.lbto.org:/lbccontrol/current/src/tcs/TCSSendWavefront .
> logout and log in as lbceng or root
> cd /home/lbceng/TCSSendWavefront
> scp -p lbccontrol@cmu.lbc.lbto.org:/lbccontrol/current/src/tcs/TCSSendWavefront .
Build the LBC Control Windows Software
The
LBC ccdctrl.exe
CCD controller software is built on a Windows7 VM using Visual Studio 2008 (
lbcwindows-devel
,
150.135.245.166
, username
INAF
).
Since the rehost of the image analysis to the CMU, the
lbc.zip
file contains much less than it used to - it now only needs two executables (
ccdctrl.exe
and
test.exe
, the init files for the CCD controller, and some Windows scripts).
We use a Visual Studio
makefile
for the
ccdctrl
build. The following notes assume you're building in a directory you create with an appropriate version name (
<VERSION>
).
- We have Tortoise SVN on the Windows environment. Right click on a directory and choose
SVN Checkout...
to checkout the source from the repository: https://svn.lbto.org/repos/lbccontrol/trunk/src/windowspc
to C:\whatever\My Documents\Visual Studio 2008\Projects\<VERSION>
- Open the Start Menu shortcut for the
Visual Studio 2008 Command Prompt
(this is a windows command line window that executes the script to set Visual Studio environment variables)
- The command line window opens in the directory
C:\Documents and Settings\INAF\My Documents\Visual Studio 2008\Projects
.
In the command line window: cd <VERSION>
cd ccdctrl
nmake clean
nmake
The executables should be in a bin
directory after the make
- Build the
lbc.zip
file
- Copy the
bin
directory from ...Projects\<VERSION>
to ...Projects\<VERSION>\zip\lbc\
- Zip up the
lbc
directory from ...Projects\<VERSION>\zip
to a file named lbc.zip
- Copy
lbc.zip
to the /images
disk on the CMU - mapped drive Z:\
- Check if the other files in SVN have been updated, or should be updated -
update.bat
and go.bat
are on the /images
disk on the CMU and are in SVN in lbccontrol/trunk/src/windowspc/images
. If someone has updated the CMU version, put it into SVN. If SVN has been updated, figure out if we want to release that to the operational environment.
go.bat
is not automatically populated on the Windows PCs. If you make a change to it, you have to manually copy it to each of the four CCD Controller PCs.
If you just want to update config files in the zip, you can do it on Linux:
> ssh lbccontrol@lbccontrol.mountain.lbto.org
> cd /images
> unzip the lbc.zip file into a working directory somewhere
> replace the config files with the new ones
> zip -r lbc.zip lbc/
If you want to zip from the SVN checkout area (
/lbccontrol/current/src/windowspc/zip
), here's how to exclude the SVN directories and files:
zip -r -x*.svn* -x.svn lbc-linux.zip lbc/
Build the BBB Software
The BeagleBone CCD controller software is in SVN in
https://svn.lbto.org/repos/lbccontrol/trunk/src/bbb
The only libraries required to build the
ccdctrl
RPC client and
test
application are the SkyTech (CTR_Procedures) and the pthread standard library.
- Checkout the files to the CMU (or typically the trunk version is on the CMU somewhere - as of Aug-2016, it's in
/lbccontrol/3.0/src/bbb
)
- Copy the
ccdctrl
directory files to /home/ubuntu/ccdctrl
-
make
in that directory
Note: Make sure you don't compile on the CMU in the src/bbb/ccdctrl
directory. It will compile fine (maybe not link), but it will also make a logcommon.o
file that will get picked up by the top-level lbc makefile incorrectly.
If you build in this directory (maybe required for a test), delete the object files afterward.
When the top-level lbc
executable is built, it uses two of the files from this directory ( ccdctrlrpc_clnt_bridge.c
and ccdctrlrpc_xdr.c
and creates object files in the top-level directory where the exe is built.