- General Microservers, Vexcel Microservers, Quick Reference, Data Acquisition, Middleware
- Components GPS, SBC
- Configuration Microserver, SBC, SD Card, Power
- Operation Communication Protocol (SBC <--> uc), SBC Operations, Agent
- Operation (background) Task Manager "milo", config files, MACRO
- Microcontroller Microcontroller, Firmware, Skeleton firmware
- Evaluation 2008 Cairn relay failure evaluation, Lab evaluation, Eval-Firmware, BPMS, Source notes
- PCS Board PCS Board Design, Voltage Monitoring Circuit
- Gen 3.1 Kernel Upgrade and Field Notes (Spring 2007)
- Gen 3.1 Microserver, README, Schematics
- Gen 3.1 Task Manager "milo", GPS, Firmware
IntroductionThis 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
Acquiring Data: Modes and Software
- Some VuS data is created by the Agent and exists as a file called
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:
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...)