Instrument Neutral Distributed Interface INDI
2.0.2
|
Go to the source code of this file.
Macros | |
#define | MaxReticleDutyCycle 15 |
#define | MaxFocuserSpeed 4 |
#define | getLX200RA(fd, x) getCommandSexa(fd, x, ":GR#") |
#define | getLX200DEC(fd, x) getCommandSexa(fd, x, ":GD#") |
#define | getObjectRA(fd, x) getCommandSexa(fd, x, ":Gr#") |
#define | getObjectDEC(fd, x) getCommandSexa(fd, x, ":Gd#") |
#define | getLocalTime12(fd, x) getCommandSexa(fd, x, ":Ga#") |
#define | getLocalTime24(fd, x) getCommandSexa(fd, x, ":GL#") |
#define | getSDTime(fd, x) getCommandSexa(fd, x, ":GS#") |
#define | getLX200Alt(fd, x) getCommandSexa(fd, x, ":GA#") |
#define | getLX200Az(fd, x) getCommandSexa(fd, x, ":GZ#") |
#define | getObjectInfo(fd, x) getCommandString(fd, x, ":LI#") |
#define | getVersionDate(fd, x) getCommandString(fd, x, ":GVD#") |
#define | getVersionTime(fd, x) getCommandString(fd, x, ":GVT#") |
#define | getFullVersion(fd, x) getCommandString(fd, x, ":GVF#") |
#define | getVersionNumber(fd, x) getCommandString(fd, x, ":GVN#") |
#define | getProductName(fd, x) getCommandString(fd, x, ":GVP#") |
#define | turnGPS_StreamOn(fd) getCommandString(fd, x, ":gps#") |
#define | getUTCOffset(fd, x) getCommandInt(fd, x, ":GG#") |
#define | getDaylightSaving(fd, x) getCommandInt(fd, x, ":GH#") |
#define | getMaxElevationLimit(fd, x) getCommandInt(fd, x, ":Go#") |
#define | getMinElevationLimit(fd, x) getCommandInt(fd, x, ":Gh#") |
#define | setReticleDutyFlashCycle(fd, x) setCommandInt(fd, x, ":BD") |
#define | setReticleFlashRate(fd, x) setCommandInt(fd, x, ":B") |
#define | setFocuserSpeed(fd, x) setCommandInt(fd, x, ":F") |
#define | setSlewSpeed(fd, x) setCommandInt(fd, x, ":Sw") |
#define | turnGPSOn(fd) write(fd, ":g+#", 4) |
#define | turnGPSOff(fd) write(fd, ":g-#", 4) |
#define | alignGPSScope(fd) write(fd, ":Aa#", 4) |
#define | gpsSleep(fd) write(fd, ":hN#", 4) |
#define | gpsWakeUp(fd) write(fd, ":hW#", 4); |
#define | gpsRestart(fd) write(fd, ":I#", 3); |
#define | updateGPS_System(fd) setStandardProcedure(fd, ":gT#") |
#define | enableDecAltPec(fd) write(fd, ":QA+#", 4) |
#define | disableDecAltPec(fd) write(fd, ":QA-#", 4) |
#define | enableRaAzPec(fd) write(fd, ":QZ+#", 4) |
#define | disableRaAzPec(fd) write(fd, ":QZ-#", 4) |
#define | activateAltDecAntiBackSlash(fd) write(fd, ":$BAdd#", 7) |
#define | activateAzRaAntiBackSlash(fd) write(fd, ":$BZdd#", 7) |
#define | SelenographicSync(fd) write(fd, ":CL#", 4); |
#define | slewToAltAz(fd) setStandardProcedure(fd, ":MA#") |
#define | toggleTimeFormat(fd) write(fd, ":H#", 3) |
#define | increaseReticleBrightness(fd) write(fd, ":B+#", 4) |
#define | decreaseReticleBrightness(fd) write(fd, ":B-#", 4) |
#define | turnFanOn(fd) write(fd, ":f+#", 4) |
#define | turnFanOff(fd) write(fd, ":f-#", 4) |
#define | seekHomeAndSave(fd) write(fd, ":hS#", 4) |
#define | seekHomeAndSet(fd) write(fd, ":hF#", 4) |
#define | turnFieldDeRotatorOn(fd) write(fd, ":r+#", 4) |
#define | turnFieldDeRotatorOff(fd) write(fd, ":r-#", 4) |
#define | slewToPark(fd) write(fd, ":hP#", 4) |
#define | initTelescope(fd) write(fd, ":I#", 3) |
Functions | |
char | ACK (int fd) |
int | check_lx200_connection (int fd) |
int | getCommandSexa (int fd, double *value, const char *cmd) |
int | getCommandString (int fd, char *data, const char *cmd) |
int | getCommandInt (int fd, int *value, const char *cmd) |
int | getTrackFreq (int fd, double *value) |
int | getSiteLatitude (int fd, int *dd, int *mm, double *ssf) |
int | getSiteLongitude (int fd, int *ddd, int *mm, double *ssf) |
int | getSiteLatitudeAlt (int fd, int *dd, int *mm, double *ssf, const char *cmd) |
int | getSiteLongitudeAlt (int fd, int *ddd, int *mm, double *ssf, const char *cmd) |
int | getCalendarDate (int fd, char *date) |
int | getSiteName (int fd, char *siteName, int siteNum) |
int | getHomeSearchStatus (int fd, int *status) |
int | getOTATemp (int fd, double *value) |
int | getTimeFormat (int fd, int *format) |
int | updateSkyCommanderCoord (int fd, double *ra, double *dec) |
int | updateIntelliscopeCoord (int fd, double *ra, double *dec) |
int | setCommandInt (int fd, int data, const char *cmd) |
int | setCommandXYZ (int fd, int x, int y, int z, const char *cmd, bool addSpace=false) |
int | setStandardProcedure (int fd, const char *writeData) |
int | setSlewMode (int fd, int slewMode) |
int | setAlignmentMode (int fd, unsigned int alignMode) |
int | setObjectRA (int fd, double ra, bool addSpace=false) |
int | setObjectDEC (int fd, double dec, bool addSpace=false) |
int | setCalenderDate (int fd, int dd, int mm, int yy, bool addSpace=false) |
int | setUTCOffset (int fd, double hours) |
int | setTrackFreq (int fd, double trackF) |
int | setPreciseTrackFreq (int fd, double trackF) |
int | setSiteLongitude (int fd, double Long, bool addSpace=false) |
int | setSiteLatitude (int fd, double Lat, bool addSpace=false) |
int | setObjAz (int fd, double az) |
int | setObjAlt (int fd, double alt) |
int | setSiteName (int fd, char *siteName, int siteNum) |
int | setMaxSlewRate (int fd, int slewRate) |
int | setFocuserMotion (int fd, int motionType) |
int | setGPSFocuserSpeed (int fd, int speed) |
int | setFocuserSpeedMode (int fd, int speedMode) |
int | setMinElevationLimit (int fd, int min) |
int | setMaxElevationLimit (int fd, int max) |
int | setLocalTime (int fd, int x, int y, int z, bool addSpace=false) |
int | setSDTime (int fd, int x, int y, int z, bool addSpace=false) |
int | Slew (int fd) |
int | Sync (int fd, char *matchedObject) |
int | abortSlew (int fd) |
int | MoveTo (int fd, int direction) |
int | HaltMovement (int fd, int direction) |
int | selectTrackingMode (int fd, int trackMode) |
int | isSlewComplete (int fd) |
int | SendPulseCmd (int fd, int direction, int duration_msec, bool wait_after_command=false, int max_wait_ms=1000) |
int | checkLX200EquatorialFormat (int fd) |
int | getLX200EquatorialFormat () |
int | selectSite (int fd, int siteNum) |
int | selectCatalogObject (int fd, int catalog, int NNNN) |
int | selectSubCatalog (int fd, int catalog, int subCatalog) |
void | setLX200Debug (const char *deviceName, unsigned int debug_level) |
Definition at line 160 of file lx200driver.h.
Definition at line 161 of file lx200driver.h.
Definition at line 151 of file lx200driver.h.
Definition at line 167 of file lx200driver.h.
Definition at line 157 of file lx200driver.h.
Definition at line 159 of file lx200driver.h.
Definition at line 156 of file lx200driver.h.
Definition at line 158 of file lx200driver.h.
#define getDaylightSaving | ( | fd, | |
x | |||
) | getCommandInt(fd, x, ":GH#") |
Definition at line 138 of file lx200driver.h.
#define getFullVersion | ( | fd, | |
x | |||
) | getCommandString(fd, x, ":GVF#") |
Definition at line 131 of file lx200driver.h.
#define getLocalTime12 | ( | fd, | |
x | |||
) | getCommandSexa(fd, x, ":Ga#") |
Definition at line 121 of file lx200driver.h.
#define getLocalTime24 | ( | fd, | |
x | |||
) | getCommandSexa(fd, x, ":GL#") |
Definition at line 122 of file lx200driver.h.
#define getLX200Alt | ( | fd, | |
x | |||
) | getCommandSexa(fd, x, ":GA#") |
Definition at line 124 of file lx200driver.h.
#define getLX200Az | ( | fd, | |
x | |||
) | getCommandSexa(fd, x, ":GZ#") |
Definition at line 125 of file lx200driver.h.
#define getLX200DEC | ( | fd, | |
x | |||
) | getCommandSexa(fd, x, ":GD#") |
Definition at line 118 of file lx200driver.h.
#define getLX200RA | ( | fd, | |
x | |||
) | getCommandSexa(fd, x, ":GR#") |
Definition at line 117 of file lx200driver.h.
#define getMaxElevationLimit | ( | fd, | |
x | |||
) | getCommandInt(fd, x, ":Go#") |
Definition at line 139 of file lx200driver.h.
#define getMinElevationLimit | ( | fd, | |
x | |||
) | getCommandInt(fd, x, ":Gh#") |
Definition at line 140 of file lx200driver.h.
#define getObjectDEC | ( | fd, | |
x | |||
) | getCommandSexa(fd, x, ":Gd#") |
Definition at line 120 of file lx200driver.h.
#define getObjectInfo | ( | fd, | |
x | |||
) | getCommandString(fd, x, ":LI#") |
Definition at line 128 of file lx200driver.h.
#define getObjectRA | ( | fd, | |
x | |||
) | getCommandSexa(fd, x, ":Gr#") |
Definition at line 119 of file lx200driver.h.
#define getProductName | ( | fd, | |
x | |||
) | getCommandString(fd, x, ":GVP#") |
Definition at line 133 of file lx200driver.h.
#define getSDTime | ( | fd, | |
x | |||
) | getCommandSexa(fd, x, ":GS#") |
Definition at line 123 of file lx200driver.h.
#define getUTCOffset | ( | fd, | |
x | |||
) | getCommandInt(fd, x, ":GG#") |
Definition at line 137 of file lx200driver.h.
#define getVersionDate | ( | fd, | |
x | |||
) | getCommandString(fd, x, ":GVD#") |
Definition at line 129 of file lx200driver.h.
#define getVersionNumber | ( | fd, | |
x | |||
) | getCommandString(fd, x, ":GVN#") |
Definition at line 132 of file lx200driver.h.
#define getVersionTime | ( | fd, | |
x | |||
) | getCommandString(fd, x, ":GVT#") |
Definition at line 130 of file lx200driver.h.
Definition at line 154 of file lx200driver.h.
Definition at line 152 of file lx200driver.h.
Definition at line 153 of file lx200driver.h.
Definition at line 166 of file lx200driver.h.
Definition at line 175 of file lx200driver.h.
#define MaxFocuserSpeed 4 |
Definition at line 114 of file lx200driver.h.
#define MaxReticleDutyCycle 15 |
Definition at line 113 of file lx200driver.h.
Definition at line 170 of file lx200driver.h.
Definition at line 171 of file lx200driver.h.
Definition at line 162 of file lx200driver.h.
#define setFocuserSpeed | ( | fd, | |
x | |||
) | setCommandInt(fd, x, ":F") |
Definition at line 145 of file lx200driver.h.
#define setReticleDutyFlashCycle | ( | fd, | |
x | |||
) | setCommandInt(fd, x, ":BD") |
Definition at line 143 of file lx200driver.h.
#define setReticleFlashRate | ( | fd, | |
x | |||
) | setCommandInt(fd, x, ":B") |
Definition at line 144 of file lx200driver.h.
#define setSlewSpeed | ( | fd, | |
x | |||
) | setCommandInt(fd, x, ":Sw") |
Definition at line 146 of file lx200driver.h.
#define slewToAltAz | ( | fd | ) | setStandardProcedure(fd, ":MA#") |
Definition at line 164 of file lx200driver.h.
Definition at line 174 of file lx200driver.h.
Definition at line 165 of file lx200driver.h.
Definition at line 169 of file lx200driver.h.
Definition at line 168 of file lx200driver.h.
Definition at line 173 of file lx200driver.h.
Definition at line 172 of file lx200driver.h.
#define turnGPS_StreamOn | ( | fd | ) | getCommandString(fd, x, ":gps#") |
Definition at line 134 of file lx200driver.h.
Definition at line 150 of file lx200driver.h.
Definition at line 149 of file lx200driver.h.
#define updateGPS_System | ( | fd | ) | setStandardProcedure(fd, ":gT#") |
Definition at line 155 of file lx200driver.h.
enum DeepSkyCatalog |
Enumerator | |
---|---|
LX200_NGC | |
LX200_IC | |
LX200_UGC | |
LX200_CALDWELL | |
LX200_ARP | |
LX200_ABELL | |
LX200_MESSIER_C | |
IEQ45_NGC | |
IEQ45_IC | |
IEQ45_UGC | |
IEQ45_CALDWELL | |
IEQ45_ARP | |
IEQ45_ABELL | |
IEQ45_MESSIER_C |
Definition at line 94 of file lx200driver.h.
enum StarCatalog |
Enumerator | |
---|---|
LX200_STAR | |
LX200_SAO | |
LX200_GCVS | |
IEQ45_STAR | |
IEQ45_SAO | |
IEQ45_GCVS |
Definition at line 87 of file lx200driver.h.
enum TAlign |
Enumerator | |
---|---|
LX200_ALIGN_POLAR | |
LX200_ALIGN_ALTAZ | |
LX200_ALIGN_LAND | |
IEQ45_ALIGN_POLAR | |
IEQ45_ALIGN_ALTAZ | |
IEQ45_ALIGN_LAND |
Definition at line 32 of file lx200driver.h.
enum TCatalog |
Enumerator | |
---|---|
LX200_STAR_C | |
LX200_DEEPSKY_C | |
IEQ45_STAR_C | |
IEQ45_DEEPSKY_C |
Definition at line 81 of file lx200driver.h.
enum TDirection |
Enumerator | |
---|---|
LX200_NORTH | |
LX200_WEST | |
LX200_EAST | |
LX200_SOUTH | |
LX200_ALL | |
IEQ45_NORTH | |
IEQ45_WEST | |
IEQ45_EAST | |
IEQ45_SOUTH | |
IEQ45_ALL |
Definition at line 39 of file lx200driver.h.
enum TEquatorialFormat |
Enumerator | |
---|---|
LX200_EQ_SHORT_FORMAT | |
LX200_EQ_LONG_FORMAT | |
LX200_EQ_LONGER_FORMAT |
Definition at line 48 of file lx200driver.h.
enum TFocusMotion |
Enumerator | |
---|---|
LX200_FOCUSIN | |
LX200_FOCUSOUT | |
IEQ45_FOCUSIN | |
IEQ45_FOCUSOUT |
Definition at line 69 of file lx200driver.h.
enum TFocusSpeed |
Enumerator | |
---|---|
LX200_HALTFOCUS | |
LX200_FOCUSSLOW | |
LX200_FOCUSFAST | |
IEQ45_HALTFOCUS | |
IEQ45_FOCUSSLOW | |
IEQ45_FOCUSFAST |
Definition at line 74 of file lx200driver.h.
enum TFreq |
Definition at line 105 of file lx200driver.h.
enum TGeographicFormat |
Enumerator | |
---|---|
LX200_GEO_SHORT_FORMAT | |
LX200_GEO_LONG_FORMAT | |
LX200_GEO_LONGER_FORMAT |
Definition at line 55 of file lx200driver.h.
enum TSlew |
Enumerator | |
---|---|
LX200_SLEW_MAX | |
LX200_SLEW_FIND | |
LX200_SLEW_CENTER | |
LX200_SLEW_GUIDE | |
IEQ45_SLEW_MAX | |
IEQ45_SLEW_FIND | |
IEQ45_SLEW_CENTER | |
IEQ45_SLEW_GUIDE |
Definition at line 24 of file lx200driver.h.
enum TTimeFormat |
Enumerator | |
---|---|
LX200_24 | |
LX200_AM | |
LX200_PM | |
MAGELLAN_24 | |
MAGELLAN_AM | |
MAGELLAN_PM | |
IEQ45_24 | |
IEQ45_AM | |
IEQ45_PM |
Definition at line 62 of file lx200driver.h.
int abortSlew | ( | int | fd | ) |
Definition at line 1754 of file lx200driver.cpp.
char ACK | ( | int | fd | ) |
Definition at line 108 of file lx200driver.cpp.
int check_lx200_connection | ( | int | fd | ) |
Definition at line 64 of file lx200driver.cpp.
int checkLX200EquatorialFormat | ( | int | fd | ) |
Definition at line 1979 of file lx200driver.cpp.
int getCalendarDate | ( | int | fd, |
char * | date | ||
) |
Definition at line 315 of file lx200driver.cpp.
int getCommandInt | ( | int | fd, |
int * | value, | ||
const char * | cmd | ||
) |
Definition at line 180 of file lx200driver.cpp.
int getCommandSexa | ( | int | fd, |
double * | value, | ||
const char * | cmd | ||
) |
Definition at line 143 of file lx200driver.cpp.
int getCommandString | ( | int | fd, |
char * | data, | ||
const char * | cmd | ||
) |
Definition at line 223 of file lx200driver.cpp.
int getHomeSearchStatus | ( | int | fd, |
int * | status | ||
) |
Definition at line 694 of file lx200driver.cpp.
int getLX200EquatorialFormat | ( | ) |
Definition at line 1969 of file lx200driver.cpp.
int getOTATemp | ( | int | fd, |
double * | value | ||
) |
Definition at line 739 of file lx200driver.cpp.
int getSiteLatitude | ( | int | fd, |
int * | dd, | ||
int * | mm, | ||
double * | ssf | ||
) |
Definition at line 479 of file lx200driver.cpp.
int getSiteLatitudeAlt | ( | int | fd, |
int * | dd, | ||
int * | mm, | ||
double * | ssf, | ||
const char * | cmd | ||
) |
Definition at line 526 of file lx200driver.cpp.
int getSiteLongitude | ( | int | fd, |
int * | ddd, | ||
int * | mm, | ||
double * | ssf | ||
) |
Definition at line 505 of file lx200driver.cpp.
int getSiteLongitudeAlt | ( | int | fd, |
int * | ddd, | ||
int * | mm, | ||
double * | ssf, | ||
const char * | cmd | ||
) |
Definition at line 588 of file lx200driver.cpp.
int getSiteName | ( | int | fd, |
char * | siteName, | ||
int | siteNum | ||
) |
Definition at line 415 of file lx200driver.cpp.
int getTimeFormat | ( | int | fd, |
int * | format | ||
) |
Definition at line 368 of file lx200driver.cpp.
int getTrackFreq | ( | int | fd, |
double * | value | ||
) |
Definition at line 649 of file lx200driver.cpp.
int HaltMovement | ( | int | fd, |
int | direction | ||
) |
Definition at line 1704 of file lx200driver.cpp.
int isSlewComplete | ( | int | fd | ) |
Definition at line 252 of file lx200driver.cpp.
int MoveTo | ( | int | fd, |
int | direction | ||
) |
Definition at line 1614 of file lx200driver.cpp.
int selectCatalogObject | ( | int | fd, |
int | catalog, | ||
int | NNNN | ||
) |
Definition at line 1873 of file lx200driver.cpp.
int selectSite | ( | int | fd, |
int | siteNum | ||
) |
Definition at line 1821 of file lx200driver.cpp.
int selectSubCatalog | ( | int | fd, |
int | catalog, | ||
int | subCatalog | ||
) |
Definition at line 1923 of file lx200driver.cpp.
int selectTrackingMode | ( | int | fd, |
int | trackMode | ||
) |
Definition at line 2113 of file lx200driver.cpp.
int SendPulseCmd | ( | int | fd, |
int | direction, | ||
int | duration_msec, | ||
bool | wait_after_command = false , |
||
int | max_wait_ms = 1000 |
||
) |
Definition at line 1653 of file lx200driver.cpp.
int setAlignmentMode | ( | int | fd, |
unsigned int | alignMode | ||
) |
Definition at line 1060 of file lx200driver.cpp.
int setCalenderDate | ( | int | fd, |
int | dd, | ||
int | mm, | ||
int | yy, | ||
bool | addSpace = false |
||
) |
Definition at line 1095 of file lx200driver.cpp.
int setCommandInt | ( | int | fd, |
int | data, | ||
const char * | cmd | ||
) |
Definition at line 821 of file lx200driver.cpp.
int setCommandXYZ | ( | int | fd, |
int | x, | ||
int | y, | ||
int | z, | ||
const char * | cmd, | ||
bool | addSpace = false |
||
) |
Definition at line 1049 of file lx200driver.cpp.
int setFocuserMotion | ( | int | fd, |
int | motionType | ||
) |
Definition at line 1405 of file lx200driver.cpp.
int setFocuserSpeedMode | ( | int | fd, |
int | speedMode | ||
) |
Definition at line 1435 of file lx200driver.cpp.
int setGPSFocuserSpeed | ( | int | fd, |
int | speed | ||
) |
Definition at line 1471 of file lx200driver.cpp.
int setLocalTime | ( | int | fd, |
int | x, | ||
int | y, | ||
int | z, | ||
bool | addSpace = false |
||
) |
Definition at line 2157 of file lx200driver.cpp.
void setLX200Debug | ( | const char * | deviceName, |
unsigned int | debug_level | ||
) |
Definition at line 58 of file lx200driver.cpp.
int setMaxElevationLimit | ( | int | fd, |
int | max | ||
) |
Definition at line 873 of file lx200driver.cpp.
int setMaxSlewRate | ( | int | fd, |
int | slewRate | ||
) |
Definition at line 892 of file lx200driver.cpp.
int setMinElevationLimit | ( | int | fd, |
int | min | ||
) |
Definition at line 849 of file lx200driver.cpp.
int setObjAlt | ( | int | fd, |
double | alt | ||
) |
Definition at line 1301 of file lx200driver.cpp.
int setObjAz | ( | int | fd, |
double | az | ||
) |
Definition at line 1279 of file lx200driver.cpp.
int setObjectDEC | ( | int | fd, |
double | dec, | ||
bool | addSpace = false |
||
) |
Definition at line 977 of file lx200driver.cpp.
int setObjectRA | ( | int | fd, |
double | ra, | ||
bool | addSpace = false |
||
) |
Definition at line 914 of file lx200driver.cpp.
int setPreciseTrackFreq | ( | int | fd, |
double | trackF | ||
) |
Definition at line 1550 of file lx200driver.cpp.
int setSDTime | ( | int | fd, |
int | x, | ||
int | y, | ||
int | z, | ||
bool | addSpace = false |
||
) |
Definition at line 2162 of file lx200driver.cpp.
int setSiteLatitude | ( | int | fd, |
double | Lat, | ||
bool | addSpace = false |
||
) |
Definition at line 1232 of file lx200driver.cpp.
int setSiteLongitude | ( | int | fd, |
double | Long, | ||
bool | addSpace = false |
||
) |
Definition at line 1184 of file lx200driver.cpp.
int setSiteName | ( | int | fd, |
char * | siteName, | ||
int | siteNum | ||
) |
Definition at line 1323 of file lx200driver.cpp.
int setSlewMode | ( | int | fd, |
int | slewMode | ||
) |
Definition at line 1361 of file lx200driver.cpp.
int setStandardProcedure | ( | int | fd, |
const char * | writeData | ||
) |
Definition at line 787 of file lx200driver.cpp.
int setTrackFreq | ( | int | fd, |
double | trackF | ||
) |
Definition at line 1508 of file lx200driver.cpp.
int setUTCOffset | ( | int | fd, |
double | hours | ||
) |
Definition at line 1160 of file lx200driver.cpp.
int Slew | ( | int | fd | ) |
Definition at line 1568 of file lx200driver.cpp.
int Sync | ( | int | fd, |
char * | matchedObject | ||
) |
Definition at line 1773 of file lx200driver.cpp.
int updateIntelliscopeCoord | ( | int | fd, |
double * | ra, | ||
double * | dec | ||
) |
Definition at line 609 of file ieq45driver8406.c.
int updateSkyCommanderCoord | ( | int | fd, |
double * | ra, | ||
double * | dec | ||
) |
Definition at line 579 of file ieq45driver8406.c.