Title: A Graphical Monitoring and Notification Flow Language (MNFL) for User-Configurable In-Home Assistive Monitoring
1A Graphical Monitoring and Notification Flow
Language (MNFL) for User-Configurable In-Home
Assistive Monitoring
- Alex Edgcomb
- Oral Qualification
- March 2nd, 2011
2The Goal User-configurable notification systems
for in-home use
3Not enough configurability
4Too much configurability
5Outside too long at night
Grandma has Alzheimers
Not safe to be outside at night
Want to be notified if she is for long
6Defining the system
- Send a text message if someone leaves, without
- returning, for more than 10 minutes at night.
7Microsoft VPL
8Microsoft VPL
- If-statements with gt1 variable require Join
- Join operator only takes two values at a time
- Join waits for both variables to receive data
- Asynchronous data sources leads to raise
condition. - If-statements require all variables using in
If-statement and Calculations done afterward. - Hard (if not impossible) to increment on a
raising/falling edge
9Lego Mindstorms v2.0
- Lacks global variables.
- Variables cannot be read/written more than once.
- No sense of actual time.
10Scratch
- New functionality leads to
- Redundant code
- Complex code
- Reason Independent behavior is not separated
away. - For example, add a 2nd door
- Create second code block
- Embed new timer/variable
11RIBS and RIMS
inWindow (time gt 10PM time lt 5AM) var
Time 10minWait time Period length 1 second
1) Define synch SM in RIBS. 2) Automatically
convert to C code in RIMS.
CS120B (Introduction to Embedded Systems)
students take 5 weeks to correctly describe
exact behavior.
12MNFL
System Pros Cons
Microsoft VPL Flow language style is intuitive for streaming applications If-statements do not handle asynchronous data
Lego Mindstorm Easy to learn for people of age 10 Variables too restrictive
Scratch Graphical cues indicate purpose/usage of blocks Temporal programming does not handle new functionality well
RIBS and RIMS Precise behavioral description Challenging to learn
13MNFL Data Types
14MNFL Modifiers of Data Types
15MNFL Core blocks
16Video demo
YouTube version of video http//www.youtube.com/u
ser/eslucrp/u/9/xpaOkhYBXT8
17In bathroom for over 1 hour
18Got up 5 or more times at night
Got up was motion, then no motion for 10
minutes
19Take 1 pill in the morning
20KPN Execution semantics
- Kahn processing networks (KPN)
- Processes communicate through channels
- When all input channels have a token, the process
executes and outputs tokens
Kahn, G. The Semantics of a Simple Language for
Parallel Programming. Information Processing
1974. North-Holland Publishing Company, 1974.
21SDF Execution semantics
- Synchronous data flow
- Process KPN process
- Channel KPN channel
- Difference
- Processes read and write a constant number of
tokens.
Lee, Edward A. and David G. Messerschmitt.
Synchronous Data Flow. Proceedings of the
IEEE, vol. 75, no. 9, p 1235-1245, September,
1987.
22MNFL Execution semantics
- Monitoring and notification network language
(MNFL) - Block KPN process
- Connection KPN channel
- Difference
- Blocks execute when any input channel has a
token
23MNFL block SM
- Inside each block is a state machine.
- Q queue of inputs I current input
- P previous input O output
24Implementation figures(as of 02/27/11)
- 8,000 total lines of ActionScript
- 700 lines for discrete event simulation engine
- 400 lines for base block class
- 80 related to graphical appearance and behavior
- 50 600 lines for each block
- Largest two blocks
- Send message - high configurability
- Fall extractor - detecting falls from silhouettes
- 26 fully implemented blocks
- Block spawn, deletion and connection creation
take less than 1 ms on a single core 3.0GHz PC.
25Conclusions and Future work
- EasyNotify
- Easy to use compared to currently available
systems - Core blocks contain in-home functionality
- MNFL
- Data types tailored to in-home monitoring sensors
- Non-restrictive block communication
- Human subject trials to improve usability
- Develop mechanism for users to build and
integrate new blocks - Move computations to cloud