14 #include "gcp/control/code/unix/libunix_src/common/regmap.h"
16 #include "gcp/antenna/control/specific/AxisPositions.h"
17 #include "gcp/antenna/control/specific/Board.h"
18 #include "gcp/antenna/control/specific/Model.h"
19 #include "gcp/antenna/control/specific/ServoCommandSa.h"
20 #include "gcp/antenna/control/specific/PmacTarget.h"
22 #include "gcp/util/common/Angle.h"
23 #include "gcp/util/common/FdSet.h"
34 #define SERVO_TIMEOUT_USEC 150000
42 class ServoCommsSa :
public Board {
49 ServoCommsSa(SpecificShare* share, std::string name,
bool sim);
75 void commandNewPosition(PmacTarget* pmac);
76 void commandNewPosition(PmacTarget* pmac, PmacTarget* pmac1, PmacTarget* pmac2,
gcp::util::TimeVal& mjd);
90 bool isPartOneComplete();
137 unsigned readPositionFault();
162 struct termios termioSave_;
168 RegMapBlock* azPositions_;
169 RegMapBlock* azErrors_;
170 RegMapBlock* elPositions_;
171 RegMapBlock* elErrors_;
172 RegMapBlock* slowAzPos_;
173 RegMapBlock* slowElPos_;
174 RegMapBlock* servoStatus_;
175 RegMapBlock* servoThermalCutouts_;
176 RegMapBlock* servoContactors_;
177 RegMapBlock* servoCircuitBreakers_;
178 RegMapBlock* servoBrakes_;
179 RegMapBlock* driveLids_;
180 RegMapBlock* azWrap_;
210 bool responsePending_;
215 bool initializationPartOne_;
220 bool initializationComplete_;
242 void registerReadFd(
int fd);
248 int waitForNextMessage();
253 int readTCPPort(ServoCommandSa& command);
258 void waitForResponse();
263 void recordStatusResponse(ServoCommandSa& command);
268 void wait(
long nsec=100000000);
ServoCommandSa command_
Definition: servoCommsSa.h:198
void fillUtc(gcp::util::TimeVal &currTime)
Definition: servoCommsSa.cc:785
ServoCommandSa issueCommand(ServoCommandSa::Request req, std::vector< float > &values)
Definition: servoCommsSa.cc:171
bool connect()
Definition: servoCommsSa.cc:260
void queryAntPositions()
Definition: servoCommsSa.cc:700
Request
Definition: ServoCommandSa.h:37
void initializeAntenna()
Definition: servoCommsSa.cc:551
~ServoCommsSa()
Definition: servoCommsSa.cc:106
void queryStatus()
Definition: servoCommsSa.cc:629
void setAzEl(gcp::util::Angle &az, gcp::util::Angle &el)
void disconnect()
Definition: servoCommsSa.cc:236
void sendCommand(ServoCommandSa &command)
Definition: servoCommsSa.cc:116
ServoCommsSa()
Definition: servoCommsSa.cc:96
int readResponse(ServoCommandSa &command)
Definition: servoCommsSa.cc:143
void finishInitialization()
Definition: servoCommsSa.cc:998
void haltAntenna()
Definition: servoCommsSa.cc:519
bool isBrakeOn()
Definition: servoCommsSa.cc:1131
bool servoIsConnected()
Definition: servoCommsSa.cc:372
bool readPosition(AxisPositions *axes, Model *model)
Definition: servoCommsSa.cc:825
bool isCircuitBreakerTripped()
Definition: servoCommsSa.cc:1079
bool isLidOpen()
Definition: servoCommsSa.cc:1119
int writeString(std::string message)
Definition: servoCommsSa.cc:380
bool isThermalTripped()
Definition: servoCommsSa.cc:1098
bool isInitialized()
Definition: servoCommsSa.cc:1143
void hardStopAntenna()
Definition: servoCommsSa.cc:536