Instrument Neutral Distributed Interface INDI 2.2.5
indiuserio.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2021 by Pawel Soja <[email protected]>
3 2022 by Ludovic Pollet
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public
16 License along with this library; if not, write to the Free Software
17 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18*/
19#pragma once
20
21#include "userio.h"
22#include "indidevapi.h"
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
33
34struct _IBLOB;
35struct _ISwitch;
36
37void IUUserIOTextContext(const userio *io, void *user, const struct _ITextVectorProperty *tvp);
38void IUUserIONumberContext(const userio *io, void *user, const struct _INumberVectorProperty *nvp);
39void IUUserIOSwitchContextOne(const userio *io, void *user, const struct _ISwitch *sp);
40void IUUserIOSwitchContextFull(const userio *io, void *user, const ISwitchVectorProperty *svp);
41void IUUserIOSwitchContext(const userio *io, void *user, const struct _ISwitchVectorProperty *svp);
42void IUUserIOBLOBContext(const userio *io, void *user, const struct _IBLOBVectorProperty *bvp);
43void IUUserIOLightContext(const userio *io, void *user, const struct _ILightVectorProperty *lvp);
44
45
46void IUUserIONewText(const userio *io, void *user, const struct _ITextVectorProperty *tvp);
47void IUUserIONewNumber(const userio *io, void *user, const struct _INumberVectorProperty *nvp);
48void IUUserIONewSwitchFull(const userio *io, void *user, const ISwitchVectorProperty *svp);
49void IUUserIONewSwitch(const userio *io, void *user, const struct _ISwitchVectorProperty *svp);
50void IUUserIONewBLOB(const userio *io, void *user, const struct _IBLOBVectorProperty *bvp);
51
52void IUUserIONewBLOBStart(const userio *io, void *user, const char *dev, const char *name, const char *timestamp);
53
55 const userio *io, void *user,
56 const char *name, unsigned int size, unsigned int bloblen, const void *blob, const char *format
57);
58void IUUserIONewBLOBFinish(const userio *io, void *user);
59
61 const userio *io, void *user,
62 const char *dev, const char *name, BLOBHandling blobH
63);
64
65// Define
66void IUUserIODefTextVA(const userio *io, void *user, const struct _ITextVectorProperty *tvp, const char *fmt, va_list ap);
67void IUUserIODefNumberVA(const userio *io, void *user, const struct _INumberVectorProperty *n, const char *fmt, va_list ap);
68void IUUserIODefSwitchVA(const userio *io, void *user, const struct _ISwitchVectorProperty *s, const char *fmt, va_list ap);
69void IUUserIODefLightVA(const userio *io, void *user, const struct _ILightVectorProperty *lvp, const char *fmt, va_list ap);
70void IUUserIODefBLOBVA(const userio *io, void *user, const struct _IBLOBVectorProperty *b, const char *fmt, va_list ap);
71
72// Setup
73void IUUserIOSetTextVA(const userio *io, void *user, const struct _ITextVectorProperty *tvp, const char *fmt, va_list ap);
74void IUUserIOSetNumberVA(const userio *io, void *user, const struct _INumberVectorProperty *nvp, const char *fmt,
75 va_list ap);
76void IUUserIOSetSwitchVA(const userio *io, void *user, const struct _ISwitchVectorProperty *svp, const char *fmt,
77 va_list ap);
78void IUUserIOSetLightVA(const userio *io, void *user, const struct _ILightVectorProperty *lvp, const char *fmt, va_list ap);
79void IUUserIOSetBLOBVA(const userio *io, void *user, const struct _IBLOBVectorProperty *bvp, const char *fmt, va_list ap);
80
81void IUUserIOUpdateMinMax(const userio *io, void *user, const struct _INumberVectorProperty *nvp);
82
83void IUUserIODeleteVA(const userio *io, void *user, const char *dev, const char *name, const char *fmt, va_list ap);
84
85void IUUserIOGetProperties(const userio *io, void *user, const char *dev, const char *name);
86
87void IDUserIOMessage(const userio *io, void *user, const char *dev, const char *fmt, ...);
88void IDUserIOMessageVA(const userio *io, void *user, const char *dev, const char *fmt, va_list ap);
89
90void IUUserIOConfigTag(const userio *io, void *user, int ctag);
91
92void IUUserIOPingRequest(const userio * io, void *user, const char * pingUid);
93void IUUserIOPingReply(const userio * io, void *user, const char * pingUid);
94
95#ifdef __cplusplus
96}
97#endif
std::string fmt(const char *fmt,...)
Definition Utils.cpp:241
Interface to the reference INDI C API device implementation on the Device Driver side.
BLOBHandling
How drivers handle BLOBs incoming from snooping drivers.
Definition indidevapi.h:267
void IUUserIOBLOBContextOne(const userio *io, void *user, const char *name, unsigned int size, unsigned int bloblen, const void *blob, const char *format)
Definition indiuserio.c:101
void IUUserIOUpdateMinMax(const userio *io, void *user, const struct _INumberVectorProperty *nvp)
void IUUserIOLightContext(const userio *io, void *user, const struct _ILightVectorProperty *lvp)
void IUUserIONewSwitch(const userio *io, void *user, const struct _ISwitchVectorProperty *svp)
void IUUserIONewText(const userio *io, void *user, const struct _ITextVectorProperty *tvp)
void IUUserIONewBLOBFinish(const userio *io, void *user)
Definition indiuserio.c:281
void IUUserIOSwitchContextOne(const userio *io, void *user, const struct _ISwitch *sp)
void IUUserIODefSwitchVA(const userio *io, void *user, const struct _ISwitchVectorProperty *s, const char *fmt, va_list ap)
void IUUserIONewBLOB(const userio *io, void *user, const struct _IBLOBVectorProperty *bvp)
void IUUserIODefLightVA(const userio *io, void *user, const struct _ILightVectorProperty *lvp, const char *fmt, va_list ap)
void IUUserIODeleteVA(const userio *io, void *user, const char *dev, const char *name, const char *fmt, va_list ap)
Definition indiuserio.c:286
void IUUserIOSwitchContext(const userio *io, void *user, const struct _ISwitchVectorProperty *svp)
void IUUserIONewBLOBStart(const userio *io, void *user, const char *dev, const char *name, const char *timestamp)
Definition indiuserio.c:260
void IUUserIONewSwitchFull(const userio *io, void *user, const ISwitchVectorProperty *svp)
Definition indiuserio.c:229
void IUUserIOSetTextVA(const userio *io, void *user, const struct _ITextVectorProperty *tvp, const char *fmt, va_list ap)
void IUUserIODefTextVA(const userio *io, void *user, const struct _ITextVectorProperty *tvp, const char *fmt, va_list ap)
void IDUserIOMessage(const userio *io, void *user, const char *dev, const char *fmt,...)
Definition indiuserio.c:375
void IUUserIONewNumber(const userio *io, void *user, const struct _INumberVectorProperty *nvp)
void IUUserIODefNumberVA(const userio *io, void *user, const struct _INumberVectorProperty *n, const char *fmt, va_list ap)
void IUUserIODefBLOBVA(const userio *io, void *user, const struct _IBLOBVectorProperty *b, const char *fmt, va_list ap)
void IUUserIOSetBLOBVA(const userio *io, void *user, const struct _IBLOBVectorProperty *bvp, const char *fmt, va_list ap)
void IUUserIOEnableBLOB(const userio *io, void *user, const char *dev, const char *name, BLOBHandling blobH)
Definition indiuserio.c:341
void IUUserIOBLOBContext(const userio *io, void *user, const struct _IBLOBVectorProperty *bvp)
void IUUserIOPingRequest(const userio *io, void *user, const char *pingUid)
Definition indiuserio.c:787
void IUUserIOSetLightVA(const userio *io, void *user, const struct _ILightVectorProperty *lvp, const char *fmt, va_list ap)
void IDUserIOMessageVA(const userio *io, void *user, const char *dev, const char *fmt, va_list ap)
Definition indiuserio.c:358
void IUUserIOConfigTag(const userio *io, void *user, int ctag)
Definition indiuserio.c:386
void IUUserIOSwitchContextFull(const userio *io, void *user, const ISwitchVectorProperty *svp)
Definition indiuserio.c:82
void IUUserIOSetSwitchVA(const userio *io, void *user, const struct _ISwitchVectorProperty *svp, const char *fmt, va_list ap)
void IUUserIOTextContext(const userio *io, void *user, const struct _ITextVectorProperty *tvp)
void IUUserIOSetNumberVA(const userio *io, void *user, const struct _INumberVectorProperty *nvp, const char *fmt, va_list ap)
void IUUserIONumberContext(const userio *io, void *user, const struct _INumberVectorProperty *nvp)
void IUUserIOGetProperties(const userio *io, void *user, const char *dev, const char *name)
Definition indiuserio.c:307
void IUUserIOPingReply(const userio *io, void *user, const char *pingUid)
Definition indiuserio.c:794
BLOB (Binary Large Object) vector property descriptor.
Definition indiapi.h:469
Light vector property descriptor.
Definition indiapi.h:415
Number vector property descriptor.
Definition indiapi.h:317
Switch vector property descriptor.
Definition indiapi.h:365
struct _ISwitchVectorProperty * svp
Definition indiapi.h:355
ISState s
Definition indiapi.h:353
char name[MAXINDINAME]
Definition indiapi.h:349
Text vector property descriptor.
Definition indiapi.h:244