Skip to main content

Dataflow

Current version

Dataflow

Sensor node

  • Goes through deep sleep cycles
  • Header content:
    • Measurement ID: Random number / guid / use watchdog timer time
    • Measurement type
    • Sample period
    • Seq ID: custom packet id (assigned by us)

Root node

  • Organizes the packets received from different nodes into a array of structures
  • Once a complete measurement is received from a node, that data is sent to the socket server and data is cleared from the memory
  • If server connection is IP SOCKET:
    • Keeps a socket connection open and send every complete measurement it received
  • If server connection is USB:
    • Keeps a USB connection open and sends measurements as they are received.
  • Header contains:
    • uint8_t MESH_ID[6];
    • uint8_t mac_addr[6];
    • uint8_t measurement_type;
  • Timeout for measurement packets from a node

Deep_Vibe Server

  • Keeps a USB or IP SOCKET conenction open for receiving data.
  • Reads the data and parse the data to reconstruct the measurement information

Version 1

Idea behind current implementation was reducing the processing overhead in the root node. It just passes on the packetes received from leaf nodes to the socket server.

overview image

Leaf Node

  • Sampling rate: 1KHz
  • Send 12 packets of 1024 byte datapackets per each measurement
  • Samples sent every 1 minute

Root Node

  • If socket connection is not responding, open a new socket client.
  • Reads packets received from Mesh and passes that to socket server.
  • No any other processing

Socket Server

  • Reads in data till 12288 bytes are recieved.
  • Continue to process data.
  • Closes and open a new socket connection.

Issues:

  • Can not handle multiple nodes
  • Packet losses due to timing conflicts in the root node as data is not queued.

Version 2

Root node keeps a list of actively communicating nodes at the moment and sends data to socket server once a complete measurement is recieved.

Leaf node

  • Header content:

    • Measurement ID: Random number / guid / use watchdog timer time
      I'm using a random number
    • Seq ID: custom packet id (assigned by us)

Root node

  • Organizes the packets received from different nodes into a array of structures
  • Once a complete measurement is received from a node, that data is sent to the socket server and data is cleared from the memory
    • Opens a socket connection
    • Sends the whole measurement including the new header in to the connection
    • Closes the connection
  • Mac-ID of the origin node is sent as a header with each socket payload.
  • Timeout for measurement packets from a node

Socket Server

  • Waits for new socket connection
  • Reads the data and parse to rebuild the MAC-ID and measurement.
  • Closes the connection
  • Associate time information