Giter VIP home page Giter VIP logo

ioflo's Introduction

Logo

#ioflo

##Enabling The Programmable World

http://ioflo.com

Getting Started

Installation

$ pip install ioflo

on OS X

$ sudo pip install ioflo

Command Line

$ ioflo -h
usage: ioflo [-h] [-V] [-v VERBOSE] -c CONSOLE [-p PERIOD] [-r] [-n NAME] -f
             FILENAME [-b [BEHAVIORS [BEHAVIORS ...]]] [-U USERNAME]
             [-P PASSWORD] [-S [STATISTICS]]

Runs ioflo. Example: ioflo -f filename -p period -v level -r -h -b
'mybehaviors.py'

optional arguments:
  -h, --help            show this help message and exit
  -V, --version         Prints out version of ioflo.
  -v VERBOSE, --verbose VERBOSE
                        Verbosity level.
  -c CONSOLE, --console CONSOLE
                        File path name to console log file.
  -p PERIOD, --period PERIOD
                        Period per skedder run in seconds.
  -r, --realtime        Run skedder at realtime.
  -n NAME, --name NAME  Skedder name.
  -f FILENAME, --filename FILENAME
                        File path to FloScript file.
  -b [BEHAVIORS [BEHAVIORS ...]], --behaviors [BEHAVIORS [BEHAVIORS ...]]
                        Module name strings to external behavior packages.
  -U USERNAME, --username USERNAME
                        Username.
  -P PASSWORD, --password PASSWORD
                        Password.
  -S [STATISTICS], --statistics [STATISTICS]
                        Profile and compute performance statistics. Put
                        statistics into file path given by optional argument.
                        Default statistics file path is
                        /tmp/ioflo/profile/NAME.

Example:

Put the following into the file box1.flo


#example mission box1.flo

house box1

   framer vehiclesim be active first vehicle_run
      frame vehicle_run
         do simulator motion uuv

   framer mission be active first northleg
      frame northleg
         set elapsed to 20.0
         set heading to 0.0
         set depth to 5.0
         set speed to 2.5
         go next if elapsed >= goal

      frame eastleg
         set heading to 90.0
         go next if elapsed >= goal

      frame southleg
         set heading to 180.0
         go next if elapsed >= goal

      frame westleg
         set heading to 270.0
         go next if elapsed >= goal

      frame mission_stop
         bid stop vehiclesim
         bid stop autopilot
         bid stop me

   framer autopilot be active first autopilot_run
      frame autopilot_run
         do controller pid speed
         do controller pid heading
         do controller pid depth
         do controller pid pitch

To run

$ ioflo -v terse -f box1.flo

Something like this should print on the console.

----------------------
Building ...
Building Houses for Skedder Skedder ...
   Created house box1. Assigning registries, creating instances ...
   Built house box1 with meta:
       plan: Share {'value': 'Test'}
       version: Share {'value': '0.7.2'}
       platform: Share {'os': 'unix', 'processor': 'intel'}
       period: Share {'value': 0.125}
       real: Share {'value': False}
       filepath: Share {'value': 'box1.flo'}
       mode: Share {'value': []}
       behaviors: Share {'value': []}
       credentials: Share {'username': '', 'password': ''}
       name: Share {'value': 'box1'}
     Warning: Nonexistent goal share goal.heading ... creating anyway
     Warning: Transfer into non-existent field 'value' in share goal.heading ... creating anyway
     Warning: Nonexistent goal share goal.depth ... creating anyway
     Warning: Transfer into non-existent field 'value' in share goal.depth ... creating anyway
     Warning: Nonexistent goal share goal.speed ... creating anyway
     Warning: Transfer into non-existent field 'value' in share goal.speed ... creating anyway
   Ordering taskable taskers for house box1
   Resolving house box1
     Resolving framer vehiclesim
     Resolving framer mission
     Resolving framer autopilot
   Tracing outlines for house box1
     Tracing outlines for framer vehiclesim
     Tracing outlines for framer mission
     Tracing outlines for framer autopilot


Starting mission from file box1.flo...
   Starting Framer vehiclesim ...
To: vehiclesim<<vehicle_run> at 0.0
   Starting Framer mission ...
To: mission<<northleg> at 0.0
   Starting Framer autopilot ...
To: autopilot<<autopilot_run> at 0.0
To: mission<<eastleg> at 20.0 Via: northleg (go next if elapsed >= goal) From: <northleg> after 20.000
To: mission<<southleg> at 40.0 Via: eastleg (go next if elapsed >= goal) From: <eastleg> after 20.000
To: mission<<westleg> at 60.0 Via: southleg (go next if elapsed >= goal) From: <southleg> after 20.000
To: mission<<mission_stop> at 80.0 Via: westleg (go next if elapsed >= goal) From: <westleg> after 20.000
   Stopping autopilot in autopilot_run at 80.000
   Stopping vehiclesim in vehicle_run at 80.125
   Stopping mission in mission_stop at 80.125
No running or started taskers. Shutting down skedder ...
Total elapsed real time = 0.2099
Aborting all ready taskers ...
   Aborting vehiclesim at 80.125
       Tasker 'vehiclesim' aborted
   Aborting mission at 80.125
       Tasker 'mission' aborted
   Aborting autopilot at 80.125
       Tasker 'autopilot' aborted

----------------------


Documentation

http://ioflo.com/documentation/architecture-overview/

http://ioflo.com/documentation/user-guide/

License

MIT

Supported Python Versions

Python 2.6

Python 2.7

Python 3.4

ioflo's People

Contributors

smithsamuelm avatar terminalmage avatar s0undt3ch avatar aboe76 avatar

Watchers

James Cloos avatar DaiJing avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.