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