40static void errorUnavailable(
const char *function)
42 fprintf(stderr,
"%s method available only on driver side\n", function);
51 errorUnavailable(__FUNCTION__);
60 errorUnavailable(__FUNCTION__);
69 errorUnavailable(__FUNCTION__);
78 errorUnavailable(__FUNCTION__);
87 errorUnavailable(__FUNCTION__);
96 errorUnavailable(__FUNCTION__);
105 errorUnavailable(__FUNCTION__);
114 errorUnavailable(__FUNCTION__);
123 errorUnavailable(__FUNCTION__);
132 errorUnavailable(__FUNCTION__);
139 va_start(ap, format);
140 this->vapply(format, ap);
148 va_start(ap, format);
149 this->vdefine(format, ap);
153template <>
template <>
155 const char *
device,
const char *name,
const char *label,
const char *group,
160 this, begin(), count(),
device, name, label, group,
161 permission, timeout, state
165template <>
template <>
167 const char *
device,
const char *name,
const char *label,
const char *group,
172 this, begin(), count(),
device, name, label, group,
173 permission, timeout, state
177template <>
template <>
179 const char *
device,
const char *name,
const char *label,
const char *group,
184 this, begin(), count(),
device, name, label, group,
185 permission, rule, timeout, state
189template <>
template <>
191 const char *
device,
const char *name,
const char *label,
const char *group,
196 this, begin(), count(),
device, name, label, group,
201template <>
template <>
203 const char *
device,
const char *name,
const char *label,
const char *group,
208 this, begin(), count(),
device, name, label, group,
209 permission, timeout, state
213template <>
template<>
217 return WeakIUUpdateText(
this,
const_cast<char**
>(texts),
const_cast<char**
>(names), n) == 0;
219 errorUnavailable(__FUNCTION__);
223template <>
template<>
227 return WeakIUUpdateNumber(
this,
const_cast<double*
>(values),
const_cast<char**
>(names), n) == 0;
229 errorUnavailable(__FUNCTION__);
233template <>
template<>
239 errorUnavailable(__FUNCTION__);
243template <>
template<>
245 const int sizes[],
const int blobsizes[],
const char *
const blobs[],
const char *
const formats[],
246 const char *
const names[],
int n
252 const_cast<int *
>(sizes),
const_cast<int *
>(blobsizes),
253 const_cast<char **
>(blobs),
const_cast<char **
>(formats),
254 const_cast<char **
>(names), n
257 errorUnavailable(__FUNCTION__);
261template <>
template<>
268template <>
template<>
271 for (
int i = 0; i < n; i++)
273 auto widget = findWidgetByName(names[i]);
274 if (widget && strcmp(widget->getText(), texts[i]) != 0)
280template <>
template<>
283 for (
int i = 0; i < n; i++)
285 auto widget = findWidgetByName(names[i]);
286 if (widget && widget->getValue() != values[i])
292template <>
template<>
295 for (
int i = 0; i < n; i++)
297 auto widget = findWidgetByName(names[i]);
298 if (widget && widget->getState() != states[i])
322 double min,
double max,
double step,
double value)
void(* WeakIDSetBLOBVA)(const IBLOBVectorProperty *, const char *, va_list)
int(* WeakIUUpdateText)(ITextVectorProperty *, char *[], char *[], int)
int(* WeakIUUpdateNumber)(INumberVectorProperty *, double[], char *[], int n)
int(* WeakIUUpdateBLOB)(IBLOBVectorProperty *, int[], int[], char *[], char *[], char *[], int n)
void(* WeakIDSetLightVA)(const ILightVectorProperty *, const char *, va_list)
void(* WeakIDDefSwitchVA)(const ISwitchVectorProperty *, const char *, va_list)
void(* WeakIDDefTextVA)(const ITextVectorProperty *, const char *, va_list)
void(* WeakIDSetTextVA)(const ITextVectorProperty *, const char *, va_list)
void(* WeakIDDefBLOBVA)(const IBLOBVectorProperty *, const char *, va_list)
void(* WeakIDDefNumberVA)(const INumberVectorProperty *, const char *, va_list)
void(* WeakIDDefLightVA)(const ILightVectorProperty *, const char *, va_list)
int(* WeakIUUpdateSwitch)(ISwitchVectorProperty *, ISState *, char *[], int n)
void(* WeakIDSetNumberVA)(const INumberVectorProperty *, const char *, va_list)
void(* WeakIDSetSwitchVA)(const ISwitchVectorProperty *, const char *, va_list)
void(* WeakIUUpdateMinMax)(const INumberVectorProperty *)
IPerm
Permission hint, with respect to client.
ISRule
Switch vector rule hint.
void IUFillLight(ILight *lp, const char *name, const char *label, IPState s)
Assign attributes for a light property. The light's auxiliary elements will be set to NULL.
void IUFillNumberVector(INumberVectorProperty *nvp, INumber *np, int nnp, const char *dev, const char *name, const char *label, const char *group, IPerm p, double timeout, IPState s)
Assign attributes for a number vector property. The vector's auxiliary elements will be set to NULL.
void IUFillLightVector(ILightVectorProperty *lvp, ILight *lp, int nlp, const char *dev, const char *name, const char *label, const char *group, IPState s)
Assign attributes for a light vector property. The vector's auxiliary elements will be set to NULL.
void IUFillTextVector(ITextVectorProperty *tvp, IText *tp, int ntp, const char *dev, const char *name, const char *label, const char *group, IPerm p, double timeout, IPState s)
Assign attributes for a text vector property. The vector's auxiliary elements will be set to NULL.
void IUFillSwitch(ISwitch *sp, const char *name, const char *label, ISState s)
Assign attributes for a switch property. The switch's auxiliary elements will be set to NULL.
void IUFillText(IText *tp, const char *name, const char *label, const char *initialText)
Assign attributes for a text property. The text's auxiliary elements will be set to NULL.
void IUFillNumber(INumber *np, const char *name, const char *label, const char *format, double min, double max, double step, double value)
Assign attributes for a number property. The number's auxiliary elements will be set to NULL.
void IUFillSwitchVector(ISwitchVectorProperty *svp, ISwitch *sp, int nsp, const char *dev, const char *name, const char *label, const char *group, IPerm p, ISRule r, double timeout, IPState s)
Assign attributes for a switch vector property. The vector's auxiliary elements will be set to NULL.
void IUFillBLOBVector(IBLOBVectorProperty *bvp, IBLOB *bp, int nbp, const char *dev, const char *name, const char *label, const char *group, IPerm p, double timeout, IPState s)
Assign attributes for a BLOB vector property. The vector's auxiliary elements will be set to NULL.
void IUFillBLOB(IBLOB *bp, const char *name, const char *label, const char *format)
Assign attributes for a BLOB property. The BLOB's data and auxiliary elements will be set to NULL.
void(* WeakIDSetBLOBVA)(const IBLOBVectorProperty *, const char *, va_list)
int(* WeakIUUpdateText)(ITextVectorProperty *, char *[], char *[], int)
int(* WeakIUUpdateNumber)(INumberVectorProperty *, double[], char *[], int n)
int(* WeakIUUpdateBLOB)(IBLOBVectorProperty *, int[], int[], char *[], char *[], char *[], int n)
void(* WeakIDSetLightVA)(const ILightVectorProperty *, const char *, va_list)
void(* WeakIDDefSwitchVA)(const ISwitchVectorProperty *, const char *, va_list)
void(* WeakIDDefTextVA)(const ITextVectorProperty *, const char *, va_list)
void(* WeakIDSetTextVA)(const ITextVectorProperty *, const char *, va_list)
void(* WeakIDDefBLOBVA)(const IBLOBVectorProperty *, const char *, va_list)
void(* WeakIDDefNumberVA)(const INumberVectorProperty *, const char *, va_list)
void(* WeakIDDefLightVA)(const ILightVectorProperty *, const char *, va_list)
int(* WeakIUUpdateSwitch)(ISwitchVectorProperty *, ISState *, char *[], int n)
void(* WeakIDSetNumberVA)(const INumberVectorProperty *, const char *, va_list)
void(* WeakIDSetSwitchVA)(const ISwitchVectorProperty *, const char *, va_list)
void(* WeakIUUpdateMinMax)(const INumberVectorProperty *)
Namespace to encapsulate INDI client, drivers, and mediator classes.
Provides decorator for Low-Level IXXXVectorProperty/IXXX.
void fill(const char *device, const char *name, const char *label, const char *group, IPerm permission, double timeout, IPState state)
void void void apply() const
bool update(const char *const texts[], const char *const names[], int n)
void vdefine(const char *format, va_list args) const
bool isUpdated(const char *const texts[], const char *const names[], int n) const
void vapply(const char *format, va_list args) const
BLOB (Binary Large Object) vector property descriptor.
Light vector property descriptor.
Number vector property descriptor.
Switch vector property descriptor.
Text vector property descriptor.