Microserver Middleware

From Seamonster

Jump to: navigation, search

Gen 3.2

Gen 3.1

Microcontroller-related

Other Microserver-Related


Contents

Introduction

This page covers Microserver Middleware: Roughly what happens in between acquiring data on the microserver internal memory and getting rid of it (off to somewhere else in the network, ideally the database residing on the network server). In the examples given below to avoid ambiguity we are writing for "brick 58". So if you find yourself working on brick 9423 you will need to substitute that digit sequence. Furthermore our example happens on May 12, 2009, at 19 hours and 23 minutes (local time). Hence a date string will be
200905121912
.


Acquiring Data: Modes and Software

  • Some VuS data is created by the Agent and exists as a file called
brick58_200905121923.log
.


A typical entry in this file will look like this:

2009-5-14 15:59:53, 58, 218, 14.606000, 1, 148

Let's digress for a moment and explain what these numbers mean:

2009-5-14     Day of year
15:59:53,     Time of day
58,           Brick number
218,          Voltage as an ADC value on (0, 255)
14.606000,    Voltage converted to a floating point number
1,            state of the radio: 1 means 'on' and 0 means 'off'
148           Power setting = (bits:) 1001 0100 (three supplies are switched "on"
                            = internal 12V (router) + external 12 (camera) + wifi amp

Where Data Lives

Without exception all "acquired" data resides in this directory:


/root/brickmove/logs


What Happens

cron jobs and boot scripts

We have two mechanisms to "do things automatically". The first is the crontab and the second is boot.

  • cron jobs are tasks that run periodically during SBC operation (e.g. once every 15 minutes)
    • This behavior is moderated by a table of commands (the "cron table" or "crontab")
    • The crontab lines also include information about how often the cron jobs execute
  • boot scripts execute every time the SBC boots up
    • In our case this is commonly once every hour or every two hours or whatever.


By combining cron jobs and boot processes we try to push acquired data off the microserver to the system database, residing on a server in the NSRL lab.


time sequence of events

  • First some time passes in which some data is acquired
    • Agent logs voltages and so forth
    • <describe getting data of a CR1000...
    • describe getting data from a camera
    • describe getting data from a mote subnet
  • All of this data resides in /root/brickmove/logs
  • How does it get moved to inbound?
  • How does it get pushed to another brick?
  • How does it eventually reach the server?
  • How does it get purged off the source brick?
  • From the server: How does it get parsed into the database?
  • Where does the raw data go? Delete? Archive?
  • From the database how do I get a copy of it? (GeoServer...)
Personal tools