Changeset View
Changeset View
Standalone View
Standalone View
kstars/indi/indidome.cpp
Show First 20 Lines • Show All 213 Lines • ▼ Show 20 Line(s) | 197 | { | |||
---|---|---|---|---|---|
214 | } | 214 | } | ||
215 | } | 215 | } | ||
216 | } | 216 | } | ||
217 | } | 217 | } | ||
218 | else if (!strcmp(svp->name, "DOME_MOTION")) | 218 | else if (!strcmp(svp->name, "DOME_MOTION")) | ||
219 | { | 219 | { | ||
220 | Status lastStatus = m_Status; | 220 | Status lastStatus = m_Status; | ||
221 | 221 | | |||
222 | if (svp->s == IPS_BUSY && lastStatus != DOME_MOVING && lastStatus != DOME_PARKING && lastStatus != DOME_UNPARKING) | 222 | if (svp->s == IPS_BUSY && lastStatus != DOME_MOVING_CW && lastStatus != DOME_MOVING_CCW && lastStatus != DOME_PARKING && lastStatus != DOME_UNPARKING) | ||
223 | { | 223 | { | ||
224 | m_Status = DOME_MOVING; | 224 | m_Status = svp->sp->s == ISS_ON ? DOME_MOVING_CW : DOME_MOVING_CCW; | ||
225 | emit newStatus(m_Status); | 225 | emit newStatus(m_Status); | ||
226 | | ||||
227 | // rolloff roofs: cw = opening = unparking, ccw = closing = parking | ||||
228 | if (!canAbsMove() && !canRelMove()) | ||||
229 | { | ||||
230 | m_ParkStatus = m_Status == DOME_MOVING_CW ? PARK_UNPARKING : PARK_PARKING; | ||||
231 | emit newParkStatus(m_ParkStatus); | ||||
232 | } | ||||
226 | } | 233 | } | ||
227 | else if (svp->s == IPS_OK && lastStatus == DOME_MOVING) | 234 | else if (svp->s == IPS_OK && (lastStatus == DOME_MOVING_CW || lastStatus == DOME_MOVING_CCW)) | ||
228 | { | 235 | { | ||
229 | m_Status = DOME_TRACKING; | 236 | m_Status = DOME_TRACKING; | ||
230 | emit newStatus(m_Status); | 237 | emit newStatus(m_Status); | ||
231 | } | 238 | } | ||
232 | else if (svp->s == IPS_IDLE && lastStatus != DOME_IDLE) | 239 | else if (svp->s == IPS_IDLE && lastStatus != DOME_IDLE) | ||
233 | { | 240 | { | ||
234 | m_Status = DOME_IDLE; | 241 | m_Status = DOME_IDLE; | ||
235 | emit newStatus(m_Status); | 242 | emit newStatus(m_Status); | ||
▲ Show 20 Lines • Show All 202 Lines • ▼ Show 20 Line(s) | 436 | { | |||
438 | 445 | | |||
439 | IUResetSwitch(autosync); | 446 | IUResetSwitch(autosync); | ||
440 | autosyncSW->s = ISS_ON; | 447 | autosyncSW->s = ISS_ON; | ||
441 | clientManager->sendNewSwitch(autosync); | 448 | clientManager->sendNewSwitch(autosync); | ||
442 | 449 | | |||
443 | return true; | 450 | return true; | ||
444 | } | 451 | } | ||
445 | 452 | | |||
453 | bool Dome::moveDome(DomeDirection dir, DomeMotionCommand operation) | ||||
454 | { | ||||
455 | ISwitchVectorProperty *domeMotion = baseDevice->getSwitch("DOME_MOTION"); | ||||
456 | if (domeMotion == nullptr) | ||||
457 | return false; | ||||
458 | | ||||
459 | ISwitch *opSwitch = IUFindSwitch(domeMotion, dir == DomeDirection::DOME_CW ? "DOME_CW": "DOME_CCW"); | ||||
460 | IUResetSwitch(domeMotion); | ||||
461 | opSwitch->s = (operation == DomeMotionCommand::MOTION_START ? ISS_ON : ISS_OFF); | ||||
462 | | ||||
463 | clientManager->sendNewSwitch(domeMotion); | ||||
464 | | ||||
465 | return true; | ||||
466 | } | ||||
467 | | ||||
446 | bool Dome::ControlShutter(bool open) | 468 | bool Dome::ControlShutter(bool open) | ||
447 | { | 469 | { | ||
448 | ISwitchVectorProperty *shutterSP = baseDevice->getSwitch("DOME_SHUTTER"); | 470 | ISwitchVectorProperty *shutterSP = baseDevice->getSwitch("DOME_SHUTTER"); | ||
449 | 471 | | |||
450 | if (shutterSP == nullptr) | 472 | if (shutterSP == nullptr) | ||
451 | return false; | 473 | return false; | ||
452 | 474 | | |||
453 | ISwitch *shutterSW = IUFindSwitch(shutterSP, open ? "SHUTTER_OPEN" : "SHUTTER_CLOSE"); | 475 | ISwitch *shutterSW = IUFindSwitch(shutterSP, open ? "SHUTTER_OPEN" : "SHUTTER_CLOSE"); | ||
▲ Show 20 Lines • Show All 47 Lines • ▼ Show 20 Line(s) | 522 | case ISD::Dome::DOME_PARKED: | |||
501 | return i18n("Parked"); | 523 | return i18n("Parked"); | ||
502 | 524 | | |||
503 | case ISD::Dome::DOME_PARKING: | 525 | case ISD::Dome::DOME_PARKING: | ||
504 | return i18n("Parking"); | 526 | return i18n("Parking"); | ||
505 | 527 | | |||
506 | case ISD::Dome::DOME_UNPARKING: | 528 | case ISD::Dome::DOME_UNPARKING: | ||
507 | return i18n("UnParking"); | 529 | return i18n("UnParking"); | ||
508 | 530 | | |||
509 | case ISD::Dome::DOME_MOVING: | 531 | case ISD::Dome::DOME_MOVING_CW: | ||
510 | return i18n("Moving"); | 532 | return i18n("Moving clockwise"); | ||
533 | | ||||
534 | case ISD::Dome::DOME_MOVING_CCW: | ||||
535 | return i18n("Moving counter clockwise"); | ||||
511 | 536 | | |||
512 | case ISD::Dome::DOME_TRACKING: | 537 | case ISD::Dome::DOME_TRACKING: | ||
513 | return i18n("Tracking"); | 538 | return i18n("Tracking"); | ||
514 | 539 | | |||
515 | case ISD::Dome::DOME_ERROR: | 540 | case ISD::Dome::DOME_ERROR: | ||
516 | return i18n("Error"); | 541 | return i18n("Error"); | ||
517 | } | 542 | } | ||
518 | 543 | | |||
Show All 23 Lines |