M1M3 Support System
Loading...
Searching...
No Matches
M1M3SSPublisher.h
1/*
2 * This file is part of LSST M1M3 support system package.
3 *
4 * Developed for the Vera C. Rubin Telescope and Site System.
5 * This product includes software developed by the LSST Project
6 * (https://www.lsst.org).
7 * See the COPYRIGHT file at the top-level directory of this distribution
8 * for details of code ownership.
9 *
10 * This program is free software: you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation, either version 3 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program. If not, see <https://www.gnu.org/licenses/>.
22 */
23
24#ifndef M1M3SSPUBLISHER_H_
25#define M1M3SSPUBLISHER_H_
26
27#include <SAL_MTM1M3.h>
28#include <SAL_MTM1M3C.h>
29#include <cRIO/DataTypes.h>
30#include <ccpp_sal_MTM1M3.h>
31
32#include <cRIO/Singleton.h>
33
34#include <EnabledForceActuators.h>
35#include <ForceActuatorWarning.h>
36#include <PowerSupplyStatus.h>
37
38#include <memory>
39#include <spdlog/spdlog.h>
40
41namespace LSST {
42namespace M1M3 {
43namespace SS {
44
53class M1M3SSPublisher : public cRIO::Singleton<M1M3SSPublisher> {
54public:
55 M1M3SSPublisher(token);
56
57 void setSAL(std::shared_ptr<SAL_MTM1M3> m1m3SAL);
58
62 void reset();
63
71 MTM1M3_accelerometerDataC *getAccelerometerData() { return &_accelerometerData; }
72 MTM1M3_gyroDataC *getGyroData() { return &_gyroData; }
73 MTM1M3_hardpointActuatorDataC *getHardpointActuatorData() { return &_hardpointActuatorData; }
74 MTM1M3_hardpointMonitorDataC *getHardpointMonitorData() { return &_hardpointMonitorData; }
75 MTM1M3_imsDataC *getIMSData() { return &_imsData; }
76 MTM1M3_inclinometerDataC *getInclinometerData() { return &_inclinometerData; }
77 MTM1M3_outerLoopDataC *getOuterLoopData() { return &_outerLoopData; }
78 MTM1M3_pidDataC *getPIDData() { return &_pidData; }
79 MTM1M3_powerSupplyDataC *getPowerSupplyData() { return &_powerSupplyData; }
80
81 MTM1M3_logevent_accelerometerWarningC *getEventAccelerometerWarning() {
82 return &_eventAccelerometerWarning;
83 }
84 MTM1M3_logevent_airSupplyWarningC *getEventAirSupplyWarning() { return &_eventAirSupplyWarning; }
85 MTM1M3_appliedAccelerationForcesC *getAppliedAccelerationForces() { return &_appliedAccelerationForces; }
86 MTM1M3_logevent_appliedActiveOpticForcesC *getEventAppliedActiveOpticForces() {
87 return &_eventAppliedActiveOpticForces;
88 }
89 MTM1M3_appliedAzimuthForcesC *getAppliedAzimuthForces() { return &_appliedAzimuthForces; }
90 MTM1M3_appliedBalanceForcesC *getAppliedBalanceForces() { return &_appliedBalanceForces; }
91 MTM1M3_appliedCylinderForcesC *getAppliedCylinderForces() { return &_appliedCylinderForces; }
92 MTM1M3_appliedElevationForcesC *getAppliedElevationForces() { return &appliedElevationForces; }
93 MTM1M3_appliedForcesC *getAppliedForces() { return &_appliedForces; }
94 MTM1M3_logevent_appliedOffsetForcesC *getEventAppliedOffsetForces() { return &_eventAppliedOffsetForces; }
95 MTM1M3_logevent_appliedStaticForcesC *getEventAppliedStaticForces() { return &eventAppliedStaticForces; }
96 MTM1M3_appliedThermalForcesC *getAppliedThermalForces() { return &_appliedThermalForces; }
97 MTM1M3_appliedVelocityForcesC *getAppliedVelocityForces() { return &_appliedVelocityForces; }
98 MTM1M3_logevent_cellLightStatusC *getEventCellLightStatus() { return &_eventCellLightStatus; }
99 MTM1M3_logevent_cellLightWarningC *getEventCellLightWarning() { return &_eventCellLightWarning; }
100 MTM1M3_logevent_commandRejectionWarningC *getEventCommandRejectionWarning() {
101 return &_eventCommandRejectionWarning;
102 }
103 MTM1M3_logevent_detailedStateC *getEventDetailedState() { return &_eventDetailedState; }
104 MTM1M3_logevent_displacementSensorWarningC *getEventDisplacementSensorWarning() {
105 return &_eventDisplacementSensorWarning;
106 }
107 static EnabledForceActuators *getEnabledForceActuators() { return &(instance()._enabledForceActuators); }
108 MTM1M3_logevent_errorCodeC *getEventErrorCode() { return &_eventErrorCode; }
109 MTM1M3_logevent_forceActuatorBumpTestStatusC *getEventForceActuatorBumpTestStatus() {
110 return &_eventForceActuatorBumpTestStatus;
111 }
112 MTM1M3_logevent_forceActuatorStateC *getEventForceActuatorState() { return &_eventForceActuatorState; }
113 static ForceActuatorWarning *getForceActuatorWarning() { return &(instance()._forceActuatorWarning); }
114 MTM1M3_logevent_forceSetpointWarningC *getEventForceSetpointWarning() {
115 return &_eventForceSetpointWarning;
116 }
117 MTM1M3_logevent_gyroWarningC *getEventGyroWarning() { return &_eventGyroWarning; }
118 MTM1M3_logevent_hardpointActuatorInfoC *getEventHardpointActuatorInfo() {
119 return &_eventHardpointActuatorInfo;
120 }
121 MTM1M3_logevent_hardpointActuatorStateC *getEventHardpointActuatorState() {
122 return &_eventHardpointActuatorState;
123 }
124 MTM1M3_logevent_hardpointMonitorInfoC *getEventHardpointMonitorInfo() {
125 return &_eventHardpointMonitorInfo;
126 }
127 MTM1M3_logevent_hardpointMonitorStateC *getEventHardpointMonitorState() {
128 return &_eventHardpointMonitorState;
129 }
130 MTM1M3_logevent_hardpointMonitorWarningC *getEventHardpointMonitorWarning() {
131 return &_eventHardpointMonitorWarning;
132 }
133 MTM1M3_logevent_ilcWarningC *getEventILCWarning() { return &_eventILCWarning; }
134 MTM1M3_logevent_inclinometerSensorWarningC *getEventInclinometerSensorWarning() {
135 return &_eventInclinometerSensorWarning;
136 }
137 MTM1M3_logevent_interlockWarningC *getEventInterlockWarning() { return &_eventInterlockWarning; }
138 MTM1M3_logevent_pidInfoC *getEventPIDInfo() { return &_eventPIDInfo; }
139 MTM1M3_logevent_powerStatusC *getEventPowerStatus() { return &_eventPowerStatus; }
140 static PowerSupplyStatus *getPowerSupplyStatus() { return &(instance()._powerSupplyStatus); }
141 MTM1M3_logevent_powerWarningC *getEventPowerWarning() { return &_eventPowerWarning; }
142 MTM1M3_logevent_preclippedAccelerationForcesC *getEventPreclippedAccelerationForces() {
143 return &_eventPreclippedAccelerationForces;
144 }
145 MTM1M3_logevent_preclippedActiveOpticForcesC *getEventPreclippedActiveOpticForces() {
146 return &_eventPreclippedActiveOpticForces;
147 }
148 MTM1M3_logevent_preclippedAzimuthForcesC *getEventPreclippedAzimuthForces() {
149 return &_eventPreclippedAzimuthForces;
150 }
151 MTM1M3_logevent_preclippedBalanceForcesC *getEventPreclippedBalanceForces() {
152 return &_eventPreclippedBalanceForces;
153 }
154 MTM1M3_logevent_preclippedCylinderForcesC *getEventPreclippedCylinderForces() {
155 return &_eventPreclippedCylinderForces;
156 }
157 MTM1M3_logevent_preclippedElevationForcesC *getEventPreclippedElevationForces() {
158 return &_eventPreclippedElevationForces;
159 }
160 MTM1M3_logevent_preclippedForcesC *getEventPreclippedForces() { return &_eventPreclippedForces; }
161 MTM1M3_logevent_preclippedOffsetForcesC *getEventPreclippedOffsetForces() {
162 return &_eventPreclippedOffsetForces;
163 }
164 MTM1M3_logevent_preclippedStaticForcesC *getEventPreclippedStaticForces() {
165 return &_eventPreclippedStaticForces;
166 }
167 MTM1M3_logevent_preclippedThermalForcesC *getEventPreclippedThermalForces() {
168 return &_eventPreclippedThermalForces;
169 }
170 MTM1M3_logevent_preclippedVelocityForcesC *getEventPreclippedVelocityForces() {
171 return &_eventPreclippedVelocityForces;
172 }
173 MTM1M3_logevent_configurationsAvailableC *getEventConfigurationsAvailable() {
174 return &_eventConfigurationsAvailable;
175 }
176 MTM1M3_logevent_configurationAppliedC *getEventConfigurationApplied() {
177 return &_eventConfigurationApplied;
178 }
179 MTM1M3_logevent_summaryStateC *getEventSummaryState() { return &_eventSummaryState; }
180
186 double getTimestamp() { return _m1m3SAL->getCurrentTime(); }
187
193 void putForceActuatorData(MTM1M3_forceActuatorDataC *data) {
194 _m1m3SAL->putSample_forceActuatorData(data);
195 }
196 void putGyroData();
197 void putHardpointActuatorData();
198 void putHardpointMonitorData();
199 void putIMSData();
200 void putInclinometerData();
201 void putOuterLoopData();
202 void putPIDData();
203 void putPowerSupplyData();
204
205 void logAccelerometerSettings(MTM1M3_logevent_accelerometerSettingsC *data) {
206 _m1m3SAL->logEvent_accelerometerSettings(data, 0);
207 }
208 void logPositionControllerSettings(MTM1M3_logevent_positionControllerSettingsC *data) {
209 _m1m3SAL->logEvent_positionControllerSettings(data, 0);
210 }
211 void logSlewControllerSettings(MTM1M3_logevent_slewControllerSettingsC *data) {
212 _m1m3SAL->logEvent_slewControllerSettings(data, 0);
213 }
214
221
229 void logAirSupplyStatus(MTM1M3_logevent_airSupplyStatusC *data) {
230 _m1m3SAL->logEvent_airSupplyStatus(data, 0);
231 }
232 void logAirSupplyWarning();
233 void tryLogAirSupplyWarning();
234 void logAppliedAccelerationForces();
235 void logAppliedActiveOpticForces();
236 void logAppliedAzimuthForces();
237 void logAppliedBalanceForces();
238 void logAppliedCylinderForces();
239 void logAppliedElevationForces();
240 void logAppliedForces();
241 void logAppliedOffsetForces();
242 void logAppliedStaticForces();
243 void logAppliedThermalForces();
244 void logAppliedVelocityForces();
245 void logBoosterValveSettings(MTM1M3_logevent_boosterValveSettingsC *data) {
246 _m1m3SAL->logEvent_boosterValveSettings(data, 0);
247 }
248 void logBoosterValveStatus(MTM1M3_logevent_boosterValveStatusC *data) {
249 _m1m3SAL->logEvent_boosterValveStatus(data, 0);
250 }
251 void logCellLightStatus();
252 void tryLogCellLightStatus();
253 void logCellLightWarning();
254 void tryLogCellLightWarning();
255 void logCommandRejectionWarning();
256 void logCommandRejectionWarning(std::string command, std::string reason);
257 template <typename... Args>
258 void commandFailed(std::string command, std::string const &format, Args const &...args) {
259 std::string reason = fmt::format(format, args...);
260 logCommandRejectionWarning(command, reason);
261 throw std::runtime_error(reason);
262 }
263 void logDetailedState();
264 void tryLogDetailedState();
265 void logDisplacementSensorSettings(MTM1M3_logevent_displacementSensorSettingsC *data) {
266 _m1m3SAL->logEvent_displacementSensorSettings(data, 0);
267 }
268 void logDisplacementSensorWarning();
269 void logEnabledForceActuators(MTM1M3_logevent_enabledForceActuatorsC *data) {
270 _m1m3SAL->logEvent_enabledForceActuators(data, 0);
271 }
272 void tryLogDisplacementSensorWarning();
273 void logErrorCode();
274 void tryLogErrorCode();
275 void logForceActuatorSettings(MTM1M3_logevent_forceActuatorSettingsC *data) {
276 _m1m3SAL->logEvent_forceActuatorSettings(data, 0);
277 }
278 void logForceActuatorBumpTestStatus();
279 void logForceActuatorForceWarning(MTM1M3_logevent_forceActuatorForceWarningC *data) {
280 _m1m3SAL->logEvent_forceActuatorForceWarning(data, 0);
281 }
282 void logForceActuatorFollowingErrorCounter(MTM1M3_logevent_forceActuatorFollowingErrorCounterC *data) {
283 _m1m3SAL->logEvent_forceActuatorFollowingErrorCounter(data, 0);
284 }
285 void tryLogForceActuatorForceWarning();
286 void logForceActuatorInfo(MTM1M3_logevent_forceActuatorInfoC *data) {
287 _m1m3SAL->logEvent_forceActuatorInfo(data, 0);
288 }
289 void logForceActuatorState();
290 void tryLogForceActuatorState();
291 void logForceActuatorWarning(MTM1M3_logevent_forceActuatorWarningC *data) {}
294
295 void logForceControllerState(MTM1M3_logevent_forceControllerStateC *data) {
296 _m1m3SAL->logEvent_forceControllerState(data, 0);
297 }
298 void logForceSetpointWarning();
299 void tryLogForceSetpointWarning();
300 void logGyroSettings(MTM1M3_logevent_gyroSettingsC *data) { _m1m3SAL->logEvent_gyroSettings(data, 0); }
301 void logGyroWarning();
302 void tryLogGyroWarning();
303 void logHardpointActuatorInfo();
304 void tryLogHardpointActuatorInfo();
305 void logHardpointActuatorSettings(MTM1M3_logevent_hardpointActuatorSettingsC *data) {
306 _m1m3SAL->logEvent_hardpointActuatorSettings(data, 0);
307 }
308 void logHardpointActuatorState();
309 void tryLogHardpointActuatorState();
310 void logHardpointActuatorWarning(MTM1M3_logevent_hardpointActuatorWarningC *data) {
311 _m1m3SAL->logEvent_hardpointActuatorWarning(data, 0);
312 }
313 void logHardpointMonitorInfo();
314 void tryLogHardpointMonitorInfo();
315 void logHardpointMonitorState();
316 void tryLogHardpointMonitorState();
317 void logHardpointMonitorWarning();
318 void tryLogHardpointMonitorWarning();
319 void logHardpointTestStatus(MTM1M3_logevent_hardpointTestStatusC *data) {
320 _m1m3SAL->logEvent_hardpointTestStatus(data, 0);
321 }
322 void logHeartbeat(MTM1M3_logevent_heartbeatC *data) { _m1m3SAL->logEvent_heartbeat(data, 0); }
323 void logILCWarning(MTM1M3_logevent_ilcWarningC *data) { _m1m3SAL->logEvent_ilcWarning(data, 0); }
324 void logInclinometerSettings(MTM1M3_logevent_inclinometerSettingsC *data) {
325 _m1m3SAL->logEvent_inclinometerSettings(data, 0);
326 }
327 void logInclinometerSensorWarning();
328 void tryLogInclinometerSensorWarning();
329 void logInterlockStatus(MTM1M3_logevent_interlockStatusC *data) {
330 _m1m3SAL->logEvent_interlockStatus(data, 0);
331 }
332 void logInterlockWarning(MTM1M3_logevent_interlockWarningC *data) {
333 _m1m3SAL->logEvent_interlockWarning(data, 0);
334 };
335 void newLogLevel(int newLevel);
336 void logPIDInfo();
337 void logPIDSettings(MTM1M3_logevent_pidSettingsC *data) { _m1m3SAL->logEvent_pidSettings(data, 0); }
338 void logPowerStatus();
339 void tryLogPowerStatus();
340 void logPowerSupplyStatus(MTM1M3_logevent_powerSupplyStatusC *data) {
341 _m1m3SAL->logEvent_powerSupplyStatus(data, 0);
342 }
343 void logPowerWarning();
344 void tryLogPowerWarning();
345 void logPreclippedAccelerationForces();
346 void logPreclippedActiveOpticForces();
347 void logPreclippedAzimuthForces();
348 void logPreclippedBalanceForces();
349 void logPreclippedCylinderForces();
350 void logPreclippedElevationForces();
351 void logPreclippedForces();
352 void logPreclippedOffsetForces();
353 void logPreclippedStaticForces();
354 void logPreclippedThermalForces();
355 void logPreclippedVelocityForces();
356 void logConfigurationsAvailable() {
357 _m1m3SAL->logEvent_configurationsAvailable(&_eventConfigurationsAvailable, 0);
358 }
359 void logConfigurationApplied() {
360 _m1m3SAL->logEvent_configurationApplied(&_eventConfigurationApplied, 0);
361 }
362 void logSimulationMode(MTM1M3_logevent_simulationModeC *data) {
363 _m1m3SAL->logEvent_simulationMode(data, 0);
364 }
365 void logSoftwareVersions();
366 void logSummaryState();
367 void tryLogSummaryState();
368
369 void logRaisingLoweringInfo(MTM1M3_logevent_raisingLoweringInfoC *data) {
370 _m1m3SAL->logEvent_raisingLoweringInfo(data, 0);
371 }
372
383#define ACK_COMMAND_H(command) \
384 void ackCommand##command(int32_t commandID, int32_t ackCode, std::string description, \
385 double timeout = 0.0);
386
387 ACK_COMMAND_H(setLogLevel)
388 ACK_COMMAND_H(start)
389 ACK_COMMAND_H(enable)
390 ACK_COMMAND_H(disable)
391 ACK_COMMAND_H(standby)
392 ACK_COMMAND_H(exitControl)
393 ACK_COMMAND_H(panic)
394 ACK_COMMAND_H(setSlewFlag)
395 ACK_COMMAND_H(clearSlewFlag)
396 ACK_COMMAND_H(turnAirOn)
397 ACK_COMMAND_H(turnAirOff)
398 ACK_COMMAND_H(applyOffsetForces)
399 ACK_COMMAND_H(clearOffsetForces)
400 ACK_COMMAND_H(raiseM1M3)
401 ACK_COMMAND_H(lowerM1M3)
402 ACK_COMMAND_H(pauseM1M3RaisingLowering)
403 ACK_COMMAND_H(resumeM1M3RaisingLowering)
404 ACK_COMMAND_H(applyActiveOpticForces)
405 ACK_COMMAND_H(clearActiveOpticForces)
406 ACK_COMMAND_H(enterEngineering)
407 ACK_COMMAND_H(exitEngineering)
408 ACK_COMMAND_H(boosterValveOpen)
409 ACK_COMMAND_H(boosterValveClose)
410 ACK_COMMAND_H(testHardpoint)
411 ACK_COMMAND_H(killHardpointTest)
412 ACK_COMMAND_H(moveHardpointActuators)
413 ACK_COMMAND_H(enableHardpointChase)
414 ACK_COMMAND_H(disableHardpointChase)
415 ACK_COMMAND_H(abortRaiseM1M3)
416 ACK_COMMAND_H(translateM1M3)
417 ACK_COMMAND_H(stopHardpointMotion)
418 ACK_COMMAND_H(positionM1M3)
419 ACK_COMMAND_H(turnLightsOn)
420 ACK_COMMAND_H(turnLightsOff)
421 ACK_COMMAND_H(turnPowerOn)
422 ACK_COMMAND_H(turnPowerOff)
423 ACK_COMMAND_H(enableHardpointCorrections)
424 ACK_COMMAND_H(disableHardpointCorrections)
425 ACK_COMMAND_H(runMirrorForceProfile)
426 ACK_COMMAND_H(abortProfile)
427 ACK_COMMAND_H(applyOffsetForcesByMirrorForce)
428 ACK_COMMAND_H(updatePID)
429 ACK_COMMAND_H(resetPID)
430 ACK_COMMAND_H(forceActuatorBumpTest)
431 ACK_COMMAND_H(killForceActuatorBumpTest)
432 ACK_COMMAND_H(disableForceActuator)
433 ACK_COMMAND_H(enableForceActuator)
434 ACK_COMMAND_H(enableAllForceActuators)
435 ACK_COMMAND_H(enableDisableForceComponent)
436 ACK_COMMAND_H(setSlewControllerSettings)
437
438private:
439 M1M3SSPublisher &operator=(const M1M3SSPublisher &) = delete;
440 M1M3SSPublisher(const M1M3SSPublisher &) = delete;
441
442 std::shared_ptr<SAL_MTM1M3> _m1m3SAL;
443
444 MTM1M3_accelerometerDataC _accelerometerData;
445 MTM1M3_gyroDataC _gyroData;
446 MTM1M3_hardpointActuatorDataC _hardpointActuatorData;
447 MTM1M3_hardpointMonitorDataC _hardpointMonitorData;
448 MTM1M3_imsDataC _imsData;
449 MTM1M3_inclinometerDataC _inclinometerData;
450 MTM1M3_outerLoopDataC _outerLoopData;
451 MTM1M3_pidDataC _pidData;
452 MTM1M3_powerSupplyDataC _powerSupplyData;
453
454 MTM1M3_logevent_accelerometerWarningC _eventAccelerometerWarning;
455 MTM1M3_logevent_airSupplyWarningC _eventAirSupplyWarning;
456
457 MTM1M3_appliedAccelerationForcesC _appliedAccelerationForces;
458 MTM1M3_appliedAzimuthForcesC _appliedAzimuthForces;
459 MTM1M3_appliedBalanceForcesC _appliedBalanceForces;
460 MTM1M3_appliedCylinderForcesC _appliedCylinderForces;
461 MTM1M3_appliedElevationForcesC appliedElevationForces;
462 MTM1M3_appliedForcesC _appliedForces;
463 MTM1M3_appliedThermalForcesC _appliedThermalForces;
464 MTM1M3_appliedVelocityForcesC _appliedVelocityForces;
465
466 MTM1M3_logevent_appliedActiveOpticForcesC _eventAppliedActiveOpticForces;
467 MTM1M3_logevent_appliedOffsetForcesC _eventAppliedOffsetForces;
468 MTM1M3_logevent_appliedStaticForcesC eventAppliedStaticForces;
469 MTM1M3_logevent_cellLightStatusC _eventCellLightStatus;
470 MTM1M3_logevent_cellLightWarningC _eventCellLightWarning;
471 MTM1M3_logevent_commandRejectionWarningC _eventCommandRejectionWarning;
472 MTM1M3_logevent_detailedStateC _eventDetailedState;
473 MTM1M3_logevent_displacementSensorWarningC _eventDisplacementSensorWarning;
474 EnabledForceActuators _enabledForceActuators;
475 MTM1M3_logevent_errorCodeC _eventErrorCode;
476 MTM1M3_logevent_forceActuatorBumpTestStatusC _eventForceActuatorBumpTestStatus;
477 MTM1M3_logevent_forceActuatorStateC _eventForceActuatorState;
478 ForceActuatorWarning _forceActuatorWarning;
479 MTM1M3_logevent_forceSetpointWarningC _eventForceSetpointWarning;
480 MTM1M3_logevent_gyroWarningC _eventGyroWarning;
481 MTM1M3_logevent_hardpointActuatorInfoC _eventHardpointActuatorInfo;
482 MTM1M3_logevent_hardpointActuatorStateC _eventHardpointActuatorState;
483 MTM1M3_logevent_hardpointMonitorInfoC _eventHardpointMonitorInfo;
484 MTM1M3_logevent_hardpointMonitorStateC _eventHardpointMonitorState;
485 MTM1M3_logevent_hardpointMonitorWarningC _eventHardpointMonitorWarning;
486 MTM1M3_logevent_ilcWarningC _eventILCWarning;
487 MTM1M3_logevent_inclinometerSensorWarningC _eventInclinometerSensorWarning;
488 MTM1M3_logevent_interlockWarningC _eventInterlockWarning;
489 MTM1M3_logevent_pidInfoC _eventPIDInfo;
490 MTM1M3_logevent_powerStatusC _eventPowerStatus;
491 PowerSupplyStatus _powerSupplyStatus;
492 MTM1M3_logevent_powerWarningC _eventPowerWarning;
493 MTM1M3_logevent_preclippedAccelerationForcesC _eventPreclippedAccelerationForces;
494 MTM1M3_logevent_preclippedActiveOpticForcesC _eventPreclippedActiveOpticForces;
495 MTM1M3_logevent_preclippedAzimuthForcesC _eventPreclippedAzimuthForces;
496 MTM1M3_logevent_preclippedBalanceForcesC _eventPreclippedBalanceForces;
497 MTM1M3_logevent_preclippedCylinderForcesC _eventPreclippedCylinderForces;
498 MTM1M3_logevent_preclippedElevationForcesC _eventPreclippedElevationForces;
499 MTM1M3_logevent_preclippedForcesC _eventPreclippedForces;
500 MTM1M3_logevent_preclippedOffsetForcesC _eventPreclippedOffsetForces;
501 MTM1M3_logevent_preclippedStaticForcesC _eventPreclippedStaticForces;
502 MTM1M3_logevent_preclippedThermalForcesC _eventPreclippedThermalForces;
503 MTM1M3_logevent_preclippedVelocityForcesC _eventPreclippedVelocityForces;
504 MTM1M3_logevent_configurationsAvailableC _eventConfigurationsAvailable;
505 MTM1M3_logevent_configurationAppliedC _eventConfigurationApplied;
506 MTM1M3_logevent_summaryStateC _eventSummaryState;
507
508 MTM1M3_logevent_accelerometerWarningC _previousEventAccelerometerWarning;
509 MTM1M3_logevent_airSupplyWarningC _previousEventAirSupplyWarning;
510 MTM1M3_logevent_appliedActiveOpticForcesC _previousEventAppliedActiveOpticForces;
511 MTM1M3_logevent_appliedOffsetForcesC _previousEventAppliedOffsetForces;
512 MTM1M3_logevent_appliedStaticForcesC _previousEventAppliedStaticForces;
513 MTM1M3_logevent_cellLightStatusC _previousEventCellLightStatus;
514 MTM1M3_logevent_cellLightWarningC _previousEventCellLightWarning;
515 MTM1M3_logevent_commandRejectionWarningC _previousEventCommandRejectionWarning;
516 MTM1M3_logevent_detailedStateC _previousEventDetailedState;
517 MTM1M3_logevent_displacementSensorWarningC _previousEventDisplacementSensorWarning;
518 MTM1M3_logevent_errorCodeC _previousEventErrorCode;
519 MTM1M3_logevent_forceActuatorBumpTestStatusC _previousEventForceActuatorBumpTestStatus;
520 MTM1M3_logevent_forceActuatorStateC _previousEventForceActuatorState;
521 MTM1M3_logevent_forceSetpointWarningC _previousEventForceSetpointWarning;
522 MTM1M3_logevent_gyroWarningC _previousEventGyroWarning;
523 MTM1M3_logevent_hardpointActuatorInfoC _previousEventHardpointActuatorInfo;
524 MTM1M3_logevent_hardpointActuatorStateC _previousEventHardpointActuatorState;
525 MTM1M3_logevent_hardpointMonitorInfoC _previousEventHardpointMonitorInfo;
526 MTM1M3_logevent_hardpointMonitorStateC _previousEventHardpointMonitorState;
527 MTM1M3_logevent_hardpointMonitorWarningC _previousEventHardpointMonitorWarning;
528 MTM1M3_logevent_ilcWarningC _previousEventILCWarning;
529 MTM1M3_logevent_inclinometerSensorWarningC _previousEventInclinometerSensorWarning;
530 MTM1M3_logevent_interlockWarningC _previousEventInterlockWarning;
531 MTM1M3_logevent_powerStatusC _previousEventPowerStatus;
532 MTM1M3_logevent_powerSupplyStatusC _previousEventPowerSupplyStatus;
533 MTM1M3_logevent_powerWarningC _previousEventPowerWarning;
534 MTM1M3_logevent_preclippedAccelerationForcesC _previousEventPreclippedAccelerationForces;
535 MTM1M3_logevent_preclippedActiveOpticForcesC _previousEventPreclippedActiveOpticForces;
536 MTM1M3_logevent_preclippedAzimuthForcesC _previousEventPreclippedAzimuthForces;
537 MTM1M3_logevent_preclippedBalanceForcesC _previousEventPreclippedBalanceForces;
538 MTM1M3_logevent_preclippedCylinderForcesC _previousEventPreclippedCylinderForces;
539 MTM1M3_logevent_preclippedElevationForcesC _previousEventPreclippedElevationForces;
540 MTM1M3_logevent_preclippedForcesC _previousEventPreclippedForces;
541 MTM1M3_logevent_preclippedOffsetForcesC _previousEventPreclippedOffsetForces;
542 MTM1M3_logevent_preclippedStaticForcesC _previousEventPreclippedStaticForces;
543 MTM1M3_logevent_preclippedThermalForcesC _previousEventPreclippedThermalForces;
544 MTM1M3_logevent_preclippedVelocityForcesC _previousEventPreclippedVelocityForces;
545 MTM1M3_logevent_summaryStateC _previousEventSummaryState;
546};
547
548} /* namespace SS */
549} /* namespace M1M3 */
550} /* namespace LSST */
551
552#endif /* M1M3SSPUBLISHER_H_ */
Singleton class for M1M3 SAL communication.
Definition M1M3SSPublisher.h:53
double getTimestamp()
Returns current timestamp.
Definition M1M3SSPublisher.h:186
MTM1M3_accelerometerDataC * getAccelerometerData()
Returns pointer to accelerometer data.
Definition M1M3SSPublisher.h:71
void tryLogAccelerometerWarning()
Sends AccelerometerWarning event if event data changed from last successful (accepted in tryLogAccele...
Definition M1M3SSPublisher.cpp:160
void putAccelerometerData()
Sends accelerometer data stored in pointer returned by getAccelerometerData().
Definition M1M3SSPublisher.cpp:140
void reset()
Called when new settigns are loaded to resend 0 events.
Definition M1M3SSPublisher.cpp:130
void logForceControllerState(MTM1M3_logevent_forceControllerStateC *data)
_m1m3SAL->logEvent_forceActuatorWarning(data, 0); }
Definition M1M3SSPublisher.h:295
void logAccelerometerWarning()
Sends AccelerometerWarning event.
Definition M1M3SSPublisher.cpp:154