Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
886 commits
Select commit Hold shift + click to select a range
9a00ce2
Quick and dirty fix for the new gamepad API
BrianAdams May 27, 2014
3db162b
Corrected order for diag motors
BrianAdams May 28, 2014
83a785d
Set socket.io version to 0.9.17.
KevinGrandon May 29, 2014
515bf95
Merge pull request #229 from KevinGrandon/socketio_version
BrianAdams May 29, 2014
dc79a81
Updated Arch document with APIs
BrianAdams May 29, 2014
6671ed8
Primary visualization 3d orientation plugin. Disabled by default.
BrianAdams May 29, 2014
be2c3e5
Matching textview to latest plugin
BrianAdams May 29, 2014
dc5f970
fixed #216; Gamepad now works with fly-by-wire
BrianAdams Jun 2, 2014
094810c
fixed #226; compass triangle handles resize events
BrianAdams Jun 2, 2014
ed42f24
fixed #144; Removed faulty log helper
BrianAdams Jun 3, 2014
8272799
Remove unused avrdude lib.
samccone May 29, 2014
d3bc1a6
Remove bower components folder
samccone May 29, 2014
4266b7e
Vendor bower to make the install process painless.
samccone May 29, 2014
0ec0b4f
Abstract getting started into into a readme.
samccone May 29, 2014
55b7429
FlyByWire: Fixed ability to thrust while in flyby wire mode
samccone May 29, 2014
b723f42
spelling fix
depperson Jun 12, 2014
a9d38f4
spelling fix
depperson Jun 12, 2014
c146f91
spelling fix
depperson Jun 12, 2014
c7cd952
spelling fix
depperson Jun 12, 2014
1a0377c
Adding ready plugin
Jun 10, 2014
45203f1
Merge pull request #238 from depperson/feature-spellfix
codewithpassion Jun 17, 2014
12194c8
Implementing UI elements for depth and heading hold
codewithpassion Jun 18, 2014
d779733
Imporve apperence of indicators
codewithpassion Jun 18, 2014
23fa346
Adding laser indicator
codewithpassion Jun 18, 2014
a7b42fb
Fixing heading hold disable
codewithpassion Jun 20, 2014
98f1705
Updated the version package.json
BrianAdams Jun 19, 2014
8d03644
Fixed #241: Re-enabled board detect in arduino code
BrianAdams Jun 19, 2014
45c46eb
Increment package version to 2.5.1
BrianAdams Jun 20, 2014
1444830
Fixed #241: Reduced memory footprint for 328p
BrianAdams Jun 20, 2014
c5a7ca8
Improving the disabled state for Depth and heading hold and adding an…
codewithpassion Jun 20, 2014
12e2b65
cleanup hold indicators
codewithpassion Jun 20, 2014
d296d8c
Adding thrust factor to yaw correction according to walt
codewithpassion Jun 21, 2014
bf8f0a6
Fixing build problem of Arduino code
codewithpassion Jun 22, 2014
c072d89
Fix spelling in Arduino
codewithpassion Jun 23, 2014
d3daa8d
Fix spelling in Arduino 2
codewithpassion Jun 23, 2014
5aef965
Merge branch 'master' into feature/ui-feedback-for-depth-and-heading-…
codewithpassion Jun 23, 2014
cf662c2
Merge pull request #240 from codewithpassion/feature/ready-plugin
BrianAdams Jun 23, 2014
0d4d276
Merge pull request #243 from codewithpassion/feature/use-thrust-facto…
BrianAdams Jun 23, 2014
282707e
Fixed #239; Constrain motor signals to allowed range
BrianAdams Jun 23, 2014
e0b05ca
Merge branch 'bug-239'
BrianAdams Jun 23, 2014
6003fea
Fixed#234; swapped pitch/roll in MPU9150
BrianAdams Jun 23, 2014
99ec271
Merge branch 'bug/234'
BrianAdams Jun 23, 2014
c4a18ad
Fixed #175; Solved some crashes from the firmware uploads
BrianAdams Jun 24, 2014
571c15f
Merge branch 'bug/175'
BrianAdams Jun 24, 2014
9209b55
Adding scafolding for Plugin Manager and cleaning up registration for…
codewithpassion Jun 25, 2014
599152f
Adding Plugin Manager Settings section
codewithpassion Jun 25, 2014
958f35f
Initial plugin manager code. binding doesn't work right now
codewithpassion Jun 25, 2014
06a630e
Changed list api behavior to allow full speed.
BrianAdams Jun 25, 2014
264228c
Fixing binding for plugin manager
codewithpassion Jun 26, 2014
0ae0ea4
Adding enable/disable functionality for plugins with example of the T…
codewithpassion Jun 27, 2014
784fa21
Adding persistency of plugin manager settings. still some work to be …
codewithpassion Jun 30, 2014
02ed0ba
Fixing persistence of settings
codewithpassion Jun 30, 2014
f43f4b2
Cleanup code
codewithpassion Jun 30, 2014
0f346ad
cleaning up code and configuration management
codewithpassion Jun 30, 2014
c448804
Cleanup css on buttons
codewithpassion Jun 30, 2014
83d6395
Reenable touch detection, was disabled for testing
codewithpassion Jun 30, 2014
a0d9007
Updating code needed for the pugin-plugin manager configuration
codewithpassion Jun 30, 2014
01de9da
Adding readme to the plugin-manager and adding the example plugin to …
codewithpassion Jun 30, 2014
b55a9f5
Merge remote-tracking branch 'upstream/master' into feature/244-plugi…
codewithpassion Jun 30, 2014
06aac24
Revert "Fix spelling in Arduino 2"
codewithpassion Jun 30, 2014
dd0fb3d
Revert "Fix spelling in Arduino"
codewithpassion Jun 30, 2014
c9c4b0c
Revert "Fixing build problem of Arduino code"
codewithpassion Jun 30, 2014
9c4d5ac
Revert "cleanup hold indicators"
codewithpassion Jun 30, 2014
2f185ea
Revert "Improving the disabled state for Depth and heading hold and a…
codewithpassion Jun 30, 2014
d3358a8
Revert "Fixing heading hold disable"
codewithpassion Jun 30, 2014
282ea0b
Revert "Adding laser indicator"
codewithpassion Jun 30, 2014
3581bf8
Revert "Imporve apperence of indicators"
codewithpassion Jun 30, 2014
e9f4fa0
Revert "Implementing UI elements for depth and heading hold"
codewithpassion Jun 30, 2014
7842545
Merge remote-tracking branch 'upstream/master' into feature/ui-feedba…
codewithpassion Jun 30, 2014
8664047
Adding plugin scaffolding for heads up mehu
codewithpassion Jun 30, 2014
c47a288
Adding menu scaffolding
codewithpassion Jun 30, 2014
f8b4421
Cleanup
codewithpassion Jun 30, 2014
905305c
Cleanup of the settings tab (using colapsable sections) and moving th…
codewithpassion Jun 30, 2014
0dbfb45
Added link for nightly image
BrianAdams Jul 1, 2014
323f39e
Adjustments to #244 to allow portable plugins
BrianAdams Jul 1, 2014
b9f63b7
Merge branch 'pr/246'
BrianAdams Jul 1, 2014
d6bda04
Adding first shot of heads up code
codewithpassion Jul 1, 2014
6ff93f5
Lintjs fixes
BrianAdams Jul 1, 2014
7eb9e1d
Fix spelling in Arduino
codewithpassion Jun 23, 2014
62475a8
Moving to buttons as heads up display item
codewithpassion Jul 1, 2014
fe3b9e9
Tweaks to pr#248.
BrianAdams Jul 1, 2014
7e51686
Revert "Revert "Implementing UI elements for depth and heading hold""
BrianAdams Jul 1, 2014
b42baab
Revert "Revert "Imporve apperence of indicators""
BrianAdams Jul 1, 2014
a4ecdb2
Revert "Revert "Adding laser indicator""
BrianAdams Jul 1, 2014
265a7d0
Revert "Revert "Fixing heading hold disable""
BrianAdams Jul 1, 2014
9b2839d
Revert "Revert "Improving the disabled state for Depth and heading ho…
BrianAdams Jul 1, 2014
bf016d6
Revert "Revert "cleanup hold indicators""
BrianAdams Jul 1, 2014
ef939b2
Revert "Revert "Fixing build problem of Arduino code""
BrianAdams Jul 1, 2014
7957426
Revert "Revert "Fix spelling in Arduino""
BrianAdams Jul 1, 2014
23a4c3e
Revert "Revert "Fix spelling in Arduino 2""
BrianAdams Jul 1, 2014
fd18961
Fixed the merge issues in pr#248
BrianAdams Jul 1, 2014
479eb39
Initial commit
BrianAdams Jul 1, 2014
1b573bf
Moving heads up display registration to EventEmitter2
codewithpassion Jul 2, 2014
842f326
cleanup
codewithpassion Jul 3, 2014
d3581a7
Adding custom type for menu
codewithpassion Jul 3, 2014
09a051c
Improve custom binding
codewithpassion Jul 3, 2014
b7f97d7
Test with content changing button
codewithpassion Jul 3, 2014
ff5b6ad
Merge branch 'upstream-master' into feature/249-add-heads-up-menu
codewithpassion Jul 3, 2014
a9760b6
Fix #250 by using a different approach to find the url of the current…
codewithpassion Jul 3, 2014
8e781d1
Adding items to heads up menu
codewithpassion Jul 3, 2014
b73a34b
Cleaning up templating
codewithpassion Jul 5, 2014
1d12138
Changing from global variable to Cockpit as the event emitter
codewithpassion Jul 5, 2014
1706f2a
Fixing detection of touchcontroller
codewithpassion Jul 5, 2014
f3bff48
Cleanup formatting of index.ejs
codewithpassion Jul 5, 2014
45c01c4
Merge branch 'cleanup/move-evenemitter-into-cockpit' into feature/249…
codewithpassion Jul 5, 2014
f6f0607
Rework heads up menu
codewithpassion Jul 5, 2014
4dacb1e
Exploration into gamepad for heads up menu
codewithpassion Jul 6, 2014
4367cdc
Moving plugin loading into lib
codewithpassion Jul 6, 2014
70546df
Loading system-plugins
codewithpassion Jul 6, 2014
e027666
Adding client side input controller
codewithpassion Jul 6, 2014
b693349
Merge branch 'cleanup/move-evenemitter-into-cockpit' into feature/253…
codewithpassion Jul 6, 2014
25d5159
Fix loading of system plugins
codewithpassion Jul 6, 2014
8b4d7cd
Using mousetrap to bind keyboard
codewithpassion Jul 6, 2014
a41e25f
Updating mousetrap to version 1.4.6
codewithpassion Jul 6, 2014
0a52446
Moving light commands to input controller
codewithpassion Jul 6, 2014
afbb52e
Example
codewithpassion Jul 6, 2014
dcda34b
Adding BUTTON_UP for gamepad
codewithpassion Jul 6, 2014
e451e55
Multi binding for mousetrap
codewithpassion Jul 6, 2014
a0268ba
fixing spelling and null checks
codewithpassion Jul 6, 2014
5d192cf
Adding keycombinations for gamepad
codewithpassion Jul 6, 2014
f6ce883
Merge branch 'feature/253-centralised-input-controller' into feature/…
codewithpassion Jul 7, 2014
f5e1f02
Adding menue toggle with gamepad
codewithpassion Jul 6, 2014
9beecb0
Cycle through the menu items
codewithpassion Jul 6, 2014
d5c681e
Triggering callback for menu items on key up
codewithpassion Jul 7, 2014
9664f17
Moving RovPilot to input controller (except gamead axis)
codewithpassion Jul 9, 2014
f17b035
Moving other plugins to input controller
codewithpassion Jul 9, 2014
1989844
issues #101; Programmer code that can be loaded on ATMEGA
BrianAdams Jul 9, 2014
2c61281
Merge pull request #251 from codewithpassion/bugfix/250-determin-jsFi…
BrianAdams Jul 9, 2014
a77b868
Merge pull request #252 from codewithpassion/cleanup/move-evenemitter…
BrianAdams Jul 9, 2014
c35b864
Merge remote-tracking branch 'upstream/master' into feature/249-add-h…
codewithpassion Jul 9, 2014
a28d82a
Merge remote-tracking branch 'upstream/master' into feature/253-centr…
codewithpassion Jul 9, 2014
5f4d604
Cleanup keyped assignment
codewithpassion Jul 9, 2014
0499b67
Cleanup keyboard settings
codewithpassion Jul 9, 2014
80c6143
Move axis to input controller
codewithpassion Jul 10, 2014
6624d3a
Fixing gamepad axis allocation
codewithpassion Jul 10, 2014
1eb39f2
Cleanup of assignment code
codewithpassion Jul 10, 2014
e0a5ccc
Adding camera snapshot function to camera mock
codewithpassion Jul 10, 2014
c7b7867
Cleanup input controller
codewithpassion Jul 10, 2014
23575c4
Cleanup
codewithpassion Jul 10, 2014
dcaf5cf
Refactoring keyboard/gmaepad controllers into their own files
codewithpassion Jul 10, 2014
7f22f5d
Adding unregister function for controls and moving tank control over …
codewithpassion Jul 10, 2014
4f7db76
Enable to register/unregister multiple commands at once
codewithpassion Jul 10, 2014
5e070d8
Moving rovpilot over to a single register call for input controls
codewithpassion Jul 10, 2014
17277ec
cleaning up fly-by-wire
codewithpassion Jul 10, 2014
5180889
Removing GAMEPAD global variable and moving it into the gamepad object.
codewithpassion Jul 10, 2014
a583e11
Restoring cockpit.js file header
codewithpassion Jul 10, 2014
f61b96b
Intruducing namespaces for input controller and symplifying naming
codewithpassion Jul 10, 2014
62881c8
Abstracting the input registration object into a command to have bett…
codewithpassion Jul 10, 2014
ffa2039
Adding readme for input controller
codewithpassion Jul 10, 2014
cbf664d
Fixing scrutinizer issues
codewithpassion Jul 10, 2014
3e7d57d
Adding settings screen for input controll configuration - only read-o…
codewithpassion Jul 10, 2014
7aaa3ce
Merge branch 'feature/253-centralised-input-controller' into feature/…
codewithpassion Jul 10, 2014
df6986a
Fixing merge artefact
codewithpassion Jul 10, 2014
62d573b
Check for duplicates and warn if there are any
codewithpassion Jul 10, 2014
67d23c3
Merge branch 'feature/253-centralised-input-controller' into feature/…
codewithpassion Jul 10, 2014
f9ec993
Reassign button mapping
codewithpassion Jul 10, 2014
adcc176
Cleanup unneeded comment
codewithpassion Jul 10, 2014
5e0c9ac
Adding 'move previous' in heads up menu
codewithpassion Jul 10, 2014
80d9089
Adding thrust level increment as it is removed from direct gamped access
codewithpassion Jul 10, 2014
d52bc66
enable multi register for heads up menu
codewithpassion Jul 10, 2014
7d553af
all the <plugin>.listen() functions are now called via the cockpit.js…
codewithpassion Jul 11, 2014
def5a3f
Fixes #249
codewithpassion Jul 11, 2014
fcfa6b9
Fixes #253
codewithpassion Jul 11, 2014
7cb436c
Making thrustfactor a ko.observalbe instead of using the html element…
codewithpassion Jul 11, 2014
75935fb
Laser/depth/heading hold buttons are bound to functions rather than u…
codewithpassion Jul 11, 2014
b6eb1b6
remove example stuff
codewithpassion Jul 11, 2014
ec89eb3
Cleanup appending of controls
codewithpassion Jul 11, 2014
8f30256
Cleanup
codewithpassion Jul 11, 2014
ef41468
Change css class change to ko binding for laser depth and heading hold
codewithpassion Jul 11, 2014
7b81ad8
Moving rovpilot ui items into templates and lode them from a file
codewithpassion Jul 11, 2014
fa5874b
Gamepad visible
codewithpassion Jul 11, 2014
d568abe
adding ui-templates file for capestatus
codewithpassion Jul 11, 2014
8ec8e53
connection status
codewithpassion Jul 11, 2014
9516d99
Move the other capestatus to ko bindings
codewithpassion Jul 11, 2014
9573798
Brightnessindicator
codewithpassion Jul 11, 2014
09a07db
Servo tilt anglle
codewithpassion Jul 11, 2014
3aa9f06
Use template for servo tilt
codewithpassion Jul 11, 2014
f19a6f6
Tilt style moved to template. added run time as binding
codewithpassion Jul 11, 2014
cf1b420
Cleanup
codewithpassion Jul 11, 2014
21f6de9
Adding settings page with battery model selection
codewithpassion Jul 11, 2014
06b5962
Battery type selection prototyping
codewithpassion Jul 11, 2014
266155a
Adding new Batteries
codewithpassion Jul 11, 2014
e34abe1
Validating batteries on adding
codewithpassion Jul 12, 2014
9b656ca
Validation of min/max voltage
codewithpassion Jul 12, 2014
8bfbc42
Simplify battery settings
codewithpassion Jul 12, 2014
3abf0f5
Rename config section to Battery config
codewithpassion Jul 12, 2014
36cf7d6
Adding REST service for batteries and conect the UI
codewithpassion Jul 14, 2014
b4b0b8c
Deleting batteries
codewithpassion Jul 14, 2014
3e64aae
Connecting battery widget to selection
codewithpassion Jul 15, 2014
e65d0e3
cleanup
codewithpassion Jul 15, 2014
b7386bf
Minor tweaks to the pr
BrianAdams Jul 15, 2014
8c40eb5
Merge branch 'pr/254'
BrianAdams Jul 15, 2014
253dc6b
Fixed relative path of html file
BrianAdams Jul 15, 2014
a8c7363
Resolved merge conflict
BrianAdams Jul 15, 2014
265995e
Merge branch 'upstream-master' into cleanup/rovpilot-and-capestatus
codewithpassion Jul 15, 2014
b3b2c80
resolving merge conflicts
codewithpassion Jul 15, 2014
50c25fc
Adding activate/deactivate feature to the input-controller to simplif…
codewithpassion Jul 15, 2014
d63c7d8
Fix spelling
codewithpassion Jul 15, 2014
785a375
Fix example in readme
codewithpassion Jul 15, 2014
0afb13a
Adding knockout.validation to bower components
codewithpassion Jul 16, 2014
99c12c0
Revert "Adding knockout.validation to bower components"
codewithpassion Jul 16, 2014
af7656d
Adding knockout.validation to bower components
codewithpassion Jul 16, 2014
f261ba0
Fixing merge issue
codewithpassion Jul 16, 2014
9fe6d39
Fix breaking code from commit 905305cf
codewithpassion Jul 16, 2014
73d725d
Moving the plugin-manager over to the system plugins as it is part of…
codewithpassion Jul 17, 2014
2c0f677
Fixing testview
codewithpassion Jul 17, 2014
445eb32
part of issue #264; deleted arduino folder
BrianAdams Jul 21, 2014
6b3c1d5
fixed #265; missing code during refactor
BrianAdams Jul 23, 2014
41435a8
Prep dashboard for move to new repo
BrianAdams Jul 25, 2014
3dc7dcb
Getting read to break dashboard to new repo
BrianAdams Jul 25, 2014
1490c70
Moved dashboard to its own repo
BrianAdams Jul 25, 2014
16ceb6b
Updated references with cockpit moved to new location
BrianAdams Jul 25, 2014
3348633
Fixed the rest of the references related to moving the location of co…
BrianAdams Jul 27, 2014
4ddf3ce
Merge branch 'feature/arduinoescprogrammer'
BrianAdams Jul 27, 2014
5cac431
Moved Arduino project to Arduino repo
BrianAdams Jul 27, 2014
8e45e87
Added bower reference
BrianAdams Aug 3, 2014
6b9256f
Removed Bower which should be global install
BrianAdams Aug 3, 2014
0a224e5
Merge branch 'pr/260'
BrianAdams Aug 4, 2014
0154a98
Added ref for textview. Removed debug msg
BrianAdams Aug 4, 2014
969995c
Merge branch 'pr/261'
BrianAdams Aug 4, 2014
4045e11
Merge pull request #263 from codewithpassion/cleanup/move-plugin-mana…
BrianAdams Aug 4, 2014
8a7a408
Fixed typo
BrianAdams Aug 4, 2014
0707b1b
Merge branch 'master' of https://github.com/OpenROV/openrov-software
BrianAdams Aug 4, 2014
977a68c
merged #232; Added samccone fixes
BrianAdams Aug 5, 2014
40ae16c
Initial submit of the topdown compass plugin
BrianAdams Aug 5, 2014
9792745
Initial commit of plugin
BrianAdams Aug 7, 2014
28e8a91
Fixed #270; you can now always click the back button
BrianAdams Aug 7, 2014
4927189
Fully wired client side
BrianAdams Aug 8, 2014
0e49b8d
Fix bower script to include path to npm installed bower and pass the …
codewithpassion Aug 9, 2014
fd807db
dev-dependencies is called devDependencies now
codewithpassion Aug 9, 2014
101e472
Listing and download/install of plugin works
BrianAdams Aug 9, 2014
4e3e1a5
Going ahead and installing bower locally
BrianAdams Aug 10, 2014
71d40cc
Merge pull request #271 from codewithpassion/fix/bower-fix
BrianAdams Aug 11, 2014
0f32e7f
Filter the search content
BrianAdams Aug 11, 2014
5d3ce6e
Github integration is working
BrianAdams Aug 12, 2014
eef47cb
removed redundant title
BrianAdams Aug 12, 2014
f0e2465
Added plugins references
BrianAdams Aug 13, 2014
545ea70
Merge branch 'feature/downloadplugins'
BrianAdams Aug 13, 2014
0103345
Added ability to uninstall plugins
BrianAdams Aug 13, 2014
dce972d
Added hooks for downloadable plugins
BrianAdams Aug 14, 2014
0f35cc2
Fixed buggered code
BrianAdams Aug 22, 2014
7fce547
Fixed bug 276; mkdir blocks until required directory ready
BrianAdams Aug 25, 2014
40e6e82
Merge branch 'bug/276'
BrianAdams Aug 25, 2014
026a02e
Fixes #269; moved all config to the etc file
BrianAdams Aug 25, 2014
edb4f8a
Merge branch 'bug/269'
BrianAdams Aug 25, 2014
9a5cc52
fixed #268; moved fps back in to main line of footer
BrianAdams Aug 25, 2014
5d4d748
Merge branch 'bug/268'
BrianAdams Aug 25, 2014
0a10fce
fixed #236; Keep checking for Arduino version and capabilities
BrianAdams Sep 2, 2014
25db527
Merge branch 'bug/236'
BrianAdams Sep 2, 2014
a935618
Initial commit for the program logic
BrianAdams Sep 6, 2014
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Binary file removed .DS_Store
Binary file not shown.
41 changes: 41 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so

# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip

# Logs and databases #
######################
*.log
*.sql
*.sqlite

# OS generated files #
######################
.DS_Store*
ehthumbs.db
Icon?
Thumbs.db


node_modules
src/capture
temp
.idea
etc/rovconfig.json
7 changes: 7 additions & 0 deletions .scrutinizer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
tools:
js_hint:
use_native_config: false
config:
laxcomma: true
filter:
excluded_paths: [src/static/bower_components/*,src/static/js/libs/*, dashboard/src/static/js/libs/*, dashboard/src/plugins/99_software/public/js/*.min.js, dashboard/src/plugins/99_software/public/js/jquery.ui.widget.js, dashboard/src/plugins/99_software/public/upload/js/vendor/jquery.ui.widget.js, src/plugins/touchcontroller/public/js/gamecontroller.js]
3 changes: 3 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
language: node_js
node_js:
- 0.8
142 changes: 142 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
# Contributing to this project

Please take a moment to review this document in order to make the contribution
process easy and effective for everyone involved.

Following these guidelines helps to communicate that you respect the time of
the developers managing and developing this open source project. In return,
they should reciprocate that respect in addressing your issue or assessing
patches and features.


## Using the issue tracker

The issue tracker is the preferred channel for [bug reports](#bugs),
[features requests](#features) and [submitting pull
requests](#pull-requests), but please respect the following restrictions:

* Please **do not** use the issue tracker for personal support requests (use
[OpenROV Forums](http://openrov.com/forum)).

* Please **do not** derail or troll issues. Keep the discussion on topic and
respect the opinions of others.


<a name="bugs"></a>
## Bug reports

A bug is a _demonstrable problem_ that is caused by the code in the repository.
Good bug reports are extremely helpful - thank you!

Guidelines for bug reports:

1. **Use the GitHub issue search** &mdash; check if the issue has already been
reported.

2. **Check if the issue has been fixed** &mdash; try to reproduce it using the
latest `master` or development branch in the repository.

3. **Isolate the problem** &mdash; create a [reduced test
case](http://css-tricks.com/6263-reduced-test-cases/) and a live example.

A good bug report shouldn't leave others needing to chase you up for more
information. Please try to be as detailed as possible in your report. What is
your environment? What steps will reproduce the issue? What browser(s) and OS
experience the problem? What would you expect to be the outcome? All these
details will help people to fix any potential bugs.

Example:

> Short and descriptive example bug report title
>
> A summary of the issue and the browser/OS environment in which it occurs. If
> suitable, include the steps required to reproduce the bug.
>
> 1. This is the first step
> 2. This is the second step
> 3. Further steps, etc.
>
> `<url>` - a link to the reduced test case
>
> Any other information you want to share that is relevant to the issue being
> reported. This might include the lines of code that you have identified as
> causing the bug, and potential solutions (and your opinions on their
> merits).


<a name="features"></a>
## Feature requests

Feature requests are welcome. But take a moment to find out whether your idea
fits with the scope and aims of the project. It's up to *you* to make a strong
case to convince the project's developers of the merits of this feature. Please
provide as much detail and context as possible.


<a name="pull-requests"></a>
## Pull requests

Good pull requests - patches, improvements, new features - are a fantastic
help. They should remain focused in scope and avoid containing unrelated
commits.

**Please ask first** before embarking on any significant pull request (e.g.
implementing features, refactoring code, porting to a different language),
otherwise you risk spending a lot of time working on something that the
project's developers might not want to merge into the project. The OpenROV [Software Forum](http://openrov.com/forum/categories/software/listForCategory) is a great place to discuss.

Please adhere to the coding conventions used throughout a project (indentation,
accurate comments, etc.) and any other requirements (such as test coverage).

Follow this process if you'd like your work considered for inclusion in the
project:

1. [Fork](http://help.github.com/fork-a-repo/) the project, clone your fork,
and configure the remotes:

```bash
# Clone your fork of the repo into the current directory
git clone https://github.com/<your-username>/<repo-name>
# Navigate to the newly cloned directory
cd <repo-name>
# Assign the original repo to a remote called "upstream"
git remote add upstream https://github.com/<upstream-owner>/<repo-name>
```

2. If you cloned a while ago, get the latest changes from upstream:

```bash
git checkout <dev-branch>
git pull upstream <dev-branch>
```

3. Create a new topic branch (off the main project development branch) to
contain your feature, change, or fix:

```bash
git checkout -b <topic-branch-name>
```

4. Commit your changes in logical chunks. Please adhere to these [git commit
message guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
or your code is unlikely be merged into the main project. Use Git's
[interactive rebase](https://help.github.com/articles/interactive-rebase)
feature to tidy up your commits before making them public.

5. Locally merge (or rebase) the upstream development branch into your topic branch:

```bash
git pull [--rebase] upstream <dev-branch>
```

6. Push your topic branch up to your fork:

```bash
git push origin <topic-branch-name>
```

7. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/)
with a clear title and description.

**IMPORTANT**: By submitting a patch, you agree to allow the project owner to
license your work under the same license as that used by the project.
13 changes: 13 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
License
-------

MIT License

Copyright (C) 2013 OpenROV Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

39 changes: 39 additions & 0 deletions OpenROV Plugin Architecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
>The plugin architecure for OpenROV are the conventions used to extend how the the rov and its software behave.

##Goals for plugins:

1. **Isolate all functions to encourage hacking.** Community members will take more risks and make more amazing things if area's they want to improve such as how lights work won't impact areas they may be less comfortable with such as motor control.
2. **Have a single plugin module that cuts across all layers of the ROV architecture** as needed that can be versioned and deployed as a single package.
3. **Keep each layer of the plugins as native to that layer of the ROV architecture as possible.** A plugin system that takes a lot of memory but is well abstracted at the browser level would probably be a disaster in the memory constrained, embedded program feel of the Arduino.
4. **Allow the community to make plugins available without having to submit them to OpenROV** to encourage the development of new and conflicting ideas of how ROVs operate, and to open the door for other ROV projects to adopt all or part of what the OpenROV community has developed in their projects.

##Approach:

I would like to call out Laurent Eschenauer and his [ardrone-webflight](https://github.com/eschnou/ardrone-webflight) project that so heavily inspired the javascript and node plugin solution. If you are using ardrone you should check it out.

###Plugin Package
The plugins are directory based and intended to be listed and managed using twitter's bowser web package manager.

- PluginName\
- bower.json (bower.io metadata about plugin)
- index.js (node.js plugin)
- public\
- css\
- PluginName.css
- js\
- PluginName.js (browser plugin)
- microcontroller\
- PluginName.h
- PluginName.cpp (Arduino plugin)
- Supportfiles.h
- Supportfiles.cpp

###Browser Plugin
The browser plugin is a two part plug-in. The node.js process uses a templating engine to crawl the plugin directory and find all of the plugins. It then inserts scripts tags for the .js files and tags for the .css files in to the page being loaded.
The .js files that are loaded have a convention where they register themselves as javascript functions in a global `plugin[]` variable. The plugin's are activated by a loop in the browser javascript code that instantiates each item in the global `plugin[]` variable.

###Node.js Plugin
When the node.js process starts, it crawls the configured plugin directly for index.js files in each folder it fines. Is then simply loads the .js file.

###Arduino Plugin
The firmware-install shell script copies the base source code to a temporary folder. It then crawls the plugin folder for the Arduino code, copies that code in to the same temporary folder and then injects code to register the plugin in to the plugins.cpp file which get statically linked during the compile process. Each plugin has a convention based on deriving from the device class. Any device class simply extends the hooks Arduino programs typically use, so it exposes a device_loop() and device_setup() method.
Empty file removed README
Empty file.
138 changes: 138 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
[![Views in the last 24 hours](https://sourcegraph.com/api/repos/github.com/OpenROV/openrov-software/counters/views-24h.png)](https://sourcegraph.com/github.com/OpenROV/openrov-software)
[![Build Status](https://secure.travis-ci.org/OpenROV/openrov-software.png?branch=master)](http://travis-ci.org/OpenROV/openrov-software)
[![Code Climate](https://codeclimate.com/github/OpenROV/openrov-software.png)](https://codeclimate.com/github/OpenROV/openrov-software)
[![Coverage Status](https://coveralls.io/repos/OpenROV/openrov-software/badge.png)](https://coveralls.io/r/OpenROV/openrov-software)
[![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/OpenROV/openrov-software/badges/quality-score.png?s=c24130cbf17aaa23f2680e3b45a0ec675ef2037f)](https://scrutinizer-ci.com/g/OpenROV/openrov-software/)
[![Code Coverage](https://scrutinizer-ci.com/g/OpenROV/openrov-software/badges/coverage.png?s=e356e3047940fb7ea47e36477c6064e23fee12c0)](https://scrutinizer-ci.com/g/OpenROV/openrov-software/)

OpenROV Cockpit
================

"[OpenROV](http://openrov.com/) is a DIY telerobotics community centered around underwater exploration & adventure." One goal of OpenROV is to have onboard video for live viewing as the user operates the ROV. Enter: OpenROV Cockpit.

Getting started
---------------

**If you just getting started and want to have working environment for the OpenROV Cockpit, we recommend that you start with using our last stable release from our [releases page](https://github.com/OpenROV/openrov-software/releases). If you want to explore building your own image from scratch, refer to our
[OpenROV disk Image](https://github.com/OpenROV/openrov-image/blob/master/README.md) project. The latest development image (from master) can be downloaded from http://54.187.8.25:8080/job/OpenROV-Image_BuildImage_master/.

Introduction
------------

We designed the onboard video platform using several key technologies:

- [MJPEG_Streamer](https://code.google.com/p/mjpg-streamer/)
- [Node.js](http://nodejs.org/)
- [Socket.io](http://socket.io/)

Combining these great technologies provides a lot of power and room for future growth. But is also provides well documented means to extend OpenROV. With Node.js and Socket.io, not only are we able to stream video to a web browser by updating an image, but we are also able to control the ROV and view valuable sensor information. This is just the beginning.

Key Related Projects
----------------

* The firmware for the arduino can be found in [openrov/openrov-software-arduino](https://github.com/OpenROV/openrov-software-arduino) in the /OpenROV project.
* The dashboard project can be found in [openrov/openrov-dashboard](https://github.com/OpenROV/openrov-dashboard)

Note on Repository Branches
---------------------------

The "master" branch is the most current development branch of the code. All work is done outside and submited as pull requests that *should* be working before they are merged. There will also be a `<release>`-maintanence branch that has the code from the last stable release. There may also be a `<release>`-alpha|beta|rc1 which is the next release that is being stabalized. This will more than likely change as committers come and go, but that it what it looks like today.

Requirements
------------
- BeagleBone: [http://beagleboard.org/bone](http://beagleboard.org/bone)
- USB webcam: we're using the Genius F100 HD
- Ubuntu for BeagleBone: [http://elinux.org/BeagleBoardUbuntu#Demo_Image](http://elinux.org/BeagleBoardUbuntu#Demo_Image) or [https://github.com/codewithpassion/openrov-image](https://github.com/codewithpassion/openrov-image)
- mjpg-streamer: [http://sourceforge.net/projects/mjpg-streamer/](http://sourceforge.net/projects/mjpg-streamer/)
- Node.js : [http://nodejs.org/](http://nodejs.org/)
- Socket.io: [http://socket.io/](http://socket.io/)

Installation
------------

Step 1
------

Follow the instructions from our image project to get a starting image: https://github.com/OpenROV/openrov-image. The default user is *rov* and password is *OpenROV*

Step 2
------

Go ahead and start up the image in the beaglebone. If you connect the rov to a router it will use DHCP to get an address. You many need to login to your router and examine the dhcp logs to figure out what IP was assigned. If you connect directly to a laptop, a static IP of 192.168.254.1 is used.
Go ahead and SSH on to you rov

a) ssh rov@<address of rov>

Step 3
------

Customize the name of the image to match your rov#.


Change from "openrov" (without quotes) to "openrov-XXXX" (without quotes) - where XXXX is your serial number.

vi /etc/hosts
exit

Step 4
------

Upload the right firmware on to the arduino that is driving the motors and sensors. The source code for the arduino is actually installed in the git repo on the beaglebone. The beaglebone has a full arduino development environment and the ability to upload the firmware to the arduino.

Since there are multiple versions of the ROV with multiple possible configurations you have to first tailor the options for the firmware to match your ROV. It defaults to the stock installation for the *current* shipping ROV kit.

a) from the ssh session: sudo pico /opt/openrov/arduino/OpenROV/Aconfig.h

b) put a 1 for the options you have, a 0 if you don't have the option and save. For most folks you don't need to do anything because the type of board will be automatically detected. In case you could

c) Login to the web session for the rov, choose settings, and select the upload firmware to arduino option.

Updating
------------
NOTE: This is changing and may not be working properly.
The easiest way to upgrade your installation is to ssh on to

1) ssh on to your rov

2) cd /opt/openrov/cockpit

3) sudo ./update.sh

This will go to the github repository and pull the latest code. You may need to reboot after the update. There is a known issue where the serial.io project sometimes fails to compile. You can ignore that, but you may have to try again if it aborts the update.

Plugins
------------
You can create your own plugins and share them with the community. Take a look at our [openrov-grunt-init-plugin](https://github.com/openrov/openrov-grunt-init-plugin) project.


How to Contribute
------------

Contributions require that you sign a [CLA](http://wiki.openrov.com/index.php/Special:SignDocument?doc=9) before the project can accept your pull requests.

1) Fork the project in github

2) Add an issue to the issue list for the changes you want to make. Browser the issues lists for many of the fixes and enhancement requests if your looking for ideas.

3) Make your changes and or fixes.

4) Test them locally on your ROV or using the mock framework for node if you don't have one.

5) Send a pull request back to the Master repository.

More details can be found on the [OpenROV Wiki](http://wiki.openrov.com/index.php/Contributing).

Someone on the team will review the pull request and ensure the changes work on the ROVs before approving the pull request.

License
-------

MIT License

Copyright (C) 2013 OpenROV Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Loading