#ifndef SOFIE_SOLAR_TRACKING_12_23_2005 #define SOFIE_SOLAR_TRACKING_12_23_2005 /** @file Solar Tracking Class @author Brian Magill @datecreated 12/23/2005 $Date: 2006/03/10 16:02:28 $ $Revision: 1.1.1.1 $ @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 Class for tracking the solar image for one particular time. Command elevation and azimuth are the the commands the onboard controller feedback circuit sends to the mirror positioners */ //---------------------------------------------------------------------- // #include "SOFIE_namespace.h" class SolarTracking { protected: double time; // time of sample double X_Low; // left edge double X_High; // right edge double Y_Low; // bottom edge double Y_High; // top edge double Elev; // command elevation double Azim; // command azimuth int Status; // return value for Solar Tracker public: SolarTracking( ):time(0), X_Low(0), X_High(0), Y_Low(0), Y_High(0), Elev(0), Azim(0), Status(0) { }; SolarTracking(double tim, double xLo, double xHi, double yLo, double yHi, double el, double az, int stat): time(tim), X_Low(xLo), X_High(xHi), Y_Low(yLo), Y_High(yHi), Elev(el), Azim(az), Status(stat) { }; SolarTracking(SolarTracking const& rhs ):time(rhs.time), X_Low(rhs.X_Low), X_High(rhs.X_High), Y_Low(rhs.Y_Low), Y_High(rhs.Y_High), Elev(rhs.Elev), Azim(rhs.Azim), Status(rhs.Status) { }; SolarTracking& operator = (SolarTracking const& rhs ); ~SolarTracking() { }; bool operator < (SolarTracking const& rhs ) const; bool operator > (SolarTracking const& rhs ) const; double getTime() const { return time; }; double getXLow() const { return X_Low; }; double getXHigh() const { return X_High; }; double getYLow() const { return Y_Low; }; double getYHigh() const { return Y_High; }; double getElev() const { return Elev; }; double getAzim() const { return Azim; }; int getStatus()const { return Status; }; double getXSolarExtent() const { return (X_High - X_Low); }; double getYSolarExtent() const { return (Y_High - Y_Low); }; // void setTime(double tim) {time = tim; }; // probably not a good idea to allow the data to be set outside constructors // // void setXLow(double value) { X_Low = value; }; // void setXHigh(double value) { X_High = value; }; // void setYLow(double value) { Y_Low = value; }; // void setYHigh(double value) { Y_High = value; }; // void setElev(double value) { Elev = value; }; // void setAzim(double value) { Azim = value; }; // void set // void dump() const; }; #endif