Go to the documentation of this file.
36 #ifndef __TVCMI_CLIENT_H__
37 #define __TVCMI_CLIENT_H__
48 # if defined(IOTTVCMI_CREATE_SHARED_LIBRARY)
50 # define IOTTVCMI_API __declspec(dllexport)
51 # elif defined(IOTTVCMI_LINKED_AS_SHARED_LIBRARY)
53 # define IOTTVCMI_API __declspec(dllimport)
58 #define ApiVersion "v1.0"
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
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
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,
168 TVCMI_ValueUnit_NoSIPercent
175 TVCMI_ValueType_NoType,
176 TVCMI_ValueType_Integer,
177 TVCMI_ValueType_Double,
178 TVCMI_ValueType_Bool,
179 TVCMI_ValueType_String
210 TVCMI_SensorType_None,
211 TVCMI_SensorType_Standard,
212 TVCMI_SensorType_Plugin
220 char* parameterValue;
232 char* pluginDownloadUrl;
234 int pluginParametersCount;
235 char* monitoringService;
255 char* valueAnnotation;
256 uint64_t lastUpdated;
594 const char* matchingId,
623 const char* matchingId,
626 const char* valueAnnotation);
649 const char* metricId,
651 const char* valueAnnotation);
862 const char* sensorId,
864 const char* errMessage);
885 const char* sensorId,
886 const char* metricId,
888 const char* errMessage);
915 void (*TVCMI_OnProvisionClient)(
917 void* callbackParameter,
937 void (*TVCMI_OnConnect)(
939 void* callbackParameter,
959 void (*TVCMI_OnDisconnect)(
961 void* callbackParameter,
984 void (*TVCMI_OnCreateSensor)(
986 void* callbackParameter,
987 const char* sensorName,
988 const char* sensorId,
1010 void (*TVCMI_OnUpdateSensor)(
1012 void* callbackParameter,
1013 const char* sensorId,
1035 void (*TVCMI_OnDeleteSensor)(
1037 void* callbackParameter,
1038 const char* sensorId,
1063 void (*TVCMI_OnCreateMetrics)(
1065 void* callbackParameter,
1087 void (*TVCMI_OnUpdateMetrics)(
1089 void* callbackParameter,
1090 const char* sensorId,
1121 void (*TVCMI_OnDeleteMetrics)(
1123 void* callbackParameter,
1124 const char* sensorId,
1146 void (*TVCMI_OnPushMetricValues)(
1148 void* callbackParameter,
1149 const char* sensorId,
1173 void (*TVCMI_OnListSensors)(
1176 void* callbackParameter,
1209 void (*TVCMI_OnDescribeMetric)(
1211 const char* sensorId,
1213 void* callbackParameter,
1242 void (*TVCMI_OnLog)(
1244 const char* logMessage,
1245 void* callbackParameter));
1288 void (*TVCMI_OnCheckConnection)(
1290 void* callbackParameter,
1312 void (*TVCMI_OnCreateSensorJob)(
1315 void* callbackParameter));
1342 void (*TVCMI_OnDeleteSensorJob)(
1344 const char* sensorId,
1345 void* callbackParameter));
1373 void (*TVCMI_OnDeprovisionClient)(
1375 void* callbackParameter));
1380 #endif //__cplusplus
1382 #endif //__TVCMI_CLIENT_H__
struct TVCMI_MetricMetadataTag TVCMI_MetricMetadata
Metric information.
struct TVCMI_CreatedMetricTag TVCMI_CreatedMetric
Created metric information. Used in TVCMI_CreatedMetrics.
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.
IOTTVCMI_API TVCMI_Error TVCMI_DeprovisionClient(TVCMI_Client *client)
Delete the access to this client.
IOTTVCMI_API TVCMI_Error TVCMI_ReportClientError(TVCMI_Client *client, int error, const char *errMessage)
Send error message about a client.
IOTTVCMI_API TVCMI_Error TVCMI_UpdateMetrics(TVCMI_Client *client, const char *sensorId, TVCMI_MetricSchemaContainer *container)
Update metrics.
IOTTVCMI_API TVCMI_Client * TVCMI_NewClient(const char *confFile, void *callbackParameter, TVCMI_Error *err)
Create a client object.
Created metrics information.
Definition: tvcmi_client.h:192
TVCMI_ValueUnitTag
Metric value units.
Definition: tvcmi_client.h:144
TVCMI_SensorTypeTag
Sensor types.
Definition: tvcmi_client.h:208
struct TVCMI_SensorsInfoTag TVCMI_SensorsInfo
Sensors information.
struct TVCMI_MetricValueContainerTag TVCMI_MetricValueContainer
A container for sending metric values.
Definition: tvcmi_client.h:266
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.
Plugin parameters information. Used in TVCMI_SensorMetadata.
Definition: tvcmi_client.h:217
IOTTVCMI_API TVCMI_Error TVCMI_ProvisionClient(TVCMI_Client *client)
Provision the client.
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
Metric value types.
Definition: tvcmi_client.h:173
IOTTVCMI_API TVCMI_Error TVCMI_CreateSensor(TVCMI_Client *client, const char *name)
Create sensor by name.
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.
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.
IOTTVCMI_API TVCMI_Error TVCMI_DeleteMetrics(TVCMI_Client *client, const char *sensorId, char **metricIds, int metricsCount)
Delete metrics.
enum TVCMI_ValueTypeTag TVCMI_ValueType
Metric value types.
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
Gateway errors.
Definition: tvcmi_client.h:62
struct TVCMI_MetricInfoTag TVCMI_MetricInfo
Metric information. Used in TVCMI_SensorInfo.
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.
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.
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.
struct TVCMI_SensorMetadataTag TVCMI_SensorMetadata
Sensor information. Used in TVCMI_SensorsInfo.
IOTTVCMI_API TVCMI_Error TVCMI_AddDoubleMetricValue(TVCMI_MetricValueContainer *container, double value, const char *metricId)
Add a value of type double to the container object.
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.
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.
IOTTVCMI_API TVCMI_Error TVCMI_DeleteSensor(TVCMI_Client *client, const char *sensorId)
Delete sensor.
enum TVCMI_ErrorTag TVCMI_Error
Error values.
const IOTTVCMI_API char * TVCMI_GetClientId(TVCMI_Client *client)
Return the client id.
enum TVCMI_SensorTypeTag TVCMI_SensorType
Sensor types.
struct TVCMI_PluginParameterTag TVCMI_PluginParameter
Plugin parameters information. Used in TVCMI_SensorMetadata.
IOTTVCMI_API TVCMI_MetricSchemaContainer * TVCMI_CreateMetricSchemaContainer()
Create a TVCMI_MetricSchemaContainer object and returns it's pointer.
IOTTVCMI_API TVCMI_Error TVCMI_UpdateSensor(TVCMI_Client *client, const char *sensorId, const char *sensorName)
Update sensor meta data.
IOTTVCMI_API TVCMI_Error TVCMI_AddEpochTimeStamp(TVCMI_MetricValueContainer *container, uint64_t epochTimestamp)
Add a timestamp to the container object.
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.
IOTTVCMI_API TVCMI_Error TVCMI_CheckConnection(TVCMI_Client *client)
Check if the connection with TeamViewer IoT Agent is alive.
struct TVCMI_ClientTag TVCMI_Client
A client object.
Definition: tvcmi_client.h:269
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.
IOTTVCMI_API TVCMI_MetricValueContainer * TVCMI_CreateMetricValueContainer()
Create a TVCMI_MetricValueContainer object.
IOTTVCMI_API TVCMI_Error TVCMI_Disconnect(TVCMI_Client *client)
Disconnect from the TeamViewer IOT Agent.
Metric information. Used in TVCMI_SensorInfo.
Definition: tvcmi_client.h:201
IOTTVCMI_API TVCMI_Error TVCMI_DestroyMetricSchemaContainer(TVCMI_MetricSchemaContainer *container)
Destroy container object created by function TVCMI_CreateMetricSchemaContainer().
IOTTVCMI_API TVCMI_Error TVCMI_Connect(TVCMI_Client *client)
Connect to the TeamViewer IOT Agent.
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.
Sensors information.
Definition: tvcmi_client.h:242
void TVCMI_DestroySensorMetadata(TVCMI_SensorMetadata *sensorMetadata)
Destroy sensorMetadata returned by callback function TVCMI_OnCreateSensorJob().
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.
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.
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_ErrorTag
Error values.
Definition: tvcmi_client.h:97
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.
IOTTVCMI_API TVCMI_Error TVCMI_ReportSensorError(TVCMI_Client *client, const char *sensorId, int error, const char *errMessage)
Send error message about a sensor.
struct TVCMI_CreatedMetricsTag TVCMI_CreatedMetrics
Created metrics information.
IOTTVCMI_API void TVCMI_DestroyCreatedMetrics(TVCMI_CreatedMetrics *createdMetrics)
Destroy created metrics returned by callback function TVCMI_OnCraeteMetrics().
IOTTVCMI_API TVCMI_Error TVCMI_DescribeMetric(TVCMI_Client *client, const char *sensorId, const char *metricId)
Get information about certain metric.
IOTTVCMI_API TVCMI_Error TVCMI_ListSensors(TVCMI_Client *client)
Get information about sensors, including its metrics.
IOTTVCMI_API TVCMI_Error TVCMI_CreateMetrics(TVCMI_Client *client, const char *sensorId, TVCMI_MetricSchemaContainer *container)
Create metrics of a sensor.
struct TVCMI_MetricSchemaContainerTag TVCMI_MetricSchemaContainer
A container for creating metrics.
Definition: tvcmi_client.h:263
IOTTVCMI_API TVCMI_Error TVCMI_AddBoolMetricValue(TVCMI_MetricValueContainer *container, int value, const char *metricId)
Add a value of boolean type to the container object.
enum TVCMI_ApiErrorTag TVCMI_ApiError
Gateway errors.
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.
IOTTVCMI_API TVCMI_Error TVCMI_LibInit()
Initializes the library.
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.
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.
IOTTVCMI_API TVCMI_Error TVCMI_LibCleanup()
Call TVCMI_LibCleanup to free resources associated with the library.
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.
IOTTVCMI_API void TVCMI_DestroyMetricMetadata(TVCMI_MetricMetadata *metricMetadata)
Destroy metricMetadata returned by callback function TVCMI_OnGetMetric().
Created metric information. Used in TVCMI_CreatedMetrics.
Definition: tvcmi_client.h:184
IOTTVCMI_API void TVCMI_DestroySensorsInfo(TVCMI_SensorsInfo *sensorsInfo)
Destroy sensorsInfo returned by callback function TVCMI_OnListSensors().
IOTTVCMI_API TVCMI_Error TVCMI_DeleteClient(TVCMI_Client *client)
Use to free the memory associated with a TVCMI_Client instance.
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.
IOTTVCMI_API TVCMI_Error TVCMI_DestroyMetricValueContainer(TVCMI_MetricValueContainer *container)
Destroy container object created by function TVCMI_CreateMetricValueContainer().
enum TVCMI_ValueUnitTag TVCMI_ValueUnit
Metric value units.
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.