ALMA Computing Group

acsexmplPowerSupplyCurrentImpl.cpp

Go to the documentation of this file.
00001 /*******************************************************************************
00002 *    ALMA - Atacama Large Millimiter Array
00003 *    (c) European Southern Observatory, 2002
00004 *    Copyright by ESO (in the framework of the ALMA collaboration)
00005 *    and Cosylab 2002, All rights reserved
00006 *
00007 *    This library is free software; you can redistribute it and/or
00008 *    modify it under the terms of the GNU Lesser General Public
00009 *    License as published by the Free Software Foundation; either
00010 *    version 2.1 of the License, or (at your option) any later version.
00011 *
00012 *    This library is distributed in the hope that it will be useful,
00013 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
00014 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015 *    Lesser General Public License for more details.
00016 *
00017 *    You should have received a copy of the GNU Lesser General Public
00018 *    License along with this library; if not, write to the Free Software
00019 *    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
00020 *
00021 *
00022 * "@(#) $Id: acsexmplPowerSupplyCurrentImpl.cpp,v 1.88 2006/10/19 09:47:40 bjeram Exp $"
00023 *
00024 * who       when      what
00025 * --------  --------  ----------------------------------------------
00026 * gchiozzi 2002-03-04 Instead of writing in the CDB, now gets a reference to readback and calls set_sync().
00027 * msekoran 2002-02-15 created
00028 */
00029 
00030 #include <logging.h>
00031 #include <acsexmplPowerSupplyCurrentImpl.h>
00032 
00033 ACE_RCSID(acsexmpl, acsexmplPowerSupplyCurrentImpl, "$Id: acsexmplPowerSupplyCurrentImpl.cpp,v 1.88 2006/10/19 09:47:40 bjeram Exp $")
00034 using namespace baci;
00035 
00037 // PowerSupplyCurrent
00039 
00042 PowerSupplyCurrent::PowerSupplyCurrent(const ACE_CString &name, 
00043                                        BACIComponent *cob_p,
00044                                        ROdouble *readback_p) :
00045 /*    baci::PcommonImpl< double, ACS::CBdouble, ACS::doubleSeq, ACS::doubleSeq_out, ACS::Monitordouble, Monitordouble, double, double, double, POA_ACS::RWdouble>(name, cob_p, 0),*/
00046     baci::RWdouble(name, cob_p),
00047     m_readback_p(readback_p)
00048 {
00049     ACS_TRACE("::PowerSupplyCurrent::PowerSupplyCurrent");   
00050 }
00051 
00052 
00054 void 
00055 PowerSupplyCurrent::setValue(BACIProperty *property_p,
00056                              BACIValue *value_p, 
00057                              Completion &completion,
00058                              CBDescOut &descOut)
00059 {
00060     ACS::Time timestamp;
00061     
00062     /* Calls parent class method */
00063     baci::RWdouble::setValue(property_p, value_p, completion, descOut);
00064     
00065     /* Calls getDevIO()->writeDouble() for associated readback current */
00066     double value = value_p->doubleValue();
00067     m_readback_p->getDevIO()->write(value, timestamp);
00068 }
00069