Instrument Neutral Distributed Interface INDI  1.9.5
indiuserio.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2021 by Pawel Soja <kernel32.pl@gmail.com>
3 
4  This library is free software; you can redistribute it and/or
5  modify it under the terms of the GNU Lesser General Public
6  License as published by the Free Software Foundation; either
7  version 2.1 of the License, or (at your option) any later version.
8 
9  This library is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  Lesser General Public License for more details.
13 
14  You should have received a copy of the GNU Lesser General Public
15  License along with this library; if not, write to the Free Software
16  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18 #pragma once
19 
20 #include "userio.h"
21 #include "indidevapi.h"
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
32 
33 struct _IBLOB;
34 struct _ISwitch;
35 
36 void IUUserIOTextContext(const userio *io, void *user, const struct _ITextVectorProperty *tvp);
37 void IUUserIONumberContext(const userio *io, void *user, const struct _INumberVectorProperty *nvp);
38 void IUUserIOSwitchContextOne(const userio *io, void *user, const struct _ISwitch *sp);
39 void IUUserIOSwitchContextFull(const userio *io, void *user, const ISwitchVectorProperty *svp);
40 void IUUserIOSwitchContext(const userio *io, void *user, const struct _ISwitchVectorProperty *svp);
41 void IUUserIOBLOBContext(const userio *io, void *user, const struct _IBLOBVectorProperty *bvp);
42 void IUUserIOLightContext(const userio *io, void *user, const struct _ILightVectorProperty *lvp);
43 
44 
45 void IUUserIONewText(const userio *io, void *user, const struct _ITextVectorProperty *tvp);
46 void IUUserIONewNumber(const userio *io, void *user, const struct _INumberVectorProperty *nvp);
47 void IUUserIONewSwitchFull(const userio *io, void *user, const ISwitchVectorProperty *svp);
48 void IUUserIONewSwitch(const userio *io, void *user, const struct _ISwitchVectorProperty *svp);
49 void IUUserIONewBLOB(const userio *io, void *user, const struct _IBLOBVectorProperty *bvp);
50 
51 void IUUserIONewBLOBStart(const userio *io, void *user, const char *dev, const char *name, const char *timestamp);
52 
54  const userio *io, void *user,
55  const char *name, unsigned int size, unsigned int bloblen, const void *blob, const char *format
56 );
57 void IUUserIONewBLOBFinish(const userio *io, void *user);
58 
60  const userio *io, void *user,
61  const char *dev, const char *name, BLOBHandling blobH
62 );
63 
64 // Define
65 void IUUserIODefTextVA(const userio *io, void *user, const struct _ITextVectorProperty *tvp, const char *fmt, va_list ap);
66 void IUUserIODefNumberVA(const userio *io, void *user, const struct _INumberVectorProperty *n, const char *fmt, va_list ap);
67 void IUUserIODefSwitchVA(const userio *io, void *user, const struct _ISwitchVectorProperty *s, const char *fmt, va_list ap);
68 void IUUserIODefLightVA(const userio *io, void *user, const struct _ILightVectorProperty *lvp, const char *fmt, va_list ap);
69 void IUUserIODefBLOBVA(const userio *io, void *user, const struct _IBLOBVectorProperty *b, const char *fmt, va_list ap);
70 
71 // Setup
72 void IUUserIOSetTextVA(const userio *io, void *user, const struct _ITextVectorProperty *tvp, const char *fmt, va_list ap);
73 void IUUserIOSetNumberVA(const userio *io, void *user, const struct _INumberVectorProperty *nvp, const char *fmt, va_list ap);
74 void IUUserIOSetSwitchVA(const userio *io, void *user, const struct _ISwitchVectorProperty *svp, const char *fmt, va_list ap);
75 void IUUserIOSetLightVA(const userio *io, void *user, const struct _ILightVectorProperty *lvp, const char *fmt, va_list ap);
76 void IUUserIOSetBLOBVA(const userio *io, void *user, const struct _IBLOBVectorProperty *bvp, const char *fmt, va_list ap);
77 
78 void IUUserIOUpdateMinMax(const userio *io, void *user, const struct _INumberVectorProperty *nvp);
79 
80 void IUUserIODeleteVA(const userio *io, void *user, const char *dev, const char *name, const char *fmt, va_list ap);
81 
82 void IUUserIOGetProperties(const userio *io, void *user, const char *dev, const char *name);
83 
84 void IDUserIOMessage(const userio *io, void *user, const char *dev, const char *fmt, ...);
85 void IDUserIOMessageVA(const userio *io, void *user, const char *dev, const char *fmt, va_list ap);
86 
87 void IUUserIOConfigTag(const userio *io, void *user, int ctag);
88 
89 #ifdef __cplusplus
90 }
91 #endif
IUUserIODefLightVA
void IUUserIODefLightVA(const userio *io, void *user, const struct _ILightVectorProperty *lvp, const char *fmt, va_list ap)
IUUserIODefNumberVA
void IUUserIODefNumberVA(const userio *io, void *user, const struct _INumberVectorProperty *n, const char *fmt, va_list ap)
_ILightVectorProperty
Light vector property descriptor.
Definition: indiapi.h:415
IUUserIONewBLOBStart
void IUUserIONewBLOBStart(const userio *io, void *user, const char *dev, const char *name, const char *timestamp)
Definition: indiuserio.c:250
IDUserIOMessage
void IDUserIOMessage(const userio *io, void *user, const char *dev, const char *fmt,...)
Definition: indiuserio.c:365
IUUserIOTextContext
void IUUserIOTextContext(const userio *io, void *user, const struct _ITextVectorProperty *tvp)
_IBLOBVectorProperty
BLOB (Binary Large Object) vector property descriptor.
Definition: indiapi.h:469
IUUserIONewBLOBFinish
void IUUserIONewBLOBFinish(const userio *io, void *user)
Definition: indiuserio.c:271
timestamp
const char * timestamp()
Create an ISO 8601 formatted time stamp. The format is YYYY-MM-DDTHH:MM:SS.
Definition: indicom.c:340
IUUserIOSwitchContext
void IUUserIOSwitchContext(const userio *io, void *user, const struct _ISwitchVectorProperty *svp)
IUUserIODefBLOBVA
void IUUserIODefBLOBVA(const userio *io, void *user, const struct _IBLOBVectorProperty *b, const char *fmt, va_list ap)
_ISwitch::svp
struct _ISwitchVectorProperty * svp
Definition: indiapi.h:356
_ITextVectorProperty
Text vector property descriptor.
Definition: indiapi.h:244
IUUserIOLightContext
void IUUserIOLightContext(const userio *io, void *user, const struct _ILightVectorProperty *lvp)
IUUserIOSetLightVA
void IUUserIOSetLightVA(const userio *io, void *user, const struct _ILightVectorProperty *lvp, const char *fmt, va_list ap)
_IBLOB
Definition: indiapi.h:441
IUUserIOEnableBLOB
void IUUserIOEnableBLOB(const userio *io, void *user, const char *dev, const char *name, BLOBHandling blobH)
Definition: indiuserio.c:331
_INumberVectorProperty
Number vector property descriptor.
Definition: indiapi.h:317
IUUserIONewSwitch
void IUUserIONewSwitch(const userio *io, void *user, const struct _ISwitchVectorProperty *svp)
IUUserIOGetProperties
void IUUserIOGetProperties(const userio *io, void *user, const char *dev, const char *name)
Definition: indiuserio.c:297
indidevapi.h
Interface to the reference INDI C API device implementation on the Device Driver side.
IUUserIOUpdateMinMax
void IUUserIOUpdateMinMax(const userio *io, void *user, const struct _INumberVectorProperty *nvp)
IUUserIOSetTextVA
void IUUserIOSetTextVA(const userio *io, void *user, const struct _ITextVectorProperty *tvp, const char *fmt, va_list ap)
IUUserIOSetNumberVA
void IUUserIOSetNumberVA(const userio *io, void *user, const struct _INumberVectorProperty *nvp, const char *fmt, va_list ap)
IUUserIOSwitchContextOne
void IUUserIOSwitchContextOne(const userio *io, void *user, const struct _ISwitch *sp)
BLOBHandling
BLOBHandling
How drivers handle BLOBs incoming from snooping drivers.
Definition: indidevapi.h:268
_ISwitch::s
ISState s
Definition: indiapi.h:354
IUUserIOBLOBContextOne
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:100
IUUserIOBLOBContext
void IUUserIOBLOBContext(const userio *io, void *user, const struct _IBLOBVectorProperty *bvp)
IUUserIOConfigTag
void IUUserIOConfigTag(const userio *io, void *user, int ctag)
Definition: indiuserio.c:376
IUUserIONewNumber
void IUUserIONewNumber(const userio *io, void *user, const struct _INumberVectorProperty *nvp)
IUUserIODefSwitchVA
void IUUserIODefSwitchVA(const userio *io, void *user, const struct _ISwitchVectorProperty *s, const char *fmt, va_list ap)
name
const char * name
Definition: indiserver.c:116
IDUserIOMessageVA
void IDUserIOMessageVA(const userio *io, void *user, const char *dev, const char *fmt, va_list ap)
Definition: indiuserio.c:348
IUUserIODefTextVA
void IUUserIODefTextVA(const userio *io, void *user, const struct _ITextVectorProperty *tvp, const char *fmt, va_list ap)
IUUserIONumberContext
void IUUserIONumberContext(const userio *io, void *user, const struct _INumberVectorProperty *nvp)
IUUserIONewBLOB
void IUUserIONewBLOB(const userio *io, void *user, const struct _IBLOBVectorProperty *bvp)
userio.h
userio
Definition: userio.h:32
IUUserIODeleteVA
void IUUserIODeleteVA(const userio *io, void *user, const char *dev, const char *name, const char *fmt, va_list ap)
Definition: indiuserio.c:276
IUUserIOSetSwitchVA
void IUUserIOSetSwitchVA(const userio *io, void *user, const struct _ISwitchVectorProperty *svp, const char *fmt, va_list ap)
IUUserIONewText
void IUUserIONewText(const userio *io, void *user, const struct _ITextVectorProperty *tvp)
IUUserIOSwitchContextFull
void IUUserIOSwitchContextFull(const userio *io, void *user, const ISwitchVectorProperty *svp)
Definition: indiuserio.c:81
_ISwitch
Definition: indiapi.h:347
IUUserIONewSwitchFull
void IUUserIONewSwitchFull(const userio *io, void *user, const ISwitchVectorProperty *svp)
Definition: indiuserio.c:219
IUUserIOSetBLOBVA
void IUUserIOSetBLOBVA(const userio *io, void *user, const struct _IBLOBVectorProperty *bvp, const char *fmt, va_list ap)
_ISwitchVectorProperty
Switch vector property descriptor.
Definition: indiapi.h:365