9 #ifndef CARMA_ANTENNA_OVRO_CANBUS_DRIVE_H
10 #define CARMA_ANTENNA_OVRO_CANBUS_DRIVE_H
13 #include "carma/monitor/OvroSubsystem.h"
45 carma::monitor::OvroSubsystem & monitorSubsys,
47 const std::string confFilename =
48 "antenna/ovro/drive.conf" );
62 double elRateInRadPerS,
84 bool azOverlapDetected;
148 ::std::vector< carma::canbus::byteType > & data,
192 void enableDrives(
bool enable );
194 void setDriveVoltages(
float azVolts,
float elVolts );
196 void setMaxVoltage(
float azMaxVolts,
float elMaxVolts );
200 void updateFrameData( );
218 carma::monitor::OvroSubsystem & mon_;
219 carma::monitor::OvroSubsystem::DriveModule & driveMon_;
220 carma::monitor::OvroSubsystem::Limit & limitMon_;
221 carma::monitor::OvroSubsystem::Track & trackMon_;
222 carma::monitor::AntennaCommon & comMon_;
224 const unsigned short antNo_;
225 const ::std::string configFilename_;
229 std::auto_ptr< Shared > shared_;
230 std::auto_ptr< carma::services::Table > table_;
TimestampedAzOverlapState getAzOverlapState() const
Retrieve boolean indicating if azimuth is in the overlap region.
bool isInEngineeringMode() const
Is module in engineering mode?
::std::map< ::carma::canbus::msgType,::std::string > MsgIdInfoMap
Alias for an ::std::map containing a string description of a message id, keyed by the described carma...
Class to encapsulate a CAN message.
carma::canbus::MsgIdInfoMap getSlowMonitors() const
Get map of slow monitor points processed by this class.
XacDevice canbus::device class implementation.
bool isDriveEnabled() const
Retrieve boolean indicating if drive is enabled.
void processMsg(carma::canbus::msgType messageId,::std::vector< carma::canbus::byteType > &data, bool sim)
Process CAN message.
Drive(carma::canbus::CanOutput &canOutput, carma::monitor::OvroSubsystem &monitorSubsys, unsigned short antNo, const std::string confFilename="antenna/ovro/drive.conf")
Constructor.
void setEngineeringMode(bool enable)
Set engineering mode.
void setAzElDriveRates(double azRateInRadPerS, double elRateInRadPerS, const carma::services::Angle &elevation)
Set azimuth and elevation drive rates.
void writeMonitorData()
Write monitor data.
carma::canbus::Message simulateMsg(carma::canbus::msgType messageId)
Simulate CAN message.
Simple ASCII Table format, fully memory based.
::std::vector< ::carma::canbus::byteType > DataVector
Alias for CAN data.
The Angle class can represent any angle in any units.
10-m Antenna Drive Module CAN Implementation (API No.
void setRawDriveVoltages(float azRawVolts, float elRawVolts)
Set raw drive voltages for engineering purposes.
carma::canbus::devices::XacDevice class declaration.
bool getControllerOvertemp() const
Retrieve boolean indicating if any of the three drive controllers shows an overtemp fault...
carma::canbus::MsgIdInfoMap getHalfSecMonitors() const
Get map of half second monitor points processed by this class.
void updateConfDataFromFile()
Update configuration parameters from conf file.
bool isAtHwLimit() const
Retrieve boolean indicating if drive is at a hw limit.
unsigned short msgType
Carma Message id type.
virtual ~Drive()
Destructor.
Timestamped az overlap state.
BaseSwitchState
Enum describing base switch state.
void stop()
Stop the drives This is just a shortcut for enabling the drives followed by seting the drive rates to...