Instrument Neutral Distributed Interface INDI  2.0.2
indiuserio.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2021 by Pawel Soja <kernel32.pl@gmail.com>
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
25 extern "C" {
26 #endif
27 
33 
34 struct _IBLOB;
35 struct _ISwitch;
36 
37 void IUUserIOTextContext(const userio *io, void *user, const struct _ITextVectorProperty *tvp);
38 void IUUserIONumberContext(const userio *io, void *user, const struct _INumberVectorProperty *nvp);
39 void IUUserIOSwitchContextOne(const userio *io, void *user, const struct _ISwitch *sp);
40 void IUUserIOSwitchContextFull(const userio *io, void *user, const ISwitchVectorProperty *svp);
41 void IUUserIOSwitchContext(const userio *io, void *user, const struct _ISwitchVectorProperty *svp);
42 void IUUserIOBLOBContext(const userio *io, void *user, const struct _IBLOBVectorProperty *bvp);
43 void IUUserIOLightContext(const userio *io, void *user, const struct _ILightVectorProperty *lvp);
44 
45 
46 void IUUserIONewText(const userio *io, void *user, const struct _ITextVectorProperty *tvp);
47 void IUUserIONewNumber(const userio *io, void *user, const struct _INumberVectorProperty *nvp);
48 void IUUserIONewSwitchFull(const userio *io, void *user, const ISwitchVectorProperty *svp);
49 void IUUserIONewSwitch(const userio *io, void *user, const struct _ISwitchVectorProperty *svp);
50 void IUUserIONewBLOB(const userio *io, void *user, const struct _IBLOBVectorProperty *bvp);
51 
52 void 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 );
58 void 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
66 void IUUserIODefTextVA(const userio *io, void *user, const struct _ITextVectorProperty *tvp, const char *fmt, va_list ap);
67 void IUUserIODefNumberVA(const userio *io, void *user, const struct _INumberVectorProperty *n, const char *fmt, va_list ap);
68 void IUUserIODefSwitchVA(const userio *io, void *user, const struct _ISwitchVectorProperty *s, const char *fmt, va_list ap);
69 void IUUserIODefLightVA(const userio *io, void *user, const struct _ILightVectorProperty *lvp, const char *fmt, va_list ap);
70 void IUUserIODefBLOBVA(const userio *io, void *user, const struct _IBLOBVectorProperty *b, const char *fmt, va_list ap);
71 
72 // Setup
73 void IUUserIOSetTextVA(const userio *io, void *user, const struct _ITextVectorProperty *tvp, const char *fmt, va_list ap);
74 void IUUserIOSetNumberVA(const userio *io, void *user, const struct _INumberVectorProperty *nvp, const char *fmt,
75  va_list ap);
76 void IUUserIOSetSwitchVA(const userio *io, void *user, const struct _ISwitchVectorProperty *svp, const char *fmt,
77  va_list ap);
78 void IUUserIOSetLightVA(const userio *io, void *user, const struct _ILightVectorProperty *lvp, const char *fmt, va_list ap);
79 void IUUserIOSetBLOBVA(const userio *io, void *user, const struct _IBLOBVectorProperty *bvp, const char *fmt, va_list ap);
80 
81 void IUUserIOUpdateMinMax(const userio *io, void *user, const struct _INumberVectorProperty *nvp);
82 
83 void IUUserIODeleteVA(const userio *io, void *user, const char *dev, const char *name, const char *fmt, va_list ap);
84 
85 void IUUserIOGetProperties(const userio *io, void *user, const char *dev, const char *name);
86 
87 void IDUserIOMessage(const userio *io, void *user, const char *dev, const char *fmt, ...);
88 void IDUserIOMessageVA(const userio *io, void *user, const char *dev, const char *fmt, va_list ap);
89 
90 void IUUserIOConfigTag(const userio *io, void *user, int ctag);
91 
92 void IUUserIOPingRequest(const userio * io, void *user, const char * pingUid);
93 void IUUserIOPingReply(const userio * io, void *user, const char * pingUid);
94 
95 #ifdef __cplusplus
96 }
97 #endif
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:266
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:471
Light vector property descriptor.
Definition: indiapi.h:417
Number vector property descriptor.
Definition: indiapi.h:319
Switch vector property descriptor.
Definition: indiapi.h:367
struct _ISwitchVectorProperty * svp
Definition: indiapi.h:357
ISState s
Definition: indiapi.h:355
char name[MAXINDINAME]
Definition: indiapi.h:351
Text vector property descriptor.
Definition: indiapi.h:246
Definition: userio.h:29