11 #include "carma/szaarrayutils/szaregs.h"
16 #include "carma/szautil/Axis.h"
18 #include "carma/szautil/PointingMode.h"
19 #include "carma/szautil/Rx.h"
117 char source[SRC_LEN];
129 WrapMode::Mode wrapMode;
137 sza::util::OffsetMsg offset;
266 sza::util::OffsetMsg::Mode addMode;
278 } encoderCountsPerTurn;
354 unsigned short board;
360 double airTemperatureInK;
361 double relativeHumidity;
362 double pressureInMbar;
366 sza::util::Rx::Id id;
370 WrapMode::Mode wrapMode;
387 inline void packConnectPmacMsg() {
389 sza::util::GenericTaskMsg::TASK_SPECIFIC;
391 setCarmaSequenceNumber();
398 inline void packStrobePmacMsg() {
400 sza::util::GenericTaskMsg::TASK_SPECIFIC;
402 setCarmaSequenceNumber();
409 inline void packDisconnectPmacMsg() {
411 sza::util::GenericTaskMsg::TASK_SPECIFIC;
413 setCarmaSequenceNumber();
414 type = DISCONNECT_PMAC;
417 inline void packRebootPmacMsg(
unsigned long seq)
420 sza::util::GenericTaskMsg::TASK_SPECIFIC;
422 setCarmaSequenceNumber();
424 body.rebootPmac.seq = seq;
427 inline void packSlewMsg(
unsigned long seq,
430 double az,
double el,
double pa)
433 sza::util::GenericTaskMsg::TASK_SPECIFIC;
437 body.slew.axes = axes;
439 if(source.size() > SRC_LEN)
440 ThrowError(
"source name is too long.\n");
442 strncpy(body.slew.source, source.c_str(), SRC_LEN);
448 setCarmaSequenceNumber();
451 inline void packHaltMsg(
unsigned long seq)
454 sza::util::GenericTaskMsg::TASK_SPECIFIC;
459 setCarmaSequenceNumber();
462 inline void packTrackMsg(
signed long seq,
464 double mjd,
double ra,
465 double dec,
double dist,
466 WrapMode::Mode wrapMode)
469 sza::util::GenericTaskMsg::TASK_SPECIFIC;
471 setCarmaSequenceNumber();
473 body.track.seq = seq;
475 if(source.size() > SRC_LEN)
476 ThrowError(
"source name is too long.\n");
478 strncpy(body.track.source, source.c_str(), SRC_LEN);
480 body.track.mjd = mjd;
482 body.track.dec = dec;
483 body.track.dist = dist;
484 body.track.wrapMode = wrapMode;
487 inline void packOffsetMsg(
unsigned long seq,
488 sza::util::OffsetMsg offset)
491 sza::util::GenericTaskMsg::TASK_SPECIFIC;
493 setCarmaSequenceNumber();
495 body.offset.seq = seq;
496 body.offset.offset = offset;
499 inline void packTvAngleMsg(
double angle)
502 sza::util::GenericTaskMsg::TASK_SPECIFIC;
504 setCarmaSequenceNumber();
506 body.tvAngle.angle = angle;
509 inline void packEncoderZerosMsg(
unsigned long seq,
510 double az,
double el,
double dk)
513 sza::util::GenericTaskMsg::TASK_SPECIFIC;
515 setCarmaSequenceNumber();
516 type = ENCODER_ZEROS;
518 body.encoderZeros.seq = seq;
519 body.encoderZeros.az = az;
520 body.encoderZeros.el = el;
521 body.encoderZeros.dk = dk;
524 inline void packEncoderCountsPerTurnMsg(
unsigned long seq,
525 long az,
long el,
long dk)
528 sza::util::GenericTaskMsg::TASK_SPECIFIC;
530 setCarmaSequenceNumber();
532 body.encoderCountsPerTurn.seq = seq;
533 body.encoderCountsPerTurn.az = az;
534 body.encoderCountsPerTurn.el = el;
535 body.encoderCountsPerTurn.dk = dk;
542 sza::util::GenericTaskMsg::TASK_SPECIFIC;
544 setCarmaSequenceNumber();
546 body.refraction.mode = mode;
547 body.refraction.a = a;
548 body.refraction.b = b;
551 inline void packRestartMsg()
554 sza::util::GenericTaskMsg::TASK_SPECIFIC;
556 setCarmaSequenceNumber();
560 inline void packExtendUt1UtcMsg(
double mjd,
double ut1utc)
563 sza::util::GenericTaskMsg::TASK_SPECIFIC;
565 setCarmaSequenceNumber();
566 type = EXTEND_UT1UTC;
567 body.extendUt1Utc.mjd = mjd;
568 body.extendUt1Utc.ut1utc = ut1utc;
571 inline void packExtendEqnEqxMsg(
double mjd,
double eqneqx)
574 sza::util::GenericTaskMsg::TASK_SPECIFIC;
576 setCarmaSequenceNumber();
577 type = EXTEND_EQNEQX;
578 body.extendEqnEqx.mjd = mjd;
579 body.extendEqnEqx.eqneqx = eqneqx;
582 inline void packSlewRateMsg(
unsigned long seq,
584 long az,
long el,
long dk)
587 sza::util::GenericTaskMsg::TASK_SPECIFIC;
589 setCarmaSequenceNumber();
591 body.slewRate.seq = seq;
592 body.slewRate.axes = axes;
593 body.slewRate.az = az;
594 body.slewRate.el = el;
595 body.slewRate.dk = dk;
598 inline void packTickMsg(
unsigned long tick)
601 sza::util::GenericTaskMsg::TASK_SPECIFIC;
603 setCarmaSequenceNumber();
608 inline void packTiltsMsg(
unsigned long seq,
double ha,
double lat,
612 sza::util::GenericTaskMsg::TASK_SPECIFIC;
614 setCarmaSequenceNumber();
616 body.tilts.seq = seq;
618 body.tilts.lat = lat;
622 inline void packFlexureMsg(
unsigned long seq,
628 sza::util::GenericTaskMsg::TASK_SPECIFIC;
630 setCarmaSequenceNumber();
632 body.flexure.seq = seq;
633 body.flexure.mode = mode;
634 body.flexure.sFlexure = sFlexure;
635 body.flexure.cFlexure = cFlexure;
638 inline void packCollimationMsg(
unsigned long seq,
641 sza::util::OffsetMsg::Mode addMode)
645 sza::util::GenericTaskMsg::TASK_SPECIFIC;
647 setCarmaSequenceNumber();
649 body.collimation.seq = seq;
650 body.collimation.mode = mode;
651 body.collimation.x = x;
652 body.collimation.y = y;
653 body.collimation.addMode = addMode;
656 inline void packEncoderLimitsMsg(
unsigned long seq,
657 long az_min,
long az_max,
658 long el_min,
long el_max,
659 long pa_min,
long pa_max)
662 sza::util::GenericTaskMsg::TASK_SPECIFIC;
664 setCarmaSequenceNumber();
665 type = ENCODER_LIMITS;
666 body.encoderLimits.seq = seq;
667 body.encoderLimits.az_min = az_min;
668 body.encoderLimits.az_max = az_max;
669 body.encoderLimits.el_min = el_min;
670 body.encoderLimits.el_max = el_max;
671 body.encoderLimits.pa_min = pa_min;
672 body.encoderLimits.pa_max = pa_max;
675 inline void packSelectModelMsg(
unsigned long seq,
679 sza::util::GenericTaskMsg::TASK_SPECIFIC;
681 setCarmaSequenceNumber();
683 body.selectModel.seq = seq;
684 body.selectModel.mode = mode;
687 inline void packYearMsg(
short year)
690 sza::util::GenericTaskMsg::TASK_SPECIFIC;
692 setCarmaSequenceNumber();
694 body.year.year = year;
697 inline void packSiteMsg(
double lon,
double lat,
double alt)
700 sza::util::GenericTaskMsg::TASK_SPECIFIC;
702 setCarmaSequenceNumber();
709 inline void packLocationMsg(
double north,
double east,
double up)
712 sza::util::GenericTaskMsg::TASK_SPECIFIC;
714 setCarmaSequenceNumber();
716 body.location.north = north;
717 body.location.east = east;
718 body.location.up = up;
721 inline void packFlagBoardMsg(
unsigned short board,
bool flag)
724 sza::util::GenericTaskMsg::TASK_SPECIFIC;
726 setCarmaSequenceNumber();
728 body.flagBoard.board = board;
729 body.flagBoard.flag = flag;
736 inline void packWeatherMsg(
double airTempInK,
double relHumidity,
double pressureInMbar)
739 sza::util::GenericTaskMsg::TASK_SPECIFIC;
741 setCarmaSequenceNumber();
744 body.weather.airTemperatureInK = airTempInK;
745 body.weather.relativeHumidity = relHumidity;
746 body.weather.pressureInMbar = pressureInMbar;
753 inline void packRxMsg(sza::util::Rx::Id rxId)
756 sza::util::GenericTaskMsg::TASK_SPECIFIC;
758 setCarmaSequenceNumber();
764 inline void packWrapModeMsg(WrapMode::Mode wrapMode)
767 sza::util::GenericTaskMsg::TASK_SPECIFIC;
769 setCarmaSequenceNumber();
772 body.wrapMode.wrapMode = wrapMode;
778 friend std::ostream& operator<<(std::ostream& os, TrackerMsg* msg);
786 #endif // End #ifndef
Tagged: Thu Nov 13 16:53:35 UTC 2003.
Type
Enumerate possible pointing modes.
Tagged: Fri Apr 6 10:52:00 PDT 2012.
Type
An enumerator to identify a valid axis.
Tagged: Fri Nov 14 12:39:34 UTC 2003.
GenericMsgType genericMsgType_
A type for this message.
Tagged: Thu Nov 13 16:53:50 UTC 2003.
Tagged: Thu Mar 11 16:38:48 PST 2004.
A class to encapsulate message types for a generic task.
Tagged: Fri Nov 14 12:39:33 UTC 2003.