IOTC Platform Ver: [Comments]

- Flow Chart

Copyright (c) 2010 by Throughtek Co., Ltd. All Rights Reserved.

In IOTC platform, comparing with masters and servers, devices and clients are the ones needing manufactures to spend more development efforts to customize in order for some special features. To make development concept be clearer and process be more straightforward, this document lists the flow charts of common scenarios of devices and clients when they join IOTC platform and leverage facilities.

Also, a piece of pseudo code is attached for each flow chart for better description. To achieve easy reference purpose, the functions mentioned in pseudo code are exactly the one for real development. You can check the API Reference Guide for the details about the function usage and limitation.


 

Table of Contents

1.     IOTC Data Transfer. 4

1.1.      Device Side. 4

1.1.1.       A device sends data to a client. 4

1.1.2.       A device sends two types of data to a client simultaneously. 5

1.1.3.       A device sends data to multiple clients. 6

1.1.4.       A device limits the number of connected clients. 7

1.1.5.       A device login with authentication key. 8

1.1.6.       A dvice update authentication key. 9

1.2.      Client Side. 10

1.2.1.       A client receives data from a device. 10

1.2.2.       A client receives data from a device and send back to the device simultaneously. 11

1.2.3.       A client limits the number of connected devices. 12

1.2.4.       A client receives data from a device with key authentication. 13

2.     Reliable Data Transfer. 14

2.1.      RDT Server Side. 14

2.1.1.       A RDT server sends data to a RDT client. 14

2.1.2.       A RDT server sends multiple file to a RDT client simultaneously. 15

2.1.3.       A RDT server limits the number of connected RDT clients. 16

2.2.      RDT Client Side. 17

2.2.1.       A RDT client receives data from a RDT server. 17

2.2.2.       A RDT client limits the number of connected RDT servers. 18

3.     Audio / Video Data Transfer. 19

3.1.      AV Server Side. 19

3.1.1.       An AV server sends frame data and audio data to an AV client 19

3.1.2.       An AV server streams frame data and audio data to multiple AV clients. 20

3.1.3.       An AV server handles IO control request from an AV client while streaming. 21

3.1.4.       An AV server handles request av token. 22

3.1.5.       An AV server handles an AV client connect with identity and av token. 23

3.1.6.       An AV server handles change password and update auth key. 24

3.1.7.       An AV server handles delete av token. 25

3.1.8.       An AV server handles list identity. 26

3.2.      AV Client Side. 27

3.2.1.       An AV client receives frame data and audio data from an AV server. 27

3.2.2.       An AV client handles IO control request to an AV server while streaming. 28

3.2.3.       An AV client request an AV Server to create av token with identity. 29

3.2.4.       An AV client connect to an AV server using identity and av token. 30

3.2.5.       An AV client request an AV server to change password and update auth key. 31

3.2.6.       An AV client request an AV Server delete av token with identity. 32

3.2.7.       An AV client request an AV server to list identity. 33

4.     Tunnel Data Transfer. 34

4.1.      Tunnel Server Side. 34

4.1.1.       Start a tunnel server 34

4.2.      Tunnel Agent Side. 35

4.2.1.       Connect to a tunnel server 35

5.     Nebula API Call Flow.. 49

5.1.      Create nebula client context & Send nebula command. 49

5.2.      Establish AV connection with Nebula client. 50

5.3.      Send av json control. 51

5.4.      Receive audio/video data. 52

 

 


 

1.    IOTC Data Transfer

1.1.  Device Side

1.1.1.    A device sends data to a client


 

1.1.2.    A device sends two types of data to a client simultaneously


 

1.1.3.    A device sends data to multiple clients


 

1.1.4.    A device limits the number of connected clients


 

1.1.5.    A device login with authentication key


1.1.6.    A dvice update authentication key


1.1.1.  

1.2.  Client Side

1.2.1.    A client receives data from a device


 

1.2.2.    A client receives data from a device and send back to the device simultaneously


 

1.2.3.    A client limits the number of connected devices


 

1.3.   A client receives data from a device with key authentication


 

2.    Reliable Data Transfer

2.1.  RDT Server Side

2.1.1.    A RDT server sends data to a RDT client


2.1.2.    A RDT server sends multiple file to a RDT client simultaneously


 

2.1.3.    A RDT server limits the number of connected RDT clients


 

2.2.  RDT Client Side

2.2.1.    A RDT client receives data from a RDT server


 

2.2.2.    A RDT client limits the number of connected RDT servers


 

3.    Audio / Video Data Transfer

3.1.  AV Server Side

3.1.1.    An AV server sends frame data and audio data to an AV client


 

3.1.2.    An AV server streams frame data and audio data to multiple AV clients


 

3.1.3.    An AV server handles IO control request from an AV client while streaming


 

3.1.4.    An AV server handles request av token


 

3.1.5.    An AV server handles an AV client connect with identity and av token


 

3.1.6.    An AV server handles change password and update auth key


 

3.1.7.    An AV server handles delete av token


 

3.1.8.    An AV server handles list identity


 

3.2.  AV Client Side

3.2.1.    An AV client receives frame data and audio data from an AV server


 

3.2.2.    An AV client handles IO control request to an AV server while streaming


 

3.2.3.    An AV client request an AV Server to create av token with identity


 

3.2.4.    An AV client connect to an AV server using identity and av token


 

3.2.5.    An AV client request an AV server to change password and update auth key


 

3.2.6.    An AV client request an AV Server delete av token with identity


 

3.2.7.    An AV client request an AV server to list identity


 

4.    Tunnel Data Transfer

4.1.  Tunnel Server Side

4.1.1.    Start a tunnel server


 

4.2.  Tunnel Agent Side

4.2.1.    Connect to a tunnel server

Diagram

Description automatically generated


 

5.    Nebula API Call Flow

5.1.  Create nebula client context & Send nebula command

Diagram

Description automatically generated


 

5.2     Establish AV connection with Nebula client

Diagram

Description automatically generated


 

5.3        Send av json control

Diagram

Description automatically generated


 

5.4        Receive audio/video data

Graphical user interface

Description automatically generated with low confidence