Plegma API  v2
Yodiwo.API.Plegma Namespace Reference

Namespaces

Classes

class  A2mcuActiveDriver
 
class  A2mcuActiveDriversReq
 
class  A2mcuConcurrent
 
class  A2mcuConcurrentCommands
 
class  A2mcuConfigConstants
 
class  A2mcuCtrl
 
class  A2mcuCtrlReq
 
class  A2mcuSequencedCommands
 
class  ActivePortKeysMsg
 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 More...
 
class  AssemblyHook
 
class  AudioContentDescriptor
 
class  BinaryResourceDescriptor
 Descriptor of a binary resource. More...
 
struct  BinaryResourceDescriptorKey
 Globally unique identifier of a BinaryResourceDescriptor More...
 
class  BinaryResourceHelper
 
class  BlockEventFeedbackMsg
 BlockEventFeedbackMsg: external event meant to provide feedback to a previous block event. Upon receiving the event, the Cloud Worker will use the information to trigger the referenced block's "Result" port with the enclosed information More...
 
struct  BlockKey
 Globally unique identifier of a Graph's Yodiwo.API.Plegma.BlockKey More...
 
class  ConfigDescription
 Describes restrictions and gives information of a configuration parameter. More...
 
struct  ConfigParameter
 Configuration parameters for the thing in generic name-value pairs More...
 
class  Constants
 
class  ContentDescriptor
 
class  DataContentDescriptor
 
class  DbDocument
 
struct  DbKey
 
struct  DriverKey
 Globally unique identifier of a Graph's Yodiwo.API.Plegma.DriverKey More...
 
class  EndpointSyncReq
 Endpoint Sync request, providing way for individual Node Links to become aware / influence Node operation Direction: Node(link) -> Cloud More...
 
class  EndpointSyncRsp
 Endpoint Sync response to previous request Direction: Cloud -> Node(link) More...
 
class  EvNodeApiFendCommon
 
class  EvNodeCommon
 
class  EvNodeConnectAttemptFailure
 
class  EvNodeConnected
 
class  EvNodeDisconnected
 
class  EvNodeDisconnectReq
 
class  EvNodeRxDisabled
 
class  EvNodeRxEnabled
 
struct  ExternalServiceBlockKey
 Globally unique identifier of an Api Key (Yodiwo.API.Plegma.ExternalServiceBlockKey) More...
 
class  FcmConnectionMsg
 GCM connection message send by a GCM client to indicate that it can be reached over GCM This is also used by the server to create the NodeKey - (GCM) Registration Id association, and authenticate Registration Ids More...
 
class  FcmDisconnectionMsg
 GCM connection message send by a GCM client to indicate that it can no longer be reached over GCM More...
 
class  FcmMsg
 Gcm message encapsulation class. More...
 
class  GeneratorIgnoreAttribute
 
class  GenericRsp
 General Response to request-type messages. Used to unblock requests waiting for responses that are of basic ACKnowledge type More...
 
class  GraphDeploymentReq
 Node Graph Deploy/Undeploy Request (respond with GenericRsp) More...
 
struct  GraphDescriptorBaseKey
 
struct  GraphDescriptorKey
 Globally unique identifier of a Yodiwo.API.Plegma.GraphDescriptorKey More...
 
struct  GraphKey
 Globally unique identifier of a Yodiwo.API.Plegma.GraphKey More...
 
class  GraphOptions
 
struct  GroupKey
 Globally unique identifier of a Yodiwo.API.Plegma.GroupKey More...
 
class  HelperExtensions
 
class  HttpLocationDescriptor
 Descriptor of HTTP Location More...
 
class  I2CCommand
 
class  ImageContentDescriptor
 
class  IncidentDescriptor
 Descriptor class for Edge Node Incidents (crashes, unexpected restarts, etc) More...
 
class  LocallyDeployedGraphsMsg
 Inform server for local deployed graphs (to sync up on connect) More...
 
class  LocationDescriptor
 Descriptor of a binary resource location. More...
 
class  LoginReq
 Login Request to be used only for transports that require explicit authentication via the API itself Direction: Cloud to Node More...
 
class  LoginRsp
 Login Response More...
 
class  ModelTypeLibrary
 
class  MqttMsg
 Mqtt message encapsulation class. More...
 
class  NodeInfoReq
 Node Info Request Sent by cloud to a node, it is to request capabilities and supported types from the node More...
 
class  NodeInfoRsp
 Node Info Response Message that contains general information about a node including supported Node Types and Capabilities More...
 
struct  NodeKey
 Globally unique identifier of a Yodiwo.API.Plegma.NodeKey More...
 
class  NodeLinkIpInfo
 
class  NodeStatusChangedReq
 Unpairing request, stating reason code and a possible custom message Direction: Cloud->Node, Node->Cloud More...
 
class  NodeUnpairedReq
 Unpairing request, stating reason code and a possible custom message Direction: Cloud->Node More...
 
class  PingReq
 Node Ping Request More...
 
class  PingRsp
 
class  PlegmaAPI
 
class  PlegmaApiMsg
 Base class of an API message, from which all message classes inherit More...
 
class  Port
 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 PortEventMsg message More...
 
class  PortConfiguration
 
class  PortDescription
 Describes restrictions and gives information of a port Port. More...
 
class  PortEvent
 Port Event class: used to describe a new event that should trigger an endpoint, either towards a node or the Cloud Services More...
 
class  PortEventMsg
 asynchronous Port Event message The main API message to exchange events between Nodes and the Yodiwo Cloud Service More...
 
class  PortEventReq
 synchronous Port Event request The main API message to exchange events between Nodes and the Yodiwo Cloud Service Similar to PortEventMsg but expects a response linked to this Request via a SyncId More...
 
class  PortEventRsp
 
struct  PortKey
 Globally unique identifier of a Thing's Port More...
 
class  PortModelLibrary
 
class  PortState
 internal state of a referenced Port More...
 
class  PortStateGet
 Port State Request. Will result in a response of type PortStateSet More...
 
class  PortStateSemantics
 
class  PortStateSet
 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 More...
 
class  RedisDBLocationDescriptor
 Descriptor of RedidDB Location More...
 
struct  ScheduleKey
 Globally unique identifier of a Yodiwo.API.Plegma.ScheduleKey More...
 
class  StateDescription
 
class  StateTriplet
 
struct  SubUserKey
 Globally unique identifier of a Yodiwo.API.Plegma.SubUserKey More...
 
class  TextContentDescriptor
 
class  Thing
 Main representation of a Thing that can interact with the Yodiwo cloud service More...
 
class  ThingExtensions
 
struct  ThingKey
 Globally unique identifier of a Thing More...
 
class  ThingModelType
 Base class that describes the Model of a Thing Thing More...
 
class  ThingsGet
 Node Things Request Used to request a Things related operation from the other end. More...
 
class  ThingsSet
 Node Things Response Response to a ThingsSet request More...
 
class  ThingType
 Base class that describes a group of Thing Models ThingModelType More...
 
class  ThingTypeLibrary
 
class  ThingTypes
 
class  ThingTypesMigrator
 
struct  ThingUIHints
 Collection of instructions ("hints") for how to present this thing in the Cyan UI More...
 
struct  UserApiKey
 Globally unique identifier of an Api Key (Yodiwo.API.Plegma.UserApiKey) More...
 
struct  UserKey
 Globally unique identifier of a Yodiwo.API.Plegma.UserKey More...
 
class  Validators
 
class  VideoContentDescriptor
 
class  VirtualBlockEvent
 VirtualBlock Event class: used to describe a new event that should trigger a virtual block endpoint, either towards a node or the Cloud Services More...
 
class  VirtualBlockEventMsg
 asynchronous Port Event message The main API message to exchange events between Nodes and the Yodiwo Cloud Service More...
 
class  WebSocketMsg
 Websocket protocol wrapper. Inherits from base WrapperMsg, adds Id and Subid More...
 
class  WrapperMsg
 Wrapper class mainly for providing synchronization services to sync-less protocols (mqtt, websockets, etc) More...
 
struct  YColor
 

Enumerations

enum  eConnStatus { NONE = 0, RX_ON = 1, TX_ON = 2, ALL = 3 }
 
enum  eLinkType {
  Unknown = 0, YPC = 1, WebSocket = 2, Mqtt = 3,
  Rmq = 4, Fcm = 5, REST = 11
}
 
enum  eBinaryResourceContentType : byte {
  Undefined = 0, Data = 1, Text = 2, Image = 3,
  Audio = 4, Video = 5
}
 Content type of a binary resource. More...
 
enum  eBinaryResourceLocationType : byte { Undefined = 0, Http = 1, RedisDB = 2 }
 Location type of a binary resource. More...
 
enum  RestServiceType : byte {
  Undefined = 0, Dropbox = 1, Pastebin = 2, GoogleDrive = 3,
  Yodiwo = 4
}
 Type of a REST service More...
 
enum  ImageFileFormat : byte {
  Undefined = 0, PNG = 1, TIFF = 2, GIF = 3,
  BMP = 4, SVG = 5
}
 
enum  ImageType : byte { Raster = 0, Vector = 1 }
 
enum  eNodeEventType {
  Connected, Disconnected, RxEnabled, RxDisabled,
  ConnectFailure, DisconnectReq
}
 
enum  eDriverType { Unknown = 0, LCD }
 
enum  eThingSolveErrorCode {
  Received = 0, Sent = 1, Forwarded = 2, ThingDoesNotExist = 3,
  ThingIsNotCurrentlyConnected = 4, NoPendingReqFound = 5, InvalidReq = 6, Unreachable = 7,
  NoEligibleTarget = 8, TimeToLiveExceeded = 9, RejectedByThirdParty = 10, FateUnknown = 11,
  RejectedDueToQuota = 12, RejectedDueToThrottling = 13, LastReserved = 29, OtherError = 255
}
 
enum  ePortType : int {
  ePortType.Undefined = 0, ePortType.Integer = 1, ePortType.Decimal = 2, ePortType.DecimalHigh = 3,
  ePortType.Boolean = 4, ePortType.Color = 5, ePortType.String = 6, ePortType.VideoDescriptor = 7,
  ePortType.AudioDescriptor = 8, ePortType.BinaryResourceDescriptor = 9, ePortType.I2CDescriptor = 10, ePortType.JsonString = 11,
  ePortType.IncidentDescriptor = 12, ePortType.Timestamp = 13
}
 type of values that each Port sends / receives More...
 
enum  ioPortDirection : byte { ioPortDirection.Undefined = 0, ioPortDirection.InputOutput = 1, ioPortDirection.Output = 2, ioPortDirection.Input = 3 }
 Direction of Port More...
 
enum  ePortConf : uint {
  ePortConf.None = 0, ePortConf.PropagateAllEvents = 1 << 0, ePortConf.IsTrigger = 1 << 1, ePortConf.DoNotNormalize = 1 << 2,
  ePortConf.SupressIdenticalEvents = 1 << 3, ePortConf.Hidden = 1 << 4, ePortConf.IsMetadata = 1 << 5
}
 
enum  eConnectionFlags { eConnectionFlags.None = 0, eConnectionFlags.CreateNewEndpoint = 1 << 0, eConnectionFlags.IsMasterEndpoint = 1 << 1, eConnectionFlags.KillExistingNodeLinks = 1 << 2 }
 Connection parameters / flags More...
 
enum  eNodeType : byte {
  Unknown = 0, Generic = 1, EndpointSingle = 2, TestGateway = 3,
  TestEndpoint = 4, WSEndpoint = 5, Android = 6, iOS = 7,
  SmartThingsEndPoint = 8, mNode = 9, Dashboard = 10, LoRa = 11,
  Impact = 12, ImpactV2 = 13, Facebook = 14, Skype = 15,
  Sigfox = 16, WSSample = 200, RestSample = 201, Virtual = 202,
  Yodikit = 203
}
 Type of Node More...
 
enum  eEndpointRestrictions { None = 0, SkipThingsSync = 1, SkipPortStateSync = 2, DelayRxPathOpen = 4 }
 
enum  eNodeCapa : uint {
  eNodeCapa.None = 0, eNodeCapa.SupportsGraphSolving = 1 << 0, eNodeCapa.Scannable = 1 << 1, eNodeCapa.IsWarlock = 1 << 2,
  eNodeCapa.IsShellNode = 1 << 3
}
 enum of possible node capabilites More...
 
enum  eUnpairReason : byte { eUnpairReason.Unknown = 0, eUnpairReason.InvalidOperation = 1, eUnpairReason.UserRequested = 2, eUnpairReason.TooManyAuthFailures = 3 }
 Reason for Node Unpairing More...
 
enum  eNodeStatusChangeReason {
  eNodeStatusChangeReason.Unknown = 0, eNodeStatusChangeReason.InvalidOperation = 1, eNodeStatusChangeReason.UserRequested = 2, eNodeStatusChangeReason.TooManyAuthFailures = 4,
  eNodeStatusChangeReason.QuotaRelated = 8, eNodeStatusChangeReason.Temporary = 16
}
 Reason for Node Unpairing More...
 
enum  eNodeNewStatus { eNodeNewStatus.Unpaired = 0, eNodeNewStatus.Disabled = 1, eNodeNewStatus.Enabled = 2 }
 
enum  eNodeSyncOperation { eNodeSyncOperation.GetEndpoints = 1, eNodeSyncOperation.SetEndpoint }
 type of sync operation requested More...
 
enum  eThingsOperation : byte {
  eThingsOperation.Invalid = 0, eThingsOperation.Update = 1, eThingsOperation.Overwrite = 2, eThingsOperation.Delete = 3,
  eThingsOperation.Get = 4, eThingsOperation.Scan = 5, eThingsOperation.Sync = 6
}
 Internal operation ID for ThingsGet and ThingsSet messages More...
 
enum  ePortStateOperation {
  ePortStateOperation.Invalid = 0, ePortStateOperation.SpecificKeys = 1, ePortStateOperation.ActivePortStates = 2, ePortStateOperation.AllPortStates = 3,
  ePortStateOperation.ActivePortKeys = 4, ePortStateOperation.AllPortsNoStates = 5
}
 Allowed operations in PortStateGet messages More...
 
enum  eA2mcuCtrlType { Reset = 0, SetValue = 1, WriteDriconf = 2 }
 
enum  eThingConf : uint { eThingConf.None = 0, eThingConf.SyncEventWithAllEndpoints = 1 << 0, eThingConf.Removable = 1 << 1 }
 Thing configuration flags More...
 

Enumeration Type Documentation

Content type of a binary resource.

Location type of a binary resource.

Connection parameters / flags

Enumerator
None 

No special connection flags and guidance

CreateNewEndpoint 

Request to create a new endpoint for this connection

IsMasterEndpoint 

This endpoint will become the master one

KillExistingNodeLinks 
enum Yodiwo.API.Plegma.eNodeCapa : uint
strong

enum of possible node capabilites

Enumerator
None 

no capabilities

SupportsGraphSolving 

Node supports graph solving

Scannable 

Node supports scanning for new Things (i.e. Things are not just fixed at initial setup)

IsWarlock 

Node supports the Warlock API

IsShellNode 

Node is capable of sending/receiving events for Things that don't belong to it

Enumerator
Unpaired 

Node is no longer paired

Disabled 

Node is (possibly temporarily) disabled

Enabled 

Node is enabled again after having been disabled

Reason for Node Unpairing

Enumerator
Unknown 

Unknown Reason

InvalidOperation 

Node performed an invalid operation

UserRequested 

User requested removal of the node from the Cyan UI

TooManyAuthFailures 

Node has failed to login too many times

QuotaRelated 

Change of status is related to Quota limitations

Temporary 

Change of status is temporary

type of sync operation requested

Enumerator
GetEndpoints 

Node link endpoint asks for all available NodeEndpoints of Node

SetEndpoint 

Node link requests that it is reassigned to new NodeEndpoint, denoted by EndpointSyncReq.DesiredEndpoint

enum Yodiwo.API.Plegma.eNodeType : byte
strong

Type of Node

enum Yodiwo.API.Plegma.ePortConf : uint
strong

Enumerator
None 

no configuration set

PropagateAllEvents 

OBSOLETE FLAG, as it is now the default behavior even if no flags are set: port will propagate all events, not only "dirty" ones (i.e. value not changed but triggered in graph)

To explicitly suppress this behavior set the SupressIdenticalEvents flag

IsTrigger 

mark the port as a trigger port (this may have an effect on where it's placed on the block model and how events from it are propagated)

DoNotNormalize 

Enable this flag to force raw values for the port. Normalization will be applied if Decimal_Range or Integer_Range semantics is used

SupressIdenticalEvents 

The opposite of PropagateAllEvents. If set port will only propagate "dirty" events, where the value actually changed and was not just triggered

Hidden 

Enable this flag to have port be treated as hidden by default in Cyan

IsMetadata 

Enable this flag to have port be treated as pure metadata; it will not be able to trigger Cyan graphs into action on its own

Allowed operations in PortStateGet messages

Enumerator
Invalid 

reserved; should not be used

SpecificKeys 

request array of current state for the specified PortKey(s)

ActivePortStates 

request array of current states for ports currently deployed in graphs

AllPortStates 

request array of current states for all ports of this Node

ActivePortKeys 

request array of currently active portkeys and revision numbers (but not states)

AllPortsNoStates 

request array of all portkeys and revision numbers but without states (avoiding generic state sync; can then check rev.nums and only sync out-of-sync ones)

enum Yodiwo.API.Plegma.ePortType : int
strong

type of values that each Port sends / receives

Enumerator
Undefined 

undefined, should not be used!

Integer 

integer values

Decimal 

single precision floating point values

DecimalHigh 

double precision floating point values

Boolean 

boolean values (can be true/false, on/off, 1/0, etc)

Color 

RGBA triplet in "R,G,B,A" format, where each element is a floating point number

String 

generic string

VideoDescriptor 

video

AudioDescriptor 

audio

BinaryResourceDescriptor 

binary resource port

I2CDescriptor 

i2c thing

JsonString 

json string

IncidentDescriptor 

incident descriptor port

Timestamp 

incident descriptor port

enum Yodiwo.API.Plegma.eThingConf : uint
strong

Thing configuration flags

Enumerator
None 

no configuration set

SyncEventWithAllEndpoints 

if set, any input (towards the Cloud Server) event from this thing will be propagated to all currently connected Endpoints, if any

Removable 

specifies whether the Thing is allowed to be remotely removed via a Plegma msg (ThingsSet with operation id eThingsOperation.Delete)

Internal operation ID for ThingsGet and ThingsSet messages

Enumerator
Invalid 

invalid opcode

Update 

referenced things are to be updated at receiver. If they don't already exist, they are created

Overwrite 

referenced things are to be updated at receiver if they exist, created if not. Previously existing things at receiver that are not in this message are deleted

Delete 

ask that the receiver deletes referenced (by the ThingKey) thing

Get 

ask that receiver sends back its existing things as a ThingsSet

Scan 

ask that the receiver scans for new things and send back all results (new and old) as a ThingsSet

Sync 

sync Thing revisions between node and cloud

enum Yodiwo.API.Plegma.eUnpairReason : byte
strong

Reason for Node Unpairing

Enumerator
Unknown 

Unknown Reason

InvalidOperation 

Node performed an invalid operation

UserRequested 

User requested removal of the node from the Cyan UI

TooManyAuthFailures 

Node has failed to login too many times

Direction of Port

Enumerator
Undefined 

undefined, should not be used!

InputOutput 

both Input and Output, Port will be used in both Graph Input and Output Things

Output 

Output only; Port will be used only in Graph Input Things (node->cloud)

Input 

Input only; Port will be used only in Graph Output Things (cloud->node)

Type of a REST service