-- This project is currently a draft --
Jenga
Copyright (c) 2016 Ricardo Carrasco Cursach.
Under MIT Licence, See LICENCE
Jenga is a tool for building applications based on XBee radio devices
Its use is intended for receiving data from small WSNs based on XBee/ZigBee devices and enable them to access the internet
(It's kind of a "rack" for serial)
The following Asumptions/Escenarios will be taken in care:
As from source:
- Serial data comes in form of "Packages"
- Packages can come from:
- Raw serial as bytes
- Strings from serial as lines
- XBee/ZigBee plain text from datagram's body/payload
- XBee/ZigBee binary data from datagram's payload
As for format:
- Package might contain key:value pairs array
- Package might contain an only values array
- as text delimited by token
- as binary string to be decoded
- Only-values packages needs a parser
- Package can be an array of packages, we call it a Stream
As for other middleware:
- More middleware components can be added, some examples could be:
- Database storage
- Pub/Sub services
- Caching data
- logging
- Validate/Discard Packages
- Middleware components should not block:
- For example: Storage should be preceded by caching/queuing in some way.
As for configuration:
- An instance will need to know what kind of source will be received.
- Also will need to know serial configuration data as port, speed, etc. (This behaviour will be inherited from its abstract parent interface)
- An instance will need to know the number, names and order of filters for package format
- An instance will need to know the number, names and order of other middleware components
- An instance will need a list of components to be injected as dependencies