Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.apo.nmsu.edu/Telescopes/TCC/html/namespacetcc_1_1axis_1_1check_axes_for_slew.html
Дата изменения: Tue Sep 15 02:25:39 2015
Дата индексирования: Sun Apr 10 05:21:45 2016
Кодировка:

Поисковые слова: вечный камеодбтш
lsst.tcc: tcc.axis.checkAxesForSlew Namespace Reference
lsst.tcc  1.2.2-3-g89ecb63
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Functions | Variables
tcc.axis.checkAxesForSlew Namespace Reference

Functions

def checkAxesForSlew
 Apply wrap preference and verify that position is in bounds, preparatory to a slew. More...
 

Variables

list __all__ = ["checkAxesForSlew"]
 

Function Documentation

def tcc.axis.checkAxesForSlew.checkAxesForSlew (   desObj,
  perfect,
  doRestart,
  isHalted,
  isNewObj,
  isNewRot,
  rotExists,
  nullSysFlag 
)

Apply wrap preference and verify that position is in bounds, preparatory to a slew.

Parameters
[in]desObjobject block; information about the desired object in: userSys, rotType, targetMount, axisErrCode out: axisErrCode
[in]perfectif True, all existing axes must be able to move, else badAxis and sigBad are set true
[in]doRestart(3 bools) restart axis, if possible? (ignored for rotator if no rotator)
[in]isHalted(3 bools) true if axis is presently halted
[in]isNewObjare you acquiring a new object?
[in]isNewRotare you setting a new rotator angle; if True and rotExists then the rot axis is "significant"
[in]rotExistsis there a rotator axis?
[in]nullSysFlaghow to set badAxis if coordSys (for az, alt) or rotType (for rot) is none: -1: reject all such cases (badAxis=true); use if you cannot handle this situation 0: accept only if halted or halting (isHalted or desObj.targetMount and desObj.axisErrCode are both OK) 1: accept for all such cases; useful for a preliminary check, if you are going to handle halting later
Returns
these items:
  • doAxis[3]: move or halt this axis?
  • badAxis[3]: error code is nonzero, the axis exists, and a move is wanted** Normally set True if desObj.axisErrCode not OK. These are the exceptions:
    • The rotator does not exist and move not wanted (desObj.rotType none)
    • The axis exists, a halt is wanted*, "perfect" is false and:
      • nullSysFlag > 0 (accept all halts)
      • nullSysFlag = 0 (accept valid halts) and the halt is valid, i.e. isHalted true (already halted, no need to do anything) or desObj.targetMount is valid and desObj.axisErrCode=tcc.base.AxisErr_HaltRequested (a valid halt)
  • sigBad: set True if badAxis is true for a "significant" axis. A significant axis is so important that if it cannot be moved as requested then the request should be rejected, specifically:
    • If isNewObj or perfect then azimuth and altitude are significant.
    • If rotExists and (isNewRot or perfect) then the rotator is significant.

Sets desObj.axisErrCode as follows; the first appropriate condition listed is used:

  • If not rotExists: sets axisErrCode[3] to tcc.base.AxisErr_NotAvailable
  • If halt wanted* and nullSysFlag=0 but the halt cannot happen (axisErrCode not tcc.base.AxisErr_HaltRequested, or mount pos. unknown): leaves axisErrCode alone if nonzero, else sets to tcc.base.AxisErr_CannotCompute
  • If halt wanted* and nullSysFlag != 0: sets axisErrCode to tcc.base.AxisErr_HaltRequested
  • If move wanted**, doRestart false and isHalted true: sets axisErrCode to tcc.base.AxisErr_NoRestart
  • If move wanted** but mount position unknown: leaves axisErrCode alone if nonzero, else sets axisErrCode to tcc.base.AxisErr_CannotCompute If none of these conditions apply then axisErrCode is left alone.

*halt wanted:

  • for az and alt: associated coordSys is none (coordConv.NoneCoordSys)
  • for rot: rot exists and rotType is none (tcc.base.RotType_None) **move wanted:
  • for az and alt: associated coordSys is not none (coordConv.NoneCoordSys)
  • for rot: rot exists and rotType is not none (tcc.base.RotType_None)

Definition at line 11 of file checkAxesForSlew.py.

Variable Documentation

list tcc.axis.checkAxesForSlew.__all__ = ["checkAxesForSlew"]

Definition at line 9 of file checkAxesForSlew.py.