tvcmiclient
tvcmi_client.h
Go to the documentation of this file.
1 /*
2  * MIT License
3  * Copyright (c) 2017 TeamViewer GmbH
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a copy
6  * of this software and associated documentation files (the "Software"), to deal
7  * in the Software without restriction, including without limitation the rights
8  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9  * copies of the Software, and to permit persons to whom the Software is
10  * furnished to do so, subject to the following conditions:
11  * The above copyright notice and this permission notice shall be included in all
12  * copies or substantial portions of the Software.
13  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19  * SOFTWARE.
20 */
21 
34 
35 
36 #ifndef __TVCMI_CLIENT_H__
37 #define __TVCMI_CLIENT_H__
38 
39 #include <stdint.h>
40 #include <time.h>
41 
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45 
46 #define IOTTVCMI_API
47 #if defined(_MSC_VER)
48 # if defined(IOTTVCMI_CREATE_SHARED_LIBRARY)
49 # undef IOTTVCMI_API
50 # define IOTTVCMI_API __declspec(dllexport)
51 # elif defined(IOTTVCMI_LINKED_AS_SHARED_LIBRARY)
52 # undef IOTTVCMI_API
53 # define IOTTVCMI_API __declspec(dllimport)
54 # endif
55 #endif
56 
58 #define ApiVersion "v1.0"
59 
60 
62 typedef enum TVCMI_ApiErrorTag
63 {
64  TVCMI_ApiError_NoError = -1,
65  TVCMI_ApiError_UnknownError = 0,
66  TVCMI_ApiError_NoBackendConnection = 1,
67  TVCMI_ApiError_NoLicence = 2,
68  TVCMI_ApiError_InternalError = 3,
69  TVCMI_ApiError_InvalidJson = 4,
70  TVCMI_ApiError_JsonIsNotAnObject = 5,
71  TVCMI_ApiError_MissingParameter = 6,
72  TVCMI_ApiError_ParameterIsNotAString = 7,
73  TVCMI_ApiError_ParameterIsNotANumber = 8,
74  TVCMI_ApiError_ParameterIsNotABool = 9,
75  TVCMI_ApiError_ParameterIsNotAnArray = 10,
76  TVCMI_ApiError_ParameterIsNotAnInteger = 11,
77  TVCMI_ApiError_UnknownValueUnit = 12,
78  TVCMI_ApiError_UnknownMetricType = 13,
79  TVCMI_ApiError_ValueUnitOrValueTypeHasToBeProvided = 14,
80  TVCMI_ApiError_UnknownSensorId = 15,
81  TVCMI_ApiError_UnknownMetricId = 16,
82  TVCMI_ApiError_NoMetricsUpdated = 17,
83  TVCMI_ApiError_ForbiddendAccess = 18,
84  TVCMI_ApiError_OutOfRange = 19,
85  TVCMI_ApiError_CertificateFormatError = 20,
86  TVCMI_ApiError_CertificateIsEmptyError = 21,
87  TVCMI_ApiError_CertificateWithoutCommonName = 22,
88  TVCMI_ApiError_DeleteMetricsFailed = 23,
89  TVCMI_ApiError_ChangeMetricsFailed = 24,
90  TVCMI_ApiError_InvalidClientName = 25,
91  TVCMI_ApiError_CreateMetricsFailed = 26,
92  TVCMI_ApiError_PushValuesFailed = 27
93 
95 
97 typedef enum TVCMI_ErrorTag
98 {
99  TVCMI_Error_Unknown = -1,
100  TVCMI_Error_Success = 0,
101  TVCMI_Error_WrongApiVersion = 1,
102  TVCMI_Error_WrongConfigName = 2,
103  TVCMI_Error_ConfigReadFailed = 3,
104  TVCMI_Error_WrongConfigParams = 4,
105  TVCMI_Error_NoMemory = 5,
106  TVCMI_Error_InvalidArguments = 6,
107  TVCMI_Error_NoResource = 7,
108  TVCMI_Error_ConnectionFailed = 8,
109  TVCMI_Error_WrongProtocol = 9,
110  TVCMI_Error_WrongIdentifier = 10,
111  TVCMI_Error_ServerUnavailable = 11,
112  TVCMI_Error_UnexpectedDisconnect = 12,
113  TVCMI_Error_NoConnectionToServer = 13,
114  TVCMI_Error_PayloadSize = 14,
115  TVCMI_Error_WrongReply = 15,
116  TVCMI_Error_Busy = 16,
117  TVCMI_Error_CreateCertificate = 17,
118  TVCMI_Error_CreateProvisionCertificate = 18,
119  TVCMI_Error_CreatePrivateKey = 19,
120  TVCMI_Error_GetClientId = 20,
121  TVCMI_Error_TlsSetFailed = 21,
122  TVCMI_Error_ClientProvision = 22,
123  TVCMI_Error_ModifySensor = 23,
124  TVCMI_Error_DeleteSensor = 24,
125  TVCMI_Error_DeleteMetrics = 25,
126  TVCMI_Error_RemoveCertificates = 26,
127  TVCMI_Error_TlsConnection = 27,
128  TVCMI_Error_Errno = 28,
129  TVCMI_Error_ComposeJson = 29,
130  TVCMI_Error_NoThreadSupport = 30,
131  TVCMI_Error_ReadCertificateCN = 31,
132  TVCMI_Error_CertificateRequestPath = 32,
133  TVCMI_Error_CertifcateFolderPath = 33,
134  TVCMI_Error_AlreadyProvisioned = 34,
135  TVCMI_Error_WritingToCertificateFile = 35,
136  TVCMI_Error_WrongCertificateFile = 36,
137  TVCMI_Error_ThreadCreate = 37,
138  TVCMI_Error_NoBackendConnection = 38,
139  TVCMI_Error_CertificateRequest = 39
140 
141 } TVCMI_Error;
142 
144 typedef enum TVCMI_ValueUnitTag
145 {
146  TVCMI_ValueUnit_NoUnit,
147  TVCMI_ValueUnit_SIAmpere,
148  TVCMI_ValueUnit_SIBit,
149  TVCMI_ValueUnit_SICandela,
150  TVCMI_ValueUnit_SICelsius,
151  TVCMI_ValueUnit_SIFarad,
152  TVCMI_ValueUnit_SIKilogram,
153  TVCMI_ValueUnit_SIHertz,
154  TVCMI_ValueUnit_SIJoule,
155  TVCMI_ValueUnit_SIMeter,
156  TVCMI_ValueUnit_SIMetersPerSecond,
157  TVCMI_ValueUnit_SIMetersPerSquareSecond,
158  TVCMI_ValueUnit_SIMole,
159  TVCMI_ValueUnit_SINewtone,
160  TVCMI_ValueUnit_SIOhm,
161  TVCMI_ValueUnit_SIPascal,
162  TVCMI_ValueUnit_SIRadian,
163  TVCMI_ValueUnit_SISecond,
164  TVCMI_ValueUnit_SISquareMeter,
165  TVCMI_ValueUnit_SIVolt,
166  TVCMI_ValueUnit_SIWatt,
167  TVCMI_ValueUnit_NoSIDecibel, // Non-SI Decibel unit
168  TVCMI_ValueUnit_NoSIPercent // Non-SI Percent unit
169 
171 
173 typedef enum TVCMI_ValueTypeTag
174 {
175  TVCMI_ValueType_NoType,
176  TVCMI_ValueType_Integer,
177  TVCMI_ValueType_Double,
178  TVCMI_ValueType_Bool,
179  TVCMI_ValueType_String
180 
182 
185 {
186  char* matchingId;
187  char* metricId;
188 
190 
193 {
194  char* sensorId;
195  TVCMI_CreatedMetric* metrics;
196  int metricsCount;
197 
199 
201 typedef struct TVCMI_MetricInfoTag
202 {
203  char* metricId;
204 
206 
209 {
210  TVCMI_SensorType_None,
211  TVCMI_SensorType_Standard,
212  TVCMI_SensorType_Plugin
213 
215 
218 {
219  char* parameterName;
220  char* parameterValue;
221 
223 
226 {
227  char* name;
228  char* sensorId;
229  int frequency;
230  TVCMI_SensorType sensorType;
231  char* pluginName;
232  char* pluginDownloadUrl;
233  TVCMI_PluginParameter* pluginParameters;
234  int pluginParametersCount;
235  char* monitoringService;
236  TVCMI_MetricInfo* metrics;
237  int metricsCount;
238 
240 
242 typedef struct TVCMI_SensorsInfoTag
243 {
244  TVCMI_SensorMetadata* sensors;
245  int sensorsCount;
246 
248 
251 {
252  char* id;
253  TVCMI_ValueUnit valueUnit;
254  TVCMI_ValueType valueType;
255  char* valueAnnotation;
256  uint64_t lastUpdated;
257  char* value;
258  char* name;
259 
261 
263 typedef struct TVCMI_MetricSchemaContainerTag TVCMI_MetricSchemaContainer;
264 
266 typedef struct TVCMI_MetricValueContainerTag TVCMI_MetricValueContainer;
267 
269 typedef struct TVCMI_ClientTag TVCMI_Client;
270 
271 
281 IOTTVCMI_API TVCMI_Error TVCMI_LibInit();
282 
283 
292 IOTTVCMI_API TVCMI_Error TVCMI_LibCleanup();
293 
294 
325 IOTTVCMI_API TVCMI_Client* TVCMI_NewClient(const char* confFile, void* callbackParameter, TVCMI_Error* err);
326 
327 
337 IOTTVCMI_API TVCMI_Error TVCMI_DeleteClient(TVCMI_Client* client);
338 
339 
360 IOTTVCMI_API TVCMI_Error TVCMI_ProvisionClient(TVCMI_Client* client);
361 
362 
376 IOTTVCMI_API TVCMI_Error TVCMI_Connect(TVCMI_Client* client);
377 
378 
389 IOTTVCMI_API TVCMI_Error TVCMI_Disconnect(TVCMI_Client* client);
390 
391 
406 IOTTVCMI_API TVCMI_Error TVCMI_CreateSensor(TVCMI_Client* client, const char* name);
407 
408 
425 IOTTVCMI_API TVCMI_Error TVCMI_UpdateSensor(TVCMI_Client* client, const char* sensorId, const char* sensorName);
426 
427 
443 IOTTVCMI_API TVCMI_Error TVCMI_DeleteSensor(TVCMI_Client* client, const char* sensorId);
444 
445 
468 IOTTVCMI_API TVCMI_Error TVCMI_CreateMetrics(TVCMI_Client* client, const char* sensorId, TVCMI_MetricSchemaContainer* container);
469 
470 
492 IOTTVCMI_API TVCMI_Error TVCMI_UpdateMetrics(TVCMI_Client* client, const char* sensorId, TVCMI_MetricSchemaContainer* container);
493 
494 
521 IOTTVCMI_API TVCMI_Error TVCMI_PushMetricValues(TVCMI_Client* client, const char* sensorId, TVCMI_MetricValueContainer* container);
522 
523 
539 IOTTVCMI_API TVCMI_Error TVCMI_DeleteMetrics(TVCMI_Client* client, const char* sensorId, char** metricIds, int metricsCount);
540 
541 
554 
555 
571 
572 
593  TVCMI_MetricSchemaContainer* container,
594  const char* matchingId,
595  const char* name,
596  TVCMI_ValueUnit valueUnit);
597 
598 
622  TVCMI_MetricSchemaContainer* container,
623  const char* matchingId,
624  const char* name,
625  TVCMI_ValueType valueType,
626  const char* valueAnnotation);
627 
628 
648  TVCMI_MetricSchemaContainer* container,
649  const char* metricId,
650  const char* name,
651  const char* valueAnnotation);
652 
653 
669 
670 
689 
690 
709 IOTTVCMI_API TVCMI_Error TVCMI_AddIntegerMetricValue(TVCMI_MetricValueContainer* container, int64_t value, const char* metricId);
710 
711 
730 IOTTVCMI_API TVCMI_Error TVCMI_AddBoolMetricValue(TVCMI_MetricValueContainer* container, int value, const char* metricId);
731 
732 
751 IOTTVCMI_API TVCMI_Error TVCMI_AddDoubleMetricValue(TVCMI_MetricValueContainer* container, double value, const char* metricId);
752 
753 
772 IOTTVCMI_API TVCMI_Error TVCMI_AddStringMetricValue(TVCMI_MetricValueContainer* container, const char* value, const char* metricId);
773 
789 IOTTVCMI_API TVCMI_Error TVCMI_AddEpochTimeStamp(TVCMI_MetricValueContainer* container, uint64_t epochTimestamp);
790 
805 IOTTVCMI_API TVCMI_Error TVCMI_ListSensors(TVCMI_Client* client);
806 
807 
825 IOTTVCMI_API TVCMI_Error TVCMI_DescribeMetric(TVCMI_Client* client, const char* sensorId, const char* metricId);
826 
827 
842 IOTTVCMI_API TVCMI_Error TVCMI_ReportClientError(TVCMI_Client* client, int error, const char* errMessage);
843 
844 
861  TVCMI_Client* client,
862  const char* sensorId,
863  int error,
864  const char* errMessage);
865 
866 
884  TVCMI_Client* client,
885  const char* sensorId,
886  const char* metricId,
887  int error,
888  const char* errMessage);
889 
890 
914  TVCMI_Client* client,
915  void (*TVCMI_OnProvisionClient)(
916  TVCMI_Client* client,
917  void* callbackParameter,
918  TVCMI_Error err));
919 
920 
936  TVCMI_Client* client,
937  void (*TVCMI_OnConnect)(
938  TVCMI_Client* client,
939  void* callbackParameter,
940  TVCMI_Error err));
941 
942 
958  TVCMI_Client* client,
959  void (*TVCMI_OnDisconnect)(
960  TVCMI_Client* client,
961  void* callbackParameter,
962  TVCMI_Error err));
963 
964 
983  TVCMI_Client* client,
984  void (*TVCMI_OnCreateSensor)(
985  TVCMI_Client* client,
986  void* callbackParameter,
987  const char* sensorName,
988  const char* sensorId,
989  TVCMI_ApiError err));
990 
991 
1009  TVCMI_Client* client,
1010  void (*TVCMI_OnUpdateSensor)(
1011  TVCMI_Client* client,
1012  void* callbackParameter,
1013  const char* sensorId,
1014  TVCMI_ApiError err));
1015 
1016 
1034  TVCMI_Client* client,
1035  void (*TVCMI_OnDeleteSensor)(
1036  TVCMI_Client* client,
1037  void* callbackParameter,
1038  const char* sensorId,
1039  TVCMI_ApiError err));
1040 
1041 
1062  TVCMI_Client* client,
1063  void (*TVCMI_OnCreateMetrics)(
1064  TVCMI_Client* client,
1065  void* callbackParameter,
1066  TVCMI_CreatedMetrics* createdMetrics,
1067  TVCMI_ApiError err));
1068 
1086  TVCMI_Client* client,
1087  void (*TVCMI_OnUpdateMetrics)(
1088  TVCMI_Client* client,
1089  void* callbackParameter,
1090  const char* sensorId,
1091  TVCMI_ApiError err));
1092 
1093 
1100 IOTTVCMI_API void TVCMI_DestroyCreatedMetrics(TVCMI_CreatedMetrics* createdMetrics);
1101 
1102 
1120  TVCMI_Client* client,
1121  void (*TVCMI_OnDeleteMetrics)(
1122  TVCMI_Client* client,
1123  void* callbackParameter,
1124  const char* sensorId,
1125  TVCMI_ApiError err));
1126 
1127 
1145  TVCMI_Client* client,
1146  void (*TVCMI_OnPushMetricValues)(
1147  TVCMI_Client* client,
1148  void* callbackParameter,
1149  const char* sensorId,
1150  TVCMI_ApiError err));
1151 
1152 
1172  TVCMI_Client* client,
1173  void (*TVCMI_OnListSensors)(
1174  TVCMI_Client* client,
1175  TVCMI_SensorsInfo* sensorsInfo,
1176  void* callbackParameter,
1177  TVCMI_ApiError err));
1178 
1179 
1185 IOTTVCMI_API void TVCMI_DestroySensorsInfo(TVCMI_SensorsInfo* sensorsInfo);
1186 
1187 
1208  TVCMI_Client* client,
1209  void (*TVCMI_OnDescribeMetric)(
1210  TVCMI_Client* client,
1211  const char* sensorId,
1212  TVCMI_MetricMetadata* metricMetadata,
1213  void* callbackParameter,
1214  TVCMI_ApiError err));
1215 
1216 
1223 IOTTVCMI_API void TVCMI_DestroyMetricMetadata(TVCMI_MetricMetadata* metricMetadata);
1224 
1225 
1240 IOTTVCMI_API TVCMI_Error TVCMI_LogCallbackSet(
1241  TVCMI_Client* client,
1242  void (*TVCMI_OnLog)(
1243  TVCMI_Client* client,
1244  const char* logMessage,
1245  void* callbackParameter));
1246 
1247 
1256 IOTTVCMI_API const char* TVCMI_GetClientId(TVCMI_Client* client);
1257 
1258 
1268 IOTTVCMI_API TVCMI_Error TVCMI_CheckConnection(TVCMI_Client* client);
1269 
1270 
1287  TVCMI_Client* client,
1288  void (*TVCMI_OnCheckConnection)(
1289  TVCMI_Client* client,
1290  void* callbackParameter,
1291  TVCMI_ApiError err));
1292 
1293 
1311  TVCMI_Client* client,
1312  void (*TVCMI_OnCreateSensorJob)(
1313  TVCMI_Client* client,
1314  TVCMI_SensorMetadata* sensorMetadata,
1315  void* callbackParameter));
1316 
1317 
1324 
1325 
1341  TVCMI_Client* client,
1342  void (*TVCMI_OnDeleteSensorJob)(
1343  TVCMI_Client* client,
1344  const char* sensorId,
1345  void* callbackParameter));
1346 
1347 
1358 IOTTVCMI_API TVCMI_Error TVCMI_DeprovisionClient(TVCMI_Client* client);
1359 
1360 
1372  TVCMI_Client* client,
1373  void (*TVCMI_OnDeprovisionClient)(
1374  TVCMI_Client* client,
1375  void* callbackParameter));
1376 
1377 
1378 #ifdef __cplusplus
1379 }
1380 #endif //__cplusplus
1381 
1382 #endif //__TVCMI_CLIENT_H__
1383 
TVCMI_MetricMetadata
struct TVCMI_MetricMetadataTag TVCMI_MetricMetadata
Metric information.
TVCMI_CreatedMetric
struct TVCMI_CreatedMetricTag TVCMI_CreatedMetric
Created metric information. Used in TVCMI_CreatedMetrics.
TVCMI_AddIntegerMetricValue
IOTTVCMI_API TVCMI_Error TVCMI_AddIntegerMetricValue(TVCMI_MetricValueContainer *container, int64_t value, const char *metricId)
Add a value of type int64_t to the container object.
TVCMI_DeprovisionClient
IOTTVCMI_API TVCMI_Error TVCMI_DeprovisionClient(TVCMI_Client *client)
Delete the access to this client.
TVCMI_ReportClientError
IOTTVCMI_API TVCMI_Error TVCMI_ReportClientError(TVCMI_Client *client, int error, const char *errMessage)
Send error message about a client.
TVCMI_UpdateMetrics
IOTTVCMI_API TVCMI_Error TVCMI_UpdateMetrics(TVCMI_Client *client, const char *sensorId, TVCMI_MetricSchemaContainer *container)
Update metrics.
TVCMI_NewClient
IOTTVCMI_API TVCMI_Client * TVCMI_NewClient(const char *confFile, void *callbackParameter, TVCMI_Error *err)
Create a client object.
TVCMI_CreatedMetricsTag
Created metrics information.
Definition: tvcmi_client.h:192
TVCMI_ValueUnitTag
TVCMI_ValueUnitTag
Metric value units.
Definition: tvcmi_client.h:144
TVCMI_SensorTypeTag
TVCMI_SensorTypeTag
Sensor types.
Definition: tvcmi_client.h:208
TVCMI_SensorsInfo
struct TVCMI_SensorsInfoTag TVCMI_SensorsInfo
Sensors information.
TVCMI_MetricValueContainer
struct TVCMI_MetricValueContainerTag TVCMI_MetricValueContainer
A container for sending metric values.
Definition: tvcmi_client.h:266
TVCMI_DescribeMetricCallbackSet
IOTTVCMI_API TVCMI_Error TVCMI_DescribeMetricCallbackSet(TVCMI_Client *client, void(*TVCMI_OnDescribeMetric)(TVCMI_Client *client, const char *sensorId, TVCMI_MetricMetadata *metricMetadata, void *callbackParameter, TVCMI_ApiError err))
Set TVCMI_OnDescribeMetric callback to receive a response about the metric.
TVCMI_PluginParameterTag
Plugin parameters information. Used in TVCMI_SensorMetadata.
Definition: tvcmi_client.h:217
TVCMI_ProvisionClient
IOTTVCMI_API TVCMI_Error TVCMI_ProvisionClient(TVCMI_Client *client)
Provision the client.
TVCMI_DeleteSensorJobCallbackSet
IOTTVCMI_API TVCMI_Error TVCMI_DeleteSensorJobCallbackSet(TVCMI_Client *client, void(*TVCMI_OnDeleteSensorJob)(TVCMI_Client *client, const char *sensorId, void *callbackParameter))
Set TVCMI_OnDeleteSensorJob callback to receive sensor delete jobs.
TVCMI_ValueTypeTag
TVCMI_ValueTypeTag
Metric value types.
Definition: tvcmi_client.h:173
TVCMI_CreateSensor
IOTTVCMI_API TVCMI_Error TVCMI_CreateSensor(TVCMI_Client *client, const char *name)
Create sensor by name.
TVCMI_CreateSensorJobCallbackSet
IOTTVCMI_API TVCMI_Error TVCMI_CreateSensorJobCallbackSet(TVCMI_Client *client, void(*TVCMI_OnCreateSensorJob)(TVCMI_Client *client, TVCMI_SensorMetadata *sensorMetadata, void *callbackParameter))
Set TVCMI_OnCreateSensorJob callback to receive sensor create jobs.
TVCMI_DisconnectCallbackSet
IOTTVCMI_API TVCMI_Error TVCMI_DisconnectCallbackSet(TVCMI_Client *client, void(*TVCMI_OnDisconnect)(TVCMI_Client *client, void *callbackParameter, TVCMI_Error err))
Set TVCMI_OnDisconnect callback to get an event about client being disconnected.
TVCMI_DeleteMetrics
IOTTVCMI_API TVCMI_Error TVCMI_DeleteMetrics(TVCMI_Client *client, const char *sensorId, char **metricIds, int metricsCount)
Delete metrics.
TVCMI_ValueType
enum TVCMI_ValueTypeTag TVCMI_ValueType
Metric value types.
TVCMI_ListSensorsCallbackSet
IOTTVCMI_API TVCMI_Error TVCMI_ListSensorsCallbackSet(TVCMI_Client *client, void(*TVCMI_OnListSensors)(TVCMI_Client *client, TVCMI_SensorsInfo *sensorsInfo, void *callbackParameter, TVCMI_ApiError err))
Set TVCMI_OnListSensors callback to get a response about the sensors.
TVCMI_ApiErrorTag
TVCMI_ApiErrorTag
Gateway errors.
Definition: tvcmi_client.h:62
TVCMI_MetricInfo
struct TVCMI_MetricInfoTag TVCMI_MetricInfo
Metric information. Used in TVCMI_SensorInfo.
TVCMI_CreateMetricsCallbackSet
IOTTVCMI_API TVCMI_Error TVCMI_CreateMetricsCallbackSet(TVCMI_Client *client, void(*TVCMI_OnCreateMetrics)(TVCMI_Client *client, void *callbackParameter, TVCMI_CreatedMetrics *createdMetrics, TVCMI_ApiError err))
Set TVCMI_OnCreateMetrics callback to get a response about metrics creation.
TVCMI_UpdateMetricsCallbackSet
IOTTVCMI_API TVCMI_Error TVCMI_UpdateMetricsCallbackSet(TVCMI_Client *client, void(*TVCMI_OnUpdateMetrics)(TVCMI_Client *client, void *callbackParameter, const char *sensorId, TVCMI_ApiError err))
Set TVCMI_OnUpdateMetrics callback to get a response about metrics update.
TVCMI_LogCallbackSet
IOTTVCMI_API TVCMI_Error TVCMI_LogCallbackSet(TVCMI_Client *client, void(*TVCMI_OnLog)(TVCMI_Client *client, const char *logMessage, void *callbackParameter))
Set TVCMI_OnLog callback to get library's internal info and error messages.
TVCMI_SensorMetadata
struct TVCMI_SensorMetadataTag TVCMI_SensorMetadata
Sensor information. Used in TVCMI_SensorsInfo.
TVCMI_AddDoubleMetricValue
IOTTVCMI_API TVCMI_Error TVCMI_AddDoubleMetricValue(TVCMI_MetricValueContainer *container, double value, const char *metricId)
Add a value of type double to the container object.
TVCMI_AddCustomMetricSchema
IOTTVCMI_API TVCMI_Error TVCMI_AddCustomMetricSchema(TVCMI_MetricSchemaContainer *container, const char *matchingId, const char *name, TVCMI_ValueType valueType, const char *valueAnnotation)
Add a metric with custom type of value unit.
TVCMI_ReportMetricError
IOTTVCMI_API TVCMI_Error TVCMI_ReportMetricError(TVCMI_Client *client, const char *sensorId, const char *metricId, int error, const char *errMessage)
Send error message about a metric.
TVCMI_DeleteSensor
IOTTVCMI_API TVCMI_Error TVCMI_DeleteSensor(TVCMI_Client *client, const char *sensorId)
Delete sensor.
TVCMI_Error
enum TVCMI_ErrorTag TVCMI_Error
Error values.
TVCMI_GetClientId
const IOTTVCMI_API char * TVCMI_GetClientId(TVCMI_Client *client)
Return the client id.
TVCMI_SensorType
enum TVCMI_SensorTypeTag TVCMI_SensorType
Sensor types.
TVCMI_PluginParameter
struct TVCMI_PluginParameterTag TVCMI_PluginParameter
Plugin parameters information. Used in TVCMI_SensorMetadata.
TVCMI_CreateMetricSchemaContainer
IOTTVCMI_API TVCMI_MetricSchemaContainer * TVCMI_CreateMetricSchemaContainer()
Create a TVCMI_MetricSchemaContainer object and returns it's pointer.
TVCMI_UpdateSensor
IOTTVCMI_API TVCMI_Error TVCMI_UpdateSensor(TVCMI_Client *client, const char *sensorId, const char *sensorName)
Update sensor meta data.
TVCMI_AddEpochTimeStamp
IOTTVCMI_API TVCMI_Error TVCMI_AddEpochTimeStamp(TVCMI_MetricValueContainer *container, uint64_t epochTimestamp)
Add a timestamp to the container object.
TVCMI_PushMetricValuesCallbackSet
IOTTVCMI_API TVCMI_Error TVCMI_PushMetricValuesCallbackSet(TVCMI_Client *client, void(*TVCMI_OnPushMetricValues)(TVCMI_Client *client, void *callbackParameter, const char *sensorId, TVCMI_ApiError err))
Set TVCMI_OnPushMetricValues callback to get errors about metrics values update.
TVCMI_CheckConnection
IOTTVCMI_API TVCMI_Error TVCMI_CheckConnection(TVCMI_Client *client)
Check if the connection with TeamViewer IoT Agent is alive.
TVCMI_Client
struct TVCMI_ClientTag TVCMI_Client
A client object.
Definition: tvcmi_client.h:269
TVCMI_PushMetricValues
IOTTVCMI_API TVCMI_Error TVCMI_PushMetricValues(TVCMI_Client *client, const char *sensorId, TVCMI_MetricValueContainer *container)
Send values of metrics of a client to the TeamViewer IOT Agent.
TVCMI_CreateMetricValueContainer
IOTTVCMI_API TVCMI_MetricValueContainer * TVCMI_CreateMetricValueContainer()
Create a TVCMI_MetricValueContainer object.
TVCMI_Disconnect
IOTTVCMI_API TVCMI_Error TVCMI_Disconnect(TVCMI_Client *client)
Disconnect from the TeamViewer IOT Agent.
TVCMI_MetricInfoTag
Metric information. Used in TVCMI_SensorInfo.
Definition: tvcmi_client.h:201
TVCMI_DestroyMetricSchemaContainer
IOTTVCMI_API TVCMI_Error TVCMI_DestroyMetricSchemaContainer(TVCMI_MetricSchemaContainer *container)
Destroy container object created by function TVCMI_CreateMetricSchemaContainer().
TVCMI_Connect
IOTTVCMI_API TVCMI_Error TVCMI_Connect(TVCMI_Client *client)
Connect to the TeamViewer IOT Agent.
TVCMI_CheckConnectionCallbackSet
IOTTVCMI_API TVCMI_Error TVCMI_CheckConnectionCallbackSet(TVCMI_Client *client, void(*TVCMI_OnCheckConnection)(TVCMI_Client *client, void *callbackParameter, TVCMI_ApiError err))
Set TVCMI_OnCheckConnection callback to get a response from the TeamViewer IoT Agent.
TVCMI_SensorsInfoTag
Sensors information.
Definition: tvcmi_client.h:242
TVCMI_DestroySensorMetadata
void TVCMI_DestroySensorMetadata(TVCMI_SensorMetadata *sensorMetadata)
Destroy sensorMetadata returned by callback function TVCMI_OnCreateSensorJob().
TVCMI_DeleteSensorCallbackSet
IOTTVCMI_API TVCMI_Error TVCMI_DeleteSensorCallbackSet(TVCMI_Client *client, void(*TVCMI_OnDeleteSensor)(TVCMI_Client *client, void *callbackParameter, const char *sensorId, TVCMI_ApiError err))
Set TVCMI_OnDeleteSensor callback to get a response about sensor deletion.
TVCMI_CreateSensorCallbackSet
IOTTVCMI_API TVCMI_Error TVCMI_CreateSensorCallbackSet(TVCMI_Client *client, void(*TVCMI_OnCreateSensor)(TVCMI_Client *client, void *callbackParameter, const char *sensorName, const char *sensorId, TVCMI_ApiError err))
Set TVCMI_OnCreateSensor callback to get a response about sensor creation.
TVCMI_UpdateSensorCallbackSet
IOTTVCMI_API TVCMI_Error TVCMI_UpdateSensorCallbackSet(TVCMI_Client *client, void(*TVCMI_OnUpdateSensor)(TVCMI_Client *client, void *callbackParameter, const char *sensorId, TVCMI_ApiError err))
Set TVCMI_OnUpdateSensor callback to get a response about sensor meta data change.
TVCMI_SensorMetadataTag
Sensor information. Used in TVCMI_SensorsInfo.
Definition: tvcmi_client.h:225
TVCMI_ErrorTag
TVCMI_ErrorTag
Error values.
Definition: tvcmi_client.h:97
TVCMI_AddMetricUpdateSchema
IOTTVCMI_API TVCMI_Error TVCMI_AddMetricUpdateSchema(TVCMI_MetricSchemaContainer *container, const char *metricId, const char *name, const char *valueAnnotation)
Add metrics to change name and/or valueAnnotation.
TVCMI_ReportSensorError
IOTTVCMI_API TVCMI_Error TVCMI_ReportSensorError(TVCMI_Client *client, const char *sensorId, int error, const char *errMessage)
Send error message about a sensor.
TVCMI_CreatedMetrics
struct TVCMI_CreatedMetricsTag TVCMI_CreatedMetrics
Created metrics information.
TVCMI_DestroyCreatedMetrics
IOTTVCMI_API void TVCMI_DestroyCreatedMetrics(TVCMI_CreatedMetrics *createdMetrics)
Destroy created metrics returned by callback function TVCMI_OnCraeteMetrics().
TVCMI_DescribeMetric
IOTTVCMI_API TVCMI_Error TVCMI_DescribeMetric(TVCMI_Client *client, const char *sensorId, const char *metricId)
Get information about certain metric.
TVCMI_ListSensors
IOTTVCMI_API TVCMI_Error TVCMI_ListSensors(TVCMI_Client *client)
Get information about sensors, including its metrics.
TVCMI_CreateMetrics
IOTTVCMI_API TVCMI_Error TVCMI_CreateMetrics(TVCMI_Client *client, const char *sensorId, TVCMI_MetricSchemaContainer *container)
Create metrics of a sensor.
TVCMI_MetricSchemaContainer
struct TVCMI_MetricSchemaContainerTag TVCMI_MetricSchemaContainer
A container for creating metrics.
Definition: tvcmi_client.h:263
TVCMI_AddBoolMetricValue
IOTTVCMI_API TVCMI_Error TVCMI_AddBoolMetricValue(TVCMI_MetricValueContainer *container, int value, const char *metricId)
Add a value of boolean type to the container object.
TVCMI_ApiError
enum TVCMI_ApiErrorTag TVCMI_ApiError
Gateway errors.
TVCMI_MetricMetadataTag
Metric information.
Definition: tvcmi_client.h:250
TVCMI_AddStandardMetricSchema
IOTTVCMI_API TVCMI_Error TVCMI_AddStandardMetricSchema(TVCMI_MetricSchemaContainer *container, const char *matchingId, const char *name, TVCMI_ValueUnit valueUnit)
Add a metric with standard ValueUnit type of value unit.
TVCMI_LibInit
IOTTVCMI_API TVCMI_Error TVCMI_LibInit()
Initializes the library.
TVCMI_AddStringMetricValue
IOTTVCMI_API TVCMI_Error TVCMI_AddStringMetricValue(TVCMI_MetricValueContainer *container, const char *value, const char *metricId)
Add a value of type string to the container object.
TVCMI_ConnectCallbackSet
IOTTVCMI_API TVCMI_Error TVCMI_ConnectCallbackSet(TVCMI_Client *client, void(*TVCMI_OnConnect)(TVCMI_Client *client, void *callbackParameter, TVCMI_Error err))
Set TVCMI_OnConnect callback to get an event about client being connected.
TVCMI_LibCleanup
IOTTVCMI_API TVCMI_Error TVCMI_LibCleanup()
Call TVCMI_LibCleanup to free resources associated with the library.
TVCMI_ProvisionClientCallbackSet
IOTTVCMI_API TVCMI_Error TVCMI_ProvisionClientCallbackSet(TVCMI_Client *client, void(*TVCMI_OnProvisionClient)(TVCMI_Client *client, void *callbackParameter, TVCMI_Error err))
Set TVCMI_OnProvisionClient callback to get an event about client being provisioned.
TVCMI_DestroyMetricMetadata
IOTTVCMI_API void TVCMI_DestroyMetricMetadata(TVCMI_MetricMetadata *metricMetadata)
Destroy metricMetadata returned by callback function TVCMI_OnGetMetric().
TVCMI_CreatedMetricTag
Created metric information. Used in TVCMI_CreatedMetrics.
Definition: tvcmi_client.h:184
TVCMI_DestroySensorsInfo
IOTTVCMI_API void TVCMI_DestroySensorsInfo(TVCMI_SensorsInfo *sensorsInfo)
Destroy sensorsInfo returned by callback function TVCMI_OnListSensors().
TVCMI_DeleteClient
IOTTVCMI_API TVCMI_Error TVCMI_DeleteClient(TVCMI_Client *client)
Use to free the memory associated with a TVCMI_Client instance.
TVCMI_DeprovisionClientCallbackSet
IOTTVCMI_API TVCMI_Error TVCMI_DeprovisionClientCallbackSet(TVCMI_Client *client, void(*TVCMI_OnDeprovisionClient)(TVCMI_Client *client, void *callbackParameter))
Set TVCMI_OnDeprovisionClient callback to know that the Deprovision is done.
TVCMI_DestroyMetricValueContainer
IOTTVCMI_API TVCMI_Error TVCMI_DestroyMetricValueContainer(TVCMI_MetricValueContainer *container)
Destroy container object created by function TVCMI_CreateMetricValueContainer().
TVCMI_ValueUnit
enum TVCMI_ValueUnitTag TVCMI_ValueUnit
Metric value units.
TVCMI_DeleteMetricsCallbackSet
IOTTVCMI_API TVCMI_Error TVCMI_DeleteMetricsCallbackSet(TVCMI_Client *client, void(*TVCMI_OnDeleteMetrics)(TVCMI_Client *client, void *callbackParameter, const char *sensorId, TVCMI_ApiError err))
Set TVCMI_OnDeleteMetrics callback to get errors about metrics deletion.