Library for Yodiwo's Plegma API

Committer:
mitsarionas
Date:
Mon Sep 28 08:53:12 2015 +0000
Revision:
8:710e7fa99666
Parent:
6:4596aaa1a824
fix: c linkage

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mitsarionas 0:384a04dc912e 1 /**
mitsarionas 4:073e23f6718c 2 * Created by ApiGenerator Tool (C) on 15/9/2015 4:32:53 μμ.
mitsarionas 0:384a04dc912e 3 */
mitsarionas 0:384a04dc912e 4
mitsarionas 0:384a04dc912e 5 #ifndef _Yodiwo_Plegma_H_
mitsarionas 0:384a04dc912e 6 #define _Yodiwo_Plegma_H_
mitsarionas 0:384a04dc912e 7
mitsarionas 2:855390040d43 8 #ifdef __cplusplus
mitsarionas 2:855390040d43 9 extern "C" {
mitsarionas 2:855390040d43 10 #endif
mitsarionas 0:384a04dc912e 11
mitsarionas 6:4596aaa1a824 12 #include <stdbool.h>
mitsarionas 6:4596aaa1a824 13 #include <stdint.h>
mitsarionas 2:855390040d43 14
mitsarionas 4:073e23f6718c 15 /* ========================================================================*/
mitsarionas 4:073e23f6718c 16 /* Enum */
mitsarionas 4:073e23f6718c 17 /* ========================================================================*/
mitsarionas 4:073e23f6718c 18 typedef enum
mitsarionas 4:073e23f6718c 19 {
mitsarionas 4:073e23f6718c 20 Yodiwo_ePortType_Undefined = 0,
mitsarionas 4:073e23f6718c 21 Yodiwo_ePortType_Integer = 1,
mitsarionas 4:073e23f6718c 22 Yodiwo_ePortType_Decimal = 2,
mitsarionas 4:073e23f6718c 23 Yodiwo_ePortType_DecimalHigh = 3,
mitsarionas 4:073e23f6718c 24 Yodiwo_ePortType_Boolean = 4,
mitsarionas 4:073e23f6718c 25 Yodiwo_ePortType_Color = 5,
mitsarionas 4:073e23f6718c 26 Yodiwo_ePortType_String = 6,
mitsarionas 4:073e23f6718c 27 } Yodiwo_Plegma_ePortType;
mitsarionas 0:384a04dc912e 28
mitsarionas 4:073e23f6718c 29 typedef enum
mitsarionas 4:073e23f6718c 30 {
mitsarionas 4:073e23f6718c 31 Yodiwo_ioPortDirection_Undefined = 0,
mitsarionas 4:073e23f6718c 32 Yodiwo_ioPortDirection_InputOutput = 1,
mitsarionas 4:073e23f6718c 33 Yodiwo_ioPortDirection_Output = 2,
mitsarionas 4:073e23f6718c 34 Yodiwo_ioPortDirection_Input = 3,
mitsarionas 4:073e23f6718c 35 } Yodiwo_Plegma_ioPortDirection;
mitsarionas 0:384a04dc912e 36
mitsarionas 4:073e23f6718c 37 typedef enum
mitsarionas 4:073e23f6718c 38 {
mitsarionas 4:073e23f6718c 39 Yodiwo_ePortConf_None = 0,
mitsarionas 4:073e23f6718c 40 Yodiwo_ePortConf_ReceiveAllEvents = 1,
mitsarionas 4:073e23f6718c 41 Yodiwo_ePortConf_IsTrigger = 2,
mitsarionas 4:073e23f6718c 42 } Yodiwo_Plegma_ePortConf;
mitsarionas 0:384a04dc912e 43
mitsarionas 4:073e23f6718c 44 typedef enum
mitsarionas 4:073e23f6718c 45 {
mitsarionas 4:073e23f6718c 46 Yodiwo_eNodeType_Unknown = 0,
mitsarionas 4:073e23f6718c 47 Yodiwo_eNodeType_Gateway = 1,
mitsarionas 4:073e23f6718c 48 Yodiwo_eNodeType_EndpointSingle = 2,
mitsarionas 4:073e23f6718c 49 Yodiwo_eNodeType_TestGateway = 3,
mitsarionas 4:073e23f6718c 50 Yodiwo_eNodeType_TestEndpoint = 4,
mitsarionas 4:073e23f6718c 51 Yodiwo_eNodeType_WSEndpoint = 5,
mitsarionas 4:073e23f6718c 52 } Yodiwo_Plegma_eNodeType;
mitsarionas 0:384a04dc912e 53
mitsarionas 4:073e23f6718c 54 typedef enum
mitsarionas 4:073e23f6718c 55 {
mitsarionas 4:073e23f6718c 56 Yodiwo_eNodeCapa_None = 0,
mitsarionas 4:073e23f6718c 57 Yodiwo_eNodeCapa_SupportsGraphSplitting = 1,
mitsarionas 4:073e23f6718c 58 } Yodiwo_Plegma_eNodeCapa;
mitsarionas 0:384a04dc912e 59
mitsarionas 4:073e23f6718c 60 typedef enum
mitsarionas 4:073e23f6718c 61 {
mitsarionas 4:073e23f6718c 62 Yodiwo_eThingsOperation_Invalid = 0,
mitsarionas 4:073e23f6718c 63 Yodiwo_eThingsOperation_Update = 1,
mitsarionas 4:073e23f6718c 64 Yodiwo_eThingsOperation_Overwrite = 2,
mitsarionas 4:073e23f6718c 65 Yodiwo_eThingsOperation_Delete = 3,
mitsarionas 4:073e23f6718c 66 Yodiwo_eThingsOperation_Get = 4,
mitsarionas 4:073e23f6718c 67 Yodiwo_eThingsOperation_Scan = 5,
mitsarionas 4:073e23f6718c 68 } Yodiwo_Plegma_eThingsOperation;
mitsarionas 0:384a04dc912e 69
mitsarionas 4:073e23f6718c 70 typedef enum
mitsarionas 4:073e23f6718c 71 {
mitsarionas 4:073e23f6718c 72 Yodiwo_ePortStateOperation_Invalid = 0,
mitsarionas 4:073e23f6718c 73 Yodiwo_ePortStateOperation_SpecificKeys = 1,
mitsarionas 4:073e23f6718c 74 Yodiwo_ePortStateOperation_ActivePortStates = 2,
mitsarionas 4:073e23f6718c 75 Yodiwo_ePortStateOperation_AllPortStates = 3,
mitsarionas 4:073e23f6718c 76 } Yodiwo_Plegma_ePortStateOperation;
mitsarionas 0:384a04dc912e 77
mitsarionas 4:073e23f6718c 78 typedef enum
mitsarionas 4:073e23f6718c 79 {
mitsarionas 4:073e23f6718c 80 Yodiwo_PairingStates_Initial = 0,
mitsarionas 4:073e23f6718c 81 Yodiwo_PairingStates_StartRequested = 1,
mitsarionas 4:073e23f6718c 82 Yodiwo_PairingStates_TokensRequested = 2,
mitsarionas 4:073e23f6718c 83 Yodiwo_PairingStates_TokensSentToNode = 3,
mitsarionas 4:073e23f6718c 84 Yodiwo_PairingStates_Token2SentToUser = 4,
mitsarionas 4:073e23f6718c 85 Yodiwo_PairingStates_Token2PostedToServer = 5,
mitsarionas 4:073e23f6718c 86 Yodiwo_PairingStates_UUIDEntryRedirect = 6,
mitsarionas 4:073e23f6718c 87 Yodiwo_PairingStates_Phase1Complete = 7,
mitsarionas 4:073e23f6718c 88 Yodiwo_PairingStates_NextRequested = 8,
mitsarionas 4:073e23f6718c 89 Yodiwo_PairingStates_Token1PostedToServer = 9,
mitsarionas 4:073e23f6718c 90 Yodiwo_PairingStates_KeysSentToNode = 10,
mitsarionas 4:073e23f6718c 91 Yodiwo_PairingStates_Paired = 11,
mitsarionas 4:073e23f6718c 92 Yodiwo_PairingStates_Failed = 12,
mitsarionas 4:073e23f6718c 93 } Yodiwo_Plegma_PairingStates;
mitsarionas 0:384a04dc912e 94
mitsarionas 0:384a04dc912e 95
mitsarionas 0:384a04dc912e 96
mitsarionas 4:073e23f6718c 97 /* ========================================================================*/
mitsarionas 4:073e23f6718c 98 /* Struct Prototypes */
mitsarionas 4:073e23f6718c 99 /* ========================================================================*/
mitsarionas 4:073e23f6718c 100 struct Yodiwo_Plegma_UserKey;
mitsarionas 4:073e23f6718c 101 struct Yodiwo_Plegma_NodeKey;
mitsarionas 4:073e23f6718c 102 struct Yodiwo_Plegma_ThingKey;
mitsarionas 4:073e23f6718c 103 struct Yodiwo_Plegma_PortKey;
mitsarionas 4:073e23f6718c 104 struct Yodiwo_Plegma_GraphDescriptorBaseKey;
mitsarionas 4:073e23f6718c 105 struct Yodiwo_Plegma_GraphDescriptorKey;
mitsarionas 4:073e23f6718c 106 struct Yodiwo_Plegma_GraphKey;
mitsarionas 4:073e23f6718c 107 struct Yodiwo_Plegma_BlockKey;
mitsarionas 4:073e23f6718c 108 struct Yodiwo_Plegma_TimelineDescriptorKey;
mitsarionas 4:073e23f6718c 109 struct Yodiwo_Plegma_Mqtt_MqttAPIMessage;
mitsarionas 4:073e23f6718c 110 struct Yodiwo_Plegma_Port;
mitsarionas 4:073e23f6718c 111 struct Yodiwo_Plegma_ConfigParameter;
mitsarionas 4:073e23f6718c 112 struct Yodiwo_Plegma_ThingUIHints;
mitsarionas 4:073e23f6718c 113 struct Yodiwo_Plegma_Thing;
mitsarionas 4:073e23f6718c 114 struct Yodiwo_Plegma_LoginReq;
mitsarionas 4:073e23f6718c 115 struct Yodiwo_Plegma_LoginRsp;
mitsarionas 4:073e23f6718c 116 struct Yodiwo_Plegma_StateDescription;
mitsarionas 4:073e23f6718c 117 struct Yodiwo_Plegma_ConfigDescription;
mitsarionas 4:073e23f6718c 118 struct Yodiwo_Plegma_PortDescription;
mitsarionas 4:073e23f6718c 119 struct Yodiwo_Plegma_NodeModelType;
mitsarionas 4:073e23f6718c 120 struct Yodiwo_Plegma_NodeThingType;
mitsarionas 4:073e23f6718c 121 struct Yodiwo_Plegma_NodeInfoReq;
mitsarionas 4:073e23f6718c 122 struct Yodiwo_Plegma_NodeInfoRsp;
mitsarionas 4:073e23f6718c 123 struct Yodiwo_Plegma_ThingsReq;
mitsarionas 4:073e23f6718c 124 struct Yodiwo_Plegma_ThingsRsp;
mitsarionas 4:073e23f6718c 125 struct Yodiwo_Plegma_PortEvent;
mitsarionas 4:073e23f6718c 126 struct Yodiwo_Plegma_PortEventMsg;
mitsarionas 4:073e23f6718c 127 struct Yodiwo_Plegma_PortStateReq;
mitsarionas 4:073e23f6718c 128 struct Yodiwo_Plegma_PortState;
mitsarionas 4:073e23f6718c 129 struct Yodiwo_Plegma_PortStateRsp;
mitsarionas 4:073e23f6718c 130 struct Yodiwo_Plegma_ActivePortKeysMsg;
mitsarionas 4:073e23f6718c 131 struct Yodiwo_Plegma_NodePairing_PairingNodeGetTokensRequest;
mitsarionas 4:073e23f6718c 132 struct Yodiwo_Plegma_NodePairing_PairingNodeGetKeysRequest;
mitsarionas 4:073e23f6718c 133 struct Yodiwo_Plegma_NodePairing_PairingServerTokensResponse;
mitsarionas 4:073e23f6718c 134 struct Yodiwo_Plegma_NodePairing_PairingServerKeysResponse;
mitsarionas 4:073e23f6718c 135 struct Yodiwo_Plegma_NodePairing_PairingNodePhase1Response;
mitsarionas 4:073e23f6718c 136 struct Yodiwo_Tools_APIGenerator_CNodeConfig;
mitsarionas 4:073e23f6718c 137 struct Yodiwo_Tools_APIGenerator_CNodeYConfig;
mitsarionas 0:384a04dc912e 138
mitsarionas 4:073e23f6718c 139 /* Array helper structs */
mitsarionas 4:073e23f6718c 140 struct Array_Yodiwo_Plegma_ConfigParameter;
mitsarionas 4:073e23f6718c 141 struct Array_Yodiwo_Plegma_Port;
mitsarionas 4:073e23f6718c 142 struct Array_Yodiwo_Plegma_ConfigDescription;
mitsarionas 4:073e23f6718c 143 struct Array_Yodiwo_Plegma_PortDescription;
mitsarionas 4:073e23f6718c 144 struct Array_Yodiwo_Plegma_NodeModelType;
mitsarionas 4:073e23f6718c 145 struct Array_Yodiwo_Plegma_NodeThingType;
mitsarionas 4:073e23f6718c 146 struct Array_Yodiwo_Plegma_Thing;
mitsarionas 4:073e23f6718c 147 struct Array_Yodiwo_Plegma_PortEvent;
mitsarionas 4:073e23f6718c 148 struct Array_string;
mitsarionas 4:073e23f6718c 149 struct Array_Yodiwo_Plegma_PortState;
mitsarionas 4:073e23f6718c 150 struct Array_Yodiwo_Tools_APIGenerator_CNodeConfig;
mitsarionas 0:384a04dc912e 151
mitsarionas 4:073e23f6718c 152 /* ========================================================================*/
mitsarionas 4:073e23f6718c 153 /* Struct Helpers */
mitsarionas 4:073e23f6718c 154 /* ========================================================================*/
mitsarionas 0:384a04dc912e 155
mitsarionas 4:073e23f6718c 156 typedef struct Array_Yodiwo_Plegma_ConfigParameter
mitsarionas 4:073e23f6718c 157 {
mitsarionas 4:073e23f6718c 158 int num;
mitsarionas 4:073e23f6718c 159 struct Yodiwo_Plegma_ConfigParameter* elems;
mitsarionas 4:073e23f6718c 160 } Array_Yodiwo_Plegma_ConfigParameter_t;
mitsarionas 0:384a04dc912e 161
mitsarionas 4:073e23f6718c 162 typedef struct Array_Yodiwo_Plegma_Port
mitsarionas 4:073e23f6718c 163 {
mitsarionas 4:073e23f6718c 164 int num;
mitsarionas 4:073e23f6718c 165 struct Yodiwo_Plegma_Port* elems;
mitsarionas 4:073e23f6718c 166 } Array_Yodiwo_Plegma_Port_t;
mitsarionas 0:384a04dc912e 167
mitsarionas 4:073e23f6718c 168 typedef struct Array_Yodiwo_Plegma_ConfigDescription
mitsarionas 4:073e23f6718c 169 {
mitsarionas 4:073e23f6718c 170 int num;
mitsarionas 4:073e23f6718c 171 struct Yodiwo_Plegma_ConfigDescription* elems;
mitsarionas 4:073e23f6718c 172 } Array_Yodiwo_Plegma_ConfigDescription_t;
mitsarionas 0:384a04dc912e 173
mitsarionas 4:073e23f6718c 174 typedef struct Array_Yodiwo_Plegma_PortDescription
mitsarionas 4:073e23f6718c 175 {
mitsarionas 4:073e23f6718c 176 int num;
mitsarionas 4:073e23f6718c 177 struct Yodiwo_Plegma_PortDescription* elems;
mitsarionas 4:073e23f6718c 178 } Array_Yodiwo_Plegma_PortDescription_t;
mitsarionas 0:384a04dc912e 179
mitsarionas 4:073e23f6718c 180 typedef struct Array_Yodiwo_Plegma_NodeModelType
mitsarionas 4:073e23f6718c 181 {
mitsarionas 4:073e23f6718c 182 int num;
mitsarionas 4:073e23f6718c 183 struct Yodiwo_Plegma_NodeModelType* elems;
mitsarionas 4:073e23f6718c 184 } Array_Yodiwo_Plegma_NodeModelType_t;
mitsarionas 0:384a04dc912e 185
mitsarionas 4:073e23f6718c 186 typedef struct Array_Yodiwo_Plegma_NodeThingType
mitsarionas 4:073e23f6718c 187 {
mitsarionas 4:073e23f6718c 188 int num;
mitsarionas 4:073e23f6718c 189 struct Yodiwo_Plegma_NodeThingType* elems;
mitsarionas 4:073e23f6718c 190 } Array_Yodiwo_Plegma_NodeThingType_t;
mitsarionas 0:384a04dc912e 191
mitsarionas 4:073e23f6718c 192 typedef struct Array_Yodiwo_Plegma_Thing
mitsarionas 4:073e23f6718c 193 {
mitsarionas 4:073e23f6718c 194 int num;
mitsarionas 4:073e23f6718c 195 struct Yodiwo_Plegma_Thing* elems;
mitsarionas 4:073e23f6718c 196 } Array_Yodiwo_Plegma_Thing_t;
mitsarionas 4:073e23f6718c 197
mitsarionas 4:073e23f6718c 198 typedef struct Array_Yodiwo_Plegma_PortEvent
mitsarionas 4:073e23f6718c 199 {
mitsarionas 4:073e23f6718c 200 int num;
mitsarionas 4:073e23f6718c 201 struct Yodiwo_Plegma_PortEvent* elems;
mitsarionas 4:073e23f6718c 202 } Array_Yodiwo_Plegma_PortEvent_t;
mitsarionas 0:384a04dc912e 203
mitsarionas 4:073e23f6718c 204 typedef struct Array_string
mitsarionas 4:073e23f6718c 205 {
mitsarionas 4:073e23f6718c 206 int num;
mitsarionas 4:073e23f6718c 207 char** elems;
mitsarionas 4:073e23f6718c 208 } Array_string;
mitsarionas 0:384a04dc912e 209
mitsarionas 4:073e23f6718c 210 typedef struct Array_Yodiwo_Plegma_PortState
mitsarionas 4:073e23f6718c 211 {
mitsarionas 4:073e23f6718c 212 int num;
mitsarionas 4:073e23f6718c 213 struct Yodiwo_Plegma_PortState* elems;
mitsarionas 4:073e23f6718c 214 } Array_Yodiwo_Plegma_PortState_t;
mitsarionas 0:384a04dc912e 215
mitsarionas 4:073e23f6718c 216 typedef struct Array_Yodiwo_Tools_APIGenerator_CNodeConfig
mitsarionas 4:073e23f6718c 217 {
mitsarionas 4:073e23f6718c 218 int num;
mitsarionas 4:073e23f6718c 219 struct Yodiwo_Tools_APIGenerator_CNodeConfig* elems;
mitsarionas 4:073e23f6718c 220 } Array_Yodiwo_Tools_APIGenerator_CNodeConfig_t;
mitsarionas 0:384a04dc912e 221
mitsarionas 0:384a04dc912e 222
mitsarionas 4:073e23f6718c 223 /* ========================================================================*/
mitsarionas 4:073e23f6718c 224 /* Struct Definitions */
mitsarionas 4:073e23f6718c 225 /* ========================================================================*/
mitsarionas 4:073e23f6718c 226 ///<summary>Globally unique identifier of a </summary>
mitsarionas 4:073e23f6718c 227 typedef struct Yodiwo_Plegma_UserKey
mitsarionas 4:073e23f6718c 228 {
mitsarionas 4:073e23f6718c 229 char* UserID;
mitsarionas 4:073e23f6718c 230 } Yodiwo_Plegma_UserKey_t;
mitsarionas 0:384a04dc912e 231
mitsarionas 4:073e23f6718c 232 ///<summary>Globally unique identifier of a Node</summary>
mitsarionas 4:073e23f6718c 233 typedef struct Yodiwo_Plegma_NodeKey
mitsarionas 4:073e23f6718c 234 {
mitsarionas 4:073e23f6718c 235 Yodiwo_Plegma_UserKey_t UserKey;
mitsarionas 4:073e23f6718c 236 int32_t NodeID;
mitsarionas 4:073e23f6718c 237 } Yodiwo_Plegma_NodeKey_t;
mitsarionas 0:384a04dc912e 238
mitsarionas 4:073e23f6718c 239 ///<summary>Globally unique identifier of a Yodiwo.API.Plegma.Thing</summary>
mitsarionas 4:073e23f6718c 240 typedef struct Yodiwo_Plegma_ThingKey
mitsarionas 4:073e23f6718c 241 {
mitsarionas 4:073e23f6718c 242 Yodiwo_Plegma_NodeKey_t NodeKey;
mitsarionas 4:073e23f6718c 243 char* ThingUID;
mitsarionas 4:073e23f6718c 244 } Yodiwo_Plegma_ThingKey_t;
mitsarionas 0:384a04dc912e 245
mitsarionas 4:073e23f6718c 246 ///<summary>Globally unique identifier of a Yodiwo.API.Plegma.Thing's Yodiwo.API.Plegma.Port</summary>
mitsarionas 4:073e23f6718c 247 typedef struct Yodiwo_Plegma_PortKey
mitsarionas 4:073e23f6718c 248 {
mitsarionas 4:073e23f6718c 249 Yodiwo_Plegma_ThingKey_t ThingKey;
mitsarionas 4:073e23f6718c 250 char* PortUID;
mitsarionas 4:073e23f6718c 251 } Yodiwo_Plegma_PortKey_t;
mitsarionas 0:384a04dc912e 252
mitsarionas 4:073e23f6718c 253 typedef struct Yodiwo_Plegma_GraphDescriptorBaseKey
mitsarionas 4:073e23f6718c 254 {
mitsarionas 4:073e23f6718c 255 Yodiwo_Plegma_UserKey_t UserKey;
mitsarionas 4:073e23f6718c 256 char* Id;
mitsarionas 4:073e23f6718c 257 } Yodiwo_Plegma_GraphDescriptorBaseKey_t;
mitsarionas 0:384a04dc912e 258
mitsarionas 4:073e23f6718c 259 ///<summary>Globally unique identifier of a GraphDescriptor</summary>
mitsarionas 4:073e23f6718c 260 typedef struct Yodiwo_Plegma_GraphDescriptorKey
mitsarionas 4:073e23f6718c 261 {
mitsarionas 4:073e23f6718c 262 Yodiwo_Plegma_UserKey_t UserKey;
mitsarionas 4:073e23f6718c 263 char* Id;
mitsarionas 4:073e23f6718c 264 int32_t Revision;
mitsarionas 4:073e23f6718c 265 } Yodiwo_Plegma_GraphDescriptorKey_t;
mitsarionas 0:384a04dc912e 266
mitsarionas 4:073e23f6718c 267 ///<summary>Globally unique identifier of a Graph</summary>
mitsarionas 4:073e23f6718c 268 typedef struct Yodiwo_Plegma_GraphKey
mitsarionas 4:073e23f6718c 269 {
mitsarionas 4:073e23f6718c 270 Yodiwo_Plegma_GraphDescriptorKey_t GraphDescriptorKey;
mitsarionas 4:073e23f6718c 271 int32_t GraphId;
mitsarionas 4:073e23f6718c 272 } Yodiwo_Plegma_GraphKey_t;
mitsarionas 0:384a04dc912e 273
mitsarionas 4:073e23f6718c 274 ///<summary>Globally unique identifier of a Graph's Block</summary>
mitsarionas 4:073e23f6718c 275 typedef struct Yodiwo_Plegma_BlockKey
mitsarionas 4:073e23f6718c 276 {
mitsarionas 4:073e23f6718c 277 Yodiwo_Plegma_GraphKey_t GraphKey;
mitsarionas 4:073e23f6718c 278 int32_t BlockId;
mitsarionas 4:073e23f6718c 279 } Yodiwo_Plegma_BlockKey_t;
mitsarionas 0:384a04dc912e 280
mitsarionas 4:073e23f6718c 281 ///<summary>Globally unique identifier of a TimelineDescriptor</summary>
mitsarionas 4:073e23f6718c 282 typedef struct Yodiwo_Plegma_TimelineDescriptorKey
mitsarionas 4:073e23f6718c 283 {
mitsarionas 4:073e23f6718c 284 Yodiwo_Plegma_UserKey_t UserKey;
mitsarionas 4:073e23f6718c 285 char* Id;
mitsarionas 4:073e23f6718c 286 } Yodiwo_Plegma_TimelineDescriptorKey_t;
mitsarionas 2:855390040d43 287
mitsarionas 4:073e23f6718c 288 ///<summary>Mqtt message encapsulation class.</summary>
mitsarionas 4:073e23f6718c 289 typedef struct Yodiwo_Plegma_Mqtt_MqttAPIMessage
mitsarionas 4:073e23f6718c 290 {
mitsarionas 4:073e23f6718c 291 int32_t ResponseToSeqNo;
mitsarionas 4:073e23f6718c 292 char* Payload;
mitsarionas 4:073e23f6718c 293 } Yodiwo_Plegma_Mqtt_MqttAPIMessage_t;
mitsarionas 2:855390040d43 294
mitsarionas 4:073e23f6718c 295 ///<summary>Basic Input/Output entity of a Thing Creates and sends messages towards the Yodiwo cloud service, or receives and handles messages from the cloud. Both events occur via the Yodiwo.API.Plegma.PortEventMsg message</summary>
mitsarionas 4:073e23f6718c 296 typedef struct Yodiwo_Plegma_Port
mitsarionas 4:073e23f6718c 297 {
mitsarionas 4:073e23f6718c 298 char* PortKey;
mitsarionas 4:073e23f6718c 299 char* Name;
mitsarionas 4:073e23f6718c 300 char* Description;
mitsarionas 4:073e23f6718c 301 Yodiwo_Plegma_ioPortDirection ioDirection;
mitsarionas 4:073e23f6718c 302 Yodiwo_Plegma_ePortType Type;
mitsarionas 4:073e23f6718c 303 char* State;
mitsarionas 4:073e23f6718c 304 int32_t RevNum;
mitsarionas 4:073e23f6718c 305 Yodiwo_Plegma_ePortConf ConfFlags;
mitsarionas 4:073e23f6718c 306 } Yodiwo_Plegma_Port_t;
mitsarionas 0:384a04dc912e 307
mitsarionas 4:073e23f6718c 308 ///<summary>Configuration parameters for the thing in generic name-value pairs</summary>
mitsarionas 4:073e23f6718c 309 typedef struct Yodiwo_Plegma_ConfigParameter
mitsarionas 4:073e23f6718c 310 {
mitsarionas 4:073e23f6718c 311 char* Name;
mitsarionas 4:073e23f6718c 312 char* Value;
mitsarionas 4:073e23f6718c 313 } Yodiwo_Plegma_ConfigParameter_t;
mitsarionas 0:384a04dc912e 314
mitsarionas 4:073e23f6718c 315 ///<summary>Collection of instructions ("hints") for how to present this thing in the Cyan UI</summary>
mitsarionas 4:073e23f6718c 316 typedef struct Yodiwo_Plegma_ThingUIHints
mitsarionas 4:073e23f6718c 317 {
mitsarionas 4:073e23f6718c 318 char* IconURI;
mitsarionas 4:073e23f6718c 319 char* Description;
mitsarionas 4:073e23f6718c 320 } Yodiwo_Plegma_ThingUIHints_t;
mitsarionas 0:384a04dc912e 321
mitsarionas 4:073e23f6718c 322 ///<summary>Main representation of a Thing that can interact with the Yodiwo cloud service</summary>
mitsarionas 4:073e23f6718c 323 typedef struct Yodiwo_Plegma_Thing
mitsarionas 4:073e23f6718c 324 {
mitsarionas 4:073e23f6718c 325 char* ThingKey;
mitsarionas 4:073e23f6718c 326 char* Name;
mitsarionas 4:073e23f6718c 327 Array_Yodiwo_Plegma_ConfigParameter_t Config;
mitsarionas 4:073e23f6718c 328 Array_Yodiwo_Plegma_Port_t Ports;
mitsarionas 4:073e23f6718c 329 char* Type;
mitsarionas 4:073e23f6718c 330 char* BlockType;
mitsarionas 4:073e23f6718c 331 Yodiwo_Plegma_ThingUIHints_t UIHints;
mitsarionas 4:073e23f6718c 332 } Yodiwo_Plegma_Thing_t;
mitsarionas 0:384a04dc912e 333
mitsarionas 4:073e23f6718c 334 ///<summary>Login Request to be used only for transports that require explicit authentication via the API itself</summary>
mitsarionas 4:073e23f6718c 335 typedef struct Yodiwo_Plegma_LoginReq
mitsarionas 4:073e23f6718c 336 {
mitsarionas 4:073e23f6718c 337 int32_t SeqNo;
mitsarionas 4:073e23f6718c 338 } Yodiwo_Plegma_LoginReq_t;
mitsarionas 0:384a04dc912e 339
mitsarionas 4:073e23f6718c 340 ///<summary>Login Response
mitsarionas 4:073e23f6718c 341 ///sends node and secret keys
mitsarionas 4:073e23f6718c 342 ///to be used only for transports that require explicit authentication via the API itself</summary>
mitsarionas 4:073e23f6718c 343 typedef struct Yodiwo_Plegma_LoginRsp
mitsarionas 4:073e23f6718c 344 {
mitsarionas 4:073e23f6718c 345 int32_t SeqNo;
mitsarionas 4:073e23f6718c 346 char* NodeKey;
mitsarionas 4:073e23f6718c 347 char* SecretKey;
mitsarionas 4:073e23f6718c 348 } Yodiwo_Plegma_LoginRsp_t;
mitsarionas 4:073e23f6718c 349
mitsarionas 4:073e23f6718c 350 typedef struct Yodiwo_Plegma_StateDescription
mitsarionas 4:073e23f6718c 351 {
mitsarionas 4:073e23f6718c 352 double Minimum;
mitsarionas 4:073e23f6718c 353 double Maximum;
mitsarionas 4:073e23f6718c 354 double Step;
mitsarionas 4:073e23f6718c 355 char* Pattern;
mitsarionas 4:073e23f6718c 356 bool ReadOnly;
mitsarionas 4:073e23f6718c 357 } Yodiwo_Plegma_StateDescription_t;
mitsarionas 0:384a04dc912e 358
mitsarionas 4:073e23f6718c 359 ///<summary>Describes restrictions and gives information of a configuration parameter.</summary>
mitsarionas 4:073e23f6718c 360 typedef struct Yodiwo_Plegma_ConfigDescription
mitsarionas 4:073e23f6718c 361 {
mitsarionas 4:073e23f6718c 362 char* DefaultValue;
mitsarionas 4:073e23f6718c 363 char* Description;
mitsarionas 4:073e23f6718c 364 char* Label;
mitsarionas 4:073e23f6718c 365 char* Name;
mitsarionas 4:073e23f6718c 366 bool Required;
mitsarionas 4:073e23f6718c 367 char* Type;
mitsarionas 4:073e23f6718c 368 double Minimum;
mitsarionas 4:073e23f6718c 369 double Maximum;
mitsarionas 4:073e23f6718c 370 double Stepsize;
mitsarionas 4:073e23f6718c 371 bool ReadOnly;
mitsarionas 4:073e23f6718c 372 } Yodiwo_Plegma_ConfigDescription_t;
mitsarionas 0:384a04dc912e 373
mitsarionas 4:073e23f6718c 374 ///<summary>Describes restrictions and gives information of a port Yodiwo.API.Plegma.Port.</summary>
mitsarionas 4:073e23f6718c 375 typedef struct Yodiwo_Plegma_PortDescription
mitsarionas 4:073e23f6718c 376 {
mitsarionas 4:073e23f6718c 377 char* Description;
mitsarionas 4:073e23f6718c 378 char* Id;
mitsarionas 4:073e23f6718c 379 char* Label;
mitsarionas 4:073e23f6718c 380 char* Category;
mitsarionas 4:073e23f6718c 381 Yodiwo_Plegma_StateDescription_t State;
mitsarionas 4:073e23f6718c 382 } Yodiwo_Plegma_PortDescription_t;
mitsarionas 0:384a04dc912e 383
mitsarionas 4:073e23f6718c 384 ///<summary>Base class that describes a Model of a Thing Yodiwo.API.Plegma.Thing</summary>
mitsarionas 4:073e23f6718c 385 typedef struct Yodiwo_Plegma_NodeModelType
mitsarionas 4:073e23f6718c 386 {
mitsarionas 4:073e23f6718c 387 char* Id;
mitsarionas 4:073e23f6718c 388 char* Name;
mitsarionas 4:073e23f6718c 389 char* Description;
mitsarionas 4:073e23f6718c 390 Array_Yodiwo_Plegma_ConfigDescription_t Config;
mitsarionas 4:073e23f6718c 391 Array_Yodiwo_Plegma_PortDescription_t Port;
mitsarionas 4:073e23f6718c 392 } Yodiwo_Plegma_NodeModelType_t;
mitsarionas 4:073e23f6718c 393
mitsarionas 4:073e23f6718c 394 ///<summary>Base class that describes a group of Thing Models Yodiwo.API.Plegma.NodeModelType</summary>
mitsarionas 4:073e23f6718c 395 typedef struct Yodiwo_Plegma_NodeThingType
mitsarionas 4:073e23f6718c 396 {
mitsarionas 4:073e23f6718c 397 char* Type;
mitsarionas 4:073e23f6718c 398 bool Searchable;
mitsarionas 4:073e23f6718c 399 char* Description;
mitsarionas 4:073e23f6718c 400 Array_Yodiwo_Plegma_NodeModelType_t Model;
mitsarionas 4:073e23f6718c 401 } Yodiwo_Plegma_NodeThingType_t;
mitsarionas 0:384a04dc912e 402
mitsarionas 4:073e23f6718c 403 ///<summary>Node Info Request If sent by cloud to a node, it is to request capabilities and supported types from the node If sent by a node to the cloud, then Yodiwo.API.Plegma.NodeInfoReq.RequestedThingType must be set and can be used to perform discovery with the user's connected nodes (currently unavailable)
mitsarionas 4:073e23f6718c 404 ///Direction: bidirectional (Node->Cloud and Cloud->Node)
mitsarionas 4:073e23f6718c 405 ///Receiving end must reply with a Yodiwo.API.Plegma.NodeInfoRsp
mitsarionas 4:073e23f6718c 406 ///</summary>
mitsarionas 4:073e23f6718c 407 typedef struct Yodiwo_Plegma_NodeInfoReq
mitsarionas 4:073e23f6718c 408 {
mitsarionas 4:073e23f6718c 409 int32_t SeqNo;
mitsarionas 4:073e23f6718c 410 Yodiwo_Plegma_NodeThingType_t RequestedThingType;
mitsarionas 4:073e23f6718c 411 } Yodiwo_Plegma_NodeInfoReq_t;
mitsarionas 0:384a04dc912e 412
mitsarionas 4:073e23f6718c 413 ///<summary>Node Info Response Message that contains gneral information about a node including supported Node Types and Capabilities
mitsarionas 4:073e23f6718c 414 ///Direction: bidirectional (Node->Cloud and Cloud->Node)
mitsarionas 4:073e23f6718c 415 ///In response to a Yodiwo.API.Plegma.NodeInfoReq</summary>
mitsarionas 4:073e23f6718c 416 typedef struct Yodiwo_Plegma_NodeInfoRsp
mitsarionas 4:073e23f6718c 417 {
mitsarionas 4:073e23f6718c 418 int32_t SeqNo;
mitsarionas 4:073e23f6718c 419 char* Name;
mitsarionas 4:073e23f6718c 420 Yodiwo_Plegma_eNodeType Type;
mitsarionas 4:073e23f6718c 421 Yodiwo_Plegma_eNodeCapa Capabilities;
mitsarionas 4:073e23f6718c 422 Array_Yodiwo_Plegma_NodeThingType_t ThingTypes;
mitsarionas 4:073e23f6718c 423 } Yodiwo_Plegma_NodeInfoRsp_t;
mitsarionas 0:384a04dc912e 424
mitsarionas 4:073e23f6718c 425 ///<summary>Node Things Request Used to request a Yodiwo.API.Plegma.Things related operation from the other end.
mitsarionas 4:073e23f6718c 426 ///Receiving side *must* reply with a Yodiwo.API.Plegma.ThingsRsp. Its ApiMsg.ResponseToSeqNo field *must* be set to this message's Yodiwo.API.Plegma.ApiMsg.SeqNo
mitsarionas 4:073e23f6718c 427 ///Direction: bidirectional (Node->Cloud and Cloud->Node)
mitsarionas 4:073e23f6718c 428 ///</summary>
mitsarionas 4:073e23f6718c 429 typedef struct Yodiwo_Plegma_ThingsReq
mitsarionas 4:073e23f6718c 430 {
mitsarionas 4:073e23f6718c 431 int32_t SeqNo;
mitsarionas 4:073e23f6718c 432 Yodiwo_Plegma_eThingsOperation Operation;
mitsarionas 4:073e23f6718c 433 char* ThingKey;
mitsarionas 4:073e23f6718c 434 Array_Yodiwo_Plegma_Thing_t Data;
mitsarionas 4:073e23f6718c 435 } Yodiwo_Plegma_ThingsReq_t;
mitsarionas 0:384a04dc912e 436
mitsarionas 4:073e23f6718c 437 ///<summary>Node Things Response Response to a Yodiwo.API.Plegma.ThingsReq request
mitsarionas 4:073e23f6718c 438 ///a ThingsRsp message should have: - Yodiwo.API.Plegma.ThingsRsp.Operation set to ThingReq's operation - ApiMsg.ResponseToSeqNo set to ThingReq's Yodiwo.API.Plegma.ApiMsg.SeqNo- Yodiwo.API.Plegma.ThingsRsp.Status set to True if ThingsReq was successfully handled and this Msg has valid data, False otherwise - if Yodiwo.API.Plegma.ThingsRsp.Status is True, Yodiwo.API.Plegma.ThingsRsp.Data set to correspond to requested Req's operation, set to Null otherwise. Yodiwo.API.Plegma.ThingsRsp.Data is allowed to be null if originally requested operation does not expect back data, only status
mitsarionas 4:073e23f6718c 439 ///Direction: bidirectional (Node->Cloud and Cloud->Node)
mitsarionas 4:073e23f6718c 440 ///</summary>
mitsarionas 4:073e23f6718c 441 typedef struct Yodiwo_Plegma_ThingsRsp
mitsarionas 4:073e23f6718c 442 {
mitsarionas 4:073e23f6718c 443 int32_t SeqNo;
mitsarionas 4:073e23f6718c 444 Yodiwo_Plegma_eThingsOperation Operation;
mitsarionas 4:073e23f6718c 445 bool Status;
mitsarionas 4:073e23f6718c 446 Array_Yodiwo_Plegma_Thing_t Data;
mitsarionas 4:073e23f6718c 447 } Yodiwo_Plegma_ThingsRsp_t;
mitsarionas 0:384a04dc912e 448
mitsarionas 4:073e23f6718c 449 ///<summary>Port Event class: used to describe a new event that should trigger en endpoint, either towards a node or the Cloud Services</summary>
mitsarionas 4:073e23f6718c 450 typedef struct Yodiwo_Plegma_PortEvent
mitsarionas 4:073e23f6718c 451 {
mitsarionas 4:073e23f6718c 452 char* PortKey;
mitsarionas 4:073e23f6718c 453 char* State;
mitsarionas 4:073e23f6718c 454 int32_t RevNum;
mitsarionas 4:073e23f6718c 455 } Yodiwo_Plegma_PortEvent_t;
mitsarionas 4:073e23f6718c 456
mitsarionas 4:073e23f6718c 457 ///<summary>asynchronous Port Event message The main API message to exchange events between Nodes and the Yodiwo Cloud Service
mitsarionas 4:073e23f6718c 458 ///Direction: bidirectional (Node->Cloud and Cloud->Node)
mitsarionas 4:073e23f6718c 459 ///</summary>
mitsarionas 4:073e23f6718c 460 typedef struct Yodiwo_Plegma_PortEventMsg
mitsarionas 4:073e23f6718c 461 {
mitsarionas 4:073e23f6718c 462 int32_t SeqNo;
mitsarionas 4:073e23f6718c 463 Array_Yodiwo_Plegma_PortEvent_t PortEvents;
mitsarionas 4:073e23f6718c 464 } Yodiwo_Plegma_PortEventMsg_t;
mitsarionas 0:384a04dc912e 465
mitsarionas 4:073e23f6718c 466 ///<summary>Port State Request. Will result in a response of type Yodiwo.API.Plegma.PortStateRsp
mitsarionas 4:073e23f6718c 467 ///Direction: node->cloud
mitsarionas 4:073e23f6718c 468 ///</summary>
mitsarionas 4:073e23f6718c 469 typedef struct Yodiwo_Plegma_PortStateReq
mitsarionas 4:073e23f6718c 470 {
mitsarionas 4:073e23f6718c 471 int32_t SeqNo;
mitsarionas 4:073e23f6718c 472 Yodiwo_Plegma_ePortStateOperation Operation;
mitsarionas 4:073e23f6718c 473 Array_string PortKeys;
mitsarionas 4:073e23f6718c 474 } Yodiwo_Plegma_PortStateReq_t;
mitsarionas 0:384a04dc912e 475
mitsarionas 4:073e23f6718c 476 ///<summary>internal state of a referenced Port</summary>
mitsarionas 4:073e23f6718c 477 typedef struct Yodiwo_Plegma_PortState
mitsarionas 4:073e23f6718c 478 {
mitsarionas 4:073e23f6718c 479 char* PortKey;
mitsarionas 4:073e23f6718c 480 char* State;
mitsarionas 4:073e23f6718c 481 int32_t RevNum;
mitsarionas 4:073e23f6718c 482 bool IsDeployed;
mitsarionas 4:073e23f6718c 483 } Yodiwo_Plegma_PortState_t;
mitsarionas 0:384a04dc912e 484
mitsarionas 4:073e23f6718c 485 ///<summary>Active Port Keys Msg Informs Node of all currently active Ports (i.e. Ports that are connected and active in currently deployed graphs). Should be used to 1. supress events from inactive ports, allowing more efficient use of medium, 2. sync Port states with the server
mitsarionas 4:073e23f6718c 486 ///Can be either asynchronous (e.g. at Node connection) or as a response to a PortUpdateReq
mitsarionas 4:073e23f6718c 487 ///Direction: Cloud -> Node
mitsarionas 4:073e23f6718c 488 ///</summary>
mitsarionas 4:073e23f6718c 489 typedef struct Yodiwo_Plegma_PortStateRsp
mitsarionas 4:073e23f6718c 490 {
mitsarionas 4:073e23f6718c 491 int32_t SeqNo;
mitsarionas 4:073e23f6718c 492 Yodiwo_Plegma_ePortStateOperation Operation;
mitsarionas 4:073e23f6718c 493 Array_Yodiwo_Plegma_PortState_t PortStates;
mitsarionas 4:073e23f6718c 494 } Yodiwo_Plegma_PortStateRsp_t;
mitsarionas 0:384a04dc912e 495
mitsarionas 4:073e23f6718c 496 ///<summary>Active Port Keys Msg Informs Node of all currently active Ports (i.e. Ports that are connected and active in currently deployed graphs). Should be used by Nodes to supress events from inactive ports, allowing more efficient use of medium
mitsarionas 4:073e23f6718c 497 ///Direction: Cloud -> Node
mitsarionas 4:073e23f6718c 498 ///</summary>
mitsarionas 4:073e23f6718c 499 typedef struct Yodiwo_Plegma_ActivePortKeysMsg
mitsarionas 4:073e23f6718c 500 {
mitsarionas 4:073e23f6718c 501 int32_t SeqNo;
mitsarionas 4:073e23f6718c 502 Array_string ActivePortKeys;
mitsarionas 4:073e23f6718c 503 } Yodiwo_Plegma_ActivePortKeysMsg_t;
mitsarionas 4:073e23f6718c 504
mitsarionas 4:073e23f6718c 505 typedef struct Yodiwo_Plegma_NodePairing_PairingNodeGetTokensRequest
mitsarionas 4:073e23f6718c 506 {
mitsarionas 4:073e23f6718c 507 char* uuid;
mitsarionas 4:073e23f6718c 508 char* name;
mitsarionas 4:073e23f6718c 509 } Yodiwo_Plegma_NodePairing_PairingNodeGetTokensRequest_t;
mitsarionas 0:384a04dc912e 510
mitsarionas 4:073e23f6718c 511 typedef struct Yodiwo_Plegma_NodePairing_PairingNodeGetKeysRequest
mitsarionas 4:073e23f6718c 512 {
mitsarionas 4:073e23f6718c 513 char* uuid;
mitsarionas 4:073e23f6718c 514 char* token1;
mitsarionas 4:073e23f6718c 515 } Yodiwo_Plegma_NodePairing_PairingNodeGetKeysRequest_t;
mitsarionas 0:384a04dc912e 516
mitsarionas 4:073e23f6718c 517 typedef struct Yodiwo_Plegma_NodePairing_PairingServerTokensResponse
mitsarionas 4:073e23f6718c 518 {
mitsarionas 4:073e23f6718c 519 char* token1;
mitsarionas 4:073e23f6718c 520 char* token2;
mitsarionas 4:073e23f6718c 521 } Yodiwo_Plegma_NodePairing_PairingServerTokensResponse_t;
mitsarionas 4:073e23f6718c 522
mitsarionas 4:073e23f6718c 523 typedef struct Yodiwo_Plegma_NodePairing_PairingServerKeysResponse
mitsarionas 4:073e23f6718c 524 {
mitsarionas 4:073e23f6718c 525 char* nodeKey;
mitsarionas 4:073e23f6718c 526 char* secretKey;
mitsarionas 4:073e23f6718c 527 } Yodiwo_Plegma_NodePairing_PairingServerKeysResponse_t;
mitsarionas 0:384a04dc912e 528
mitsarionas 4:073e23f6718c 529 typedef struct Yodiwo_Plegma_NodePairing_PairingNodePhase1Response
mitsarionas 4:073e23f6718c 530 {
mitsarionas 4:073e23f6718c 531 char* userNodeRegistrationUrl;
mitsarionas 4:073e23f6718c 532 char* token2;
mitsarionas 4:073e23f6718c 533 } Yodiwo_Plegma_NodePairing_PairingNodePhase1Response_t;
mitsarionas 0:384a04dc912e 534
mitsarionas 4:073e23f6718c 535 typedef struct Yodiwo_Tools_APIGenerator_CNodeConfig
mitsarionas 4:073e23f6718c 536 {
mitsarionas 4:073e23f6718c 537 char* Uuid;
mitsarionas 4:073e23f6718c 538 char* Name;
mitsarionas 4:073e23f6718c 539 char* NodeKey;
mitsarionas 4:073e23f6718c 540 char* NodeSecret;
mitsarionas 4:073e23f6718c 541 char* PairingServerUrl;
mitsarionas 4:073e23f6718c 542 char* YPChannelServer;
mitsarionas 4:073e23f6718c 543 int32_t YPChannelServerPort;
mitsarionas 4:073e23f6718c 544 int32_t WebPort;
mitsarionas 4:073e23f6718c 545 char* MqttBrokerHostname;
mitsarionas 4:073e23f6718c 546 int32_t MqttBrokerPort;
mitsarionas 4:073e23f6718c 547 char* MqttBrokerCertFile;
mitsarionas 4:073e23f6718c 548 } Yodiwo_Tools_APIGenerator_CNodeConfig_t;
mitsarionas 0:384a04dc912e 549
mitsarionas 4:073e23f6718c 550 typedef struct Yodiwo_Tools_APIGenerator_CNodeYConfig
mitsarionas 4:073e23f6718c 551 {
mitsarionas 4:073e23f6718c 552 int32_t ActiveID;
mitsarionas 4:073e23f6718c 553 Array_Yodiwo_Tools_APIGenerator_CNodeConfig_t Configs;
mitsarionas 4:073e23f6718c 554 } Yodiwo_Tools_APIGenerator_CNodeYConfig_t;
mitsarionas 0:384a04dc912e 555
mitsarionas 0:384a04dc912e 556
mitsarionas 0:384a04dc912e 557
mitsarionas 4:073e23f6718c 558 /* ========================================================================*/
mitsarionas 4:073e23f6718c 559 /* ToJson Functions Prototypes */
mitsarionas 4:073e23f6718c 560 /* ========================================================================*/
mitsarionas 0:384a04dc912e 561
mitsarionas 4:073e23f6718c 562 int Yodiwo_Plegma_UserKey_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_UserKey_t *value);
mitsarionas 4:073e23f6718c 563 int Yodiwo_Plegma_NodeKey_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodeKey_t *value);
mitsarionas 4:073e23f6718c 564 int Yodiwo_Plegma_ThingKey_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_ThingKey_t *value);
mitsarionas 4:073e23f6718c 565 int Yodiwo_Plegma_PortKey_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_PortKey_t *value);
mitsarionas 4:073e23f6718c 566 int Yodiwo_Plegma_GraphDescriptorBaseKey_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_GraphDescriptorBaseKey_t *value);
mitsarionas 4:073e23f6718c 567 int Yodiwo_Plegma_GraphDescriptorKey_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_GraphDescriptorKey_t *value);
mitsarionas 4:073e23f6718c 568 int Yodiwo_Plegma_GraphKey_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_GraphKey_t *value);
mitsarionas 4:073e23f6718c 569 int Yodiwo_Plegma_BlockKey_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_BlockKey_t *value);
mitsarionas 4:073e23f6718c 570 int Yodiwo_Plegma_TimelineDescriptorKey_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_TimelineDescriptorKey_t *value);
mitsarionas 4:073e23f6718c 571 int Yodiwo_Plegma_Mqtt_MqttAPIMessage_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_Mqtt_MqttAPIMessage_t *value);
mitsarionas 4:073e23f6718c 572 int Yodiwo_Plegma_Port_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_Port_t *value);
mitsarionas 4:073e23f6718c 573 int Yodiwo_Plegma_ConfigParameter_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_ConfigParameter_t *value);
mitsarionas 4:073e23f6718c 574 int Yodiwo_Plegma_ThingUIHints_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_ThingUIHints_t *value);
mitsarionas 4:073e23f6718c 575 int Yodiwo_Plegma_Thing_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_Thing_t *value);
mitsarionas 4:073e23f6718c 576 int Yodiwo_Plegma_LoginReq_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_LoginReq_t *value);
mitsarionas 4:073e23f6718c 577 int Yodiwo_Plegma_LoginRsp_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_LoginRsp_t *value);
mitsarionas 4:073e23f6718c 578 int Yodiwo_Plegma_StateDescription_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_StateDescription_t *value);
mitsarionas 4:073e23f6718c 579 int Yodiwo_Plegma_ConfigDescription_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_ConfigDescription_t *value);
mitsarionas 4:073e23f6718c 580 int Yodiwo_Plegma_PortDescription_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_PortDescription_t *value);
mitsarionas 4:073e23f6718c 581 int Yodiwo_Plegma_NodeModelType_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodeModelType_t *value);
mitsarionas 4:073e23f6718c 582 int Yodiwo_Plegma_NodeThingType_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodeThingType_t *value);
mitsarionas 4:073e23f6718c 583 int Yodiwo_Plegma_NodeInfoReq_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodeInfoReq_t *value);
mitsarionas 4:073e23f6718c 584 int Yodiwo_Plegma_NodeInfoRsp_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodeInfoRsp_t *value);
mitsarionas 4:073e23f6718c 585 int Yodiwo_Plegma_ThingsReq_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_ThingsReq_t *value);
mitsarionas 4:073e23f6718c 586 int Yodiwo_Plegma_ThingsRsp_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_ThingsRsp_t *value);
mitsarionas 4:073e23f6718c 587 int Yodiwo_Plegma_PortEvent_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_PortEvent_t *value);
mitsarionas 4:073e23f6718c 588 int Yodiwo_Plegma_PortEventMsg_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_PortEventMsg_t *value);
mitsarionas 4:073e23f6718c 589 int Yodiwo_Plegma_PortStateReq_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_PortStateReq_t *value);
mitsarionas 4:073e23f6718c 590 int Yodiwo_Plegma_PortState_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_PortState_t *value);
mitsarionas 4:073e23f6718c 591 int Yodiwo_Plegma_PortStateRsp_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_PortStateRsp_t *value);
mitsarionas 4:073e23f6718c 592 int Yodiwo_Plegma_ActivePortKeysMsg_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_ActivePortKeysMsg_t *value);
mitsarionas 4:073e23f6718c 593 int Yodiwo_Plegma_NodePairing_PairingNodeGetTokensRequest_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodePairing_PairingNodeGetTokensRequest_t *value);
mitsarionas 4:073e23f6718c 594 int Yodiwo_Plegma_NodePairing_PairingNodeGetKeysRequest_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodePairing_PairingNodeGetKeysRequest_t *value);
mitsarionas 4:073e23f6718c 595 int Yodiwo_Plegma_NodePairing_PairingServerTokensResponse_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodePairing_PairingServerTokensResponse_t *value);
mitsarionas 4:073e23f6718c 596 int Yodiwo_Plegma_NodePairing_PairingServerKeysResponse_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodePairing_PairingServerKeysResponse_t *value);
mitsarionas 4:073e23f6718c 597 int Yodiwo_Plegma_NodePairing_PairingNodePhase1Response_ToJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodePairing_PairingNodePhase1Response_t *value);
mitsarionas 4:073e23f6718c 598 int Yodiwo_Tools_APIGenerator_CNodeConfig_ToJson(char* json, size_t jsonSize, Yodiwo_Tools_APIGenerator_CNodeConfig_t *value);
mitsarionas 4:073e23f6718c 599 int Yodiwo_Tools_APIGenerator_CNodeYConfig_ToJson(char* json, size_t jsonSize, Yodiwo_Tools_APIGenerator_CNodeYConfig_t *value);
mitsarionas 0:384a04dc912e 600
mitsarionas 0:384a04dc912e 601
mitsarionas 4:073e23f6718c 602 /* ========================================================================*/
mitsarionas 4:073e23f6718c 603 /* FromJson Functions Prototypes */
mitsarionas 4:073e23f6718c 604 /* ========================================================================*/
mitsarionas 0:384a04dc912e 605
mitsarionas 0:384a04dc912e 606
mitsarionas 4:073e23f6718c 607 typedef enum {
mitsarionas 4:073e23f6718c 608 Yodiwo_JsonSuccessParse = 0,
mitsarionas 4:073e23f6718c 609 Yodiwo_JsonFailedToParse = -1,
mitsarionas 4:073e23f6718c 610 Yodiwo_JsonFailedObjectExpected = -2,
mitsarionas 4:073e23f6718c 611 } Yodiwo_Plegma_Json_e;
mitsarionas 0:384a04dc912e 612
mitsarionas 0:384a04dc912e 613
mitsarionas 0:384a04dc912e 614
mitsarionas 0:384a04dc912e 615
mitsarionas 4:073e23f6718c 616 Yodiwo_Plegma_Json_e Yodiwo_Plegma_UserKey_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_UserKey_t *value);
mitsarionas 4:073e23f6718c 617 Yodiwo_Plegma_Json_e Yodiwo_Plegma_NodeKey_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodeKey_t *value);
mitsarionas 4:073e23f6718c 618 Yodiwo_Plegma_Json_e Yodiwo_Plegma_ThingKey_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_ThingKey_t *value);
mitsarionas 4:073e23f6718c 619 Yodiwo_Plegma_Json_e Yodiwo_Plegma_PortKey_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_PortKey_t *value);
mitsarionas 4:073e23f6718c 620 Yodiwo_Plegma_Json_e Yodiwo_Plegma_GraphDescriptorBaseKey_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_GraphDescriptorBaseKey_t *value);
mitsarionas 4:073e23f6718c 621 Yodiwo_Plegma_Json_e Yodiwo_Plegma_GraphDescriptorKey_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_GraphDescriptorKey_t *value);
mitsarionas 4:073e23f6718c 622 Yodiwo_Plegma_Json_e Yodiwo_Plegma_GraphKey_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_GraphKey_t *value);
mitsarionas 4:073e23f6718c 623 Yodiwo_Plegma_Json_e Yodiwo_Plegma_BlockKey_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_BlockKey_t *value);
mitsarionas 4:073e23f6718c 624 Yodiwo_Plegma_Json_e Yodiwo_Plegma_TimelineDescriptorKey_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_TimelineDescriptorKey_t *value);
mitsarionas 4:073e23f6718c 625 Yodiwo_Plegma_Json_e Yodiwo_Plegma_Mqtt_MqttAPIMessage_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_Mqtt_MqttAPIMessage_t *value);
mitsarionas 4:073e23f6718c 626 Yodiwo_Plegma_Json_e Yodiwo_Plegma_Port_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_Port_t *value);
mitsarionas 4:073e23f6718c 627 Yodiwo_Plegma_Json_e Yodiwo_Plegma_ConfigParameter_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_ConfigParameter_t *value);
mitsarionas 4:073e23f6718c 628 Yodiwo_Plegma_Json_e Yodiwo_Plegma_ThingUIHints_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_ThingUIHints_t *value);
mitsarionas 4:073e23f6718c 629 Yodiwo_Plegma_Json_e Yodiwo_Plegma_Thing_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_Thing_t *value);
mitsarionas 4:073e23f6718c 630 Yodiwo_Plegma_Json_e Yodiwo_Plegma_LoginReq_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_LoginReq_t *value);
mitsarionas 4:073e23f6718c 631 Yodiwo_Plegma_Json_e Yodiwo_Plegma_LoginRsp_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_LoginRsp_t *value);
mitsarionas 4:073e23f6718c 632 Yodiwo_Plegma_Json_e Yodiwo_Plegma_StateDescription_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_StateDescription_t *value);
mitsarionas 4:073e23f6718c 633 Yodiwo_Plegma_Json_e Yodiwo_Plegma_ConfigDescription_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_ConfigDescription_t *value);
mitsarionas 4:073e23f6718c 634 Yodiwo_Plegma_Json_e Yodiwo_Plegma_PortDescription_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_PortDescription_t *value);
mitsarionas 4:073e23f6718c 635 Yodiwo_Plegma_Json_e Yodiwo_Plegma_NodeModelType_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodeModelType_t *value);
mitsarionas 4:073e23f6718c 636 Yodiwo_Plegma_Json_e Yodiwo_Plegma_NodeThingType_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodeThingType_t *value);
mitsarionas 4:073e23f6718c 637 Yodiwo_Plegma_Json_e Yodiwo_Plegma_NodeInfoReq_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodeInfoReq_t *value);
mitsarionas 4:073e23f6718c 638 Yodiwo_Plegma_Json_e Yodiwo_Plegma_NodeInfoRsp_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodeInfoRsp_t *value);
mitsarionas 4:073e23f6718c 639 Yodiwo_Plegma_Json_e Yodiwo_Plegma_ThingsReq_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_ThingsReq_t *value);
mitsarionas 4:073e23f6718c 640 Yodiwo_Plegma_Json_e Yodiwo_Plegma_ThingsRsp_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_ThingsRsp_t *value);
mitsarionas 4:073e23f6718c 641 Yodiwo_Plegma_Json_e Yodiwo_Plegma_PortEvent_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_PortEvent_t *value);
mitsarionas 4:073e23f6718c 642 Yodiwo_Plegma_Json_e Yodiwo_Plegma_PortEventMsg_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_PortEventMsg_t *value);
mitsarionas 4:073e23f6718c 643 Yodiwo_Plegma_Json_e Yodiwo_Plegma_PortStateReq_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_PortStateReq_t *value);
mitsarionas 4:073e23f6718c 644 Yodiwo_Plegma_Json_e Yodiwo_Plegma_PortState_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_PortState_t *value);
mitsarionas 4:073e23f6718c 645 Yodiwo_Plegma_Json_e Yodiwo_Plegma_PortStateRsp_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_PortStateRsp_t *value);
mitsarionas 4:073e23f6718c 646 Yodiwo_Plegma_Json_e Yodiwo_Plegma_ActivePortKeysMsg_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_ActivePortKeysMsg_t *value);
mitsarionas 4:073e23f6718c 647 Yodiwo_Plegma_Json_e Yodiwo_Plegma_NodePairing_PairingNodeGetTokensRequest_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodePairing_PairingNodeGetTokensRequest_t *value);
mitsarionas 4:073e23f6718c 648 Yodiwo_Plegma_Json_e Yodiwo_Plegma_NodePairing_PairingNodeGetKeysRequest_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodePairing_PairingNodeGetKeysRequest_t *value);
mitsarionas 4:073e23f6718c 649 Yodiwo_Plegma_Json_e Yodiwo_Plegma_NodePairing_PairingServerTokensResponse_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodePairing_PairingServerTokensResponse_t *value);
mitsarionas 4:073e23f6718c 650 Yodiwo_Plegma_Json_e Yodiwo_Plegma_NodePairing_PairingServerKeysResponse_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodePairing_PairingServerKeysResponse_t *value);
mitsarionas 4:073e23f6718c 651 Yodiwo_Plegma_Json_e Yodiwo_Plegma_NodePairing_PairingNodePhase1Response_FromJson(char* json, size_t jsonSize, Yodiwo_Plegma_NodePairing_PairingNodePhase1Response_t *value);
mitsarionas 4:073e23f6718c 652 Yodiwo_Plegma_Json_e Yodiwo_Tools_APIGenerator_CNodeConfig_FromJson(char* json, size_t jsonSize, Yodiwo_Tools_APIGenerator_CNodeConfig_t *value);
mitsarionas 4:073e23f6718c 653 Yodiwo_Plegma_Json_e Yodiwo_Tools_APIGenerator_CNodeYConfig_FromJson(char* json, size_t jsonSize, Yodiwo_Tools_APIGenerator_CNodeYConfig_t *value);
mitsarionas 0:384a04dc912e 654
mitsarionas 0:384a04dc912e 655
mitsarionas 2:855390040d43 656 #ifdef __cplusplus
mitsarionas 2:855390040d43 657 }
mitsarionas 2:855390040d43 658 #endif
mitsarionas 2:855390040d43 659
mitsarionas 0:384a04dc912e 660 #endif /* _Yodiwo_Plegma_H_ */
mitsarionas 6:4596aaa1a824 661