#ifndef MULTI_SIGNAL_CLASS_11_13_2006 #define MULTI_SIGNAL_CLASS_11_13_2006 /** @file MultiSignal.h @author Brian Magill @creation date 11/13/2006 $Date:$ $Revision:$ @copyright (©) Copyright 2006 by GATS Inc. 11864 Canon Blvd., Suite 101, Newport News, VA 23606 All Rights Reserved. No part of this software or publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise without the prior written permission of GATS Inc. @brief data class for signal corrections */ #include #include #include #include "AuditAbstract.h" #include "AuditInfo.h" #include "ChannelSignals.h" class MultiSignal: public virtual AuditAbstract, private AuditInfo { private: double time_150km; bool sunsetMode; std::valarray time; std::vector channelArray; public: MultiSignal():AuditInfo(0, "Unknown", Journal("Unintialized")), time_150km(0), sunsetMode(false), time(0), channelArray(0) { }; /// /// @param n - event number /// @param t - times for signals /// @param v - array of signals /// @param name - Name of /// MultiSignal(int n, double point_150km, bool mode, std::valarray const &t, std::vector const &v, Journal trail =Journal("Audit Trail"), std::string name ="Signal Data"): AuditInfo(n, name, trail), time_150km(point_150km), sunsetMode(mode), time(t),channelArray(v) { assert(v.size() > 0 ); assert (t.size() == v.at(0).size() ); }; MultiSignal(MultiSignal const &rhs): AuditInfo(rhs.getEventNumber(), rhs.getDataName(), rhs.getAudit()), time_150km(rhs.time_150km), sunsetMode(rhs.sunsetMode), time(rhs.time),channelArray(rhs.channelArray) { }; MultiSignal const & operator = (MultiSignal const &rhs); ~ MultiSignal() { }; /// Get signal times /// /// @param t_out - output signal times /// void getTime(std::valarray &t_out) const; /// Get a particular channel /// /// @param indx - index for signal channel /// @param v_out - output signal data /// ChannelSignals getChannel(int indx) const; /// @return number of samples in signal data /// unsigned long size() const { return time.size(); }; /// @return number of signal channels /// unsigned long numberOfSignals() const { return channelArray.size(); }; double get150kmTime() const {return time_150km; } bool getModeFlag() const {return sunsetMode; } void dump() const; /// Functions passed through from the private class AuditInfo AuditInfo::getEventNumber; ///< get event number AuditInfo::getDataName; ///< get name of this data object AuditInfo::getAudit; ///< retrieve audit trail AuditInfo::auditAdd; ///< add to audit trail }; #endif