Andrew Stewart
372c384b11
Fully iterate over objects, rather than just props
2015-02-23 12:57:57 -08:00
Andrew Stewart
6e3d7c6667
Add helpers to replace some lodash functionality
...
Not a 1:1, and probably much slower than Lodash's ultra-optimised
implementations, but we do enough I/O that it's not really relevant,
is it?
2015-02-23 08:38:12 -08:00
Daniel Lamb
ccebab4cc2
The register method should return existing modules
2015-02-20 11:25:31 -08:00
Andrew Stewart
618aa8212d
Remove lodash
2015-02-20 11:15:34 -08:00
Andrew Stewart
b17542061b
Extract monkey-patches
2015-02-20 11:12:26 -08:00
Andrew Stewart
5ac95161e2
Correct edge case with 'module' key
2015-02-19 12:44:35 -08:00
edgarsilva
3d2842567b
User API#start instead of API#listen in cylon#api
2015-01-30 14:45:50 -06:00
edgarsilva
cfd37e9621
Updated README with cylon-api-socketio plugin reference.
2015-01-30 13:56:14 -06:00
edgarsilva
e2f617c995
Fixes validation issue in initializer constructor, `!module` should be `mod`
2015-01-29 13:51:05 -06:00
deadprogram
64a0d76af1
Extract deprecation warning into separate function
2015-01-22 19:25:45 -08:00
Andrew Stewart
147816b366
First crack at removing seperate Device/Connection initialization
2015-01-22 14:41:58 -08:00
Andrew Stewart
d56f9bc53f
Add better error checking for Robot#halt
2015-01-21 08:56:13 -08:00
Andrew Stewart
8272efe060
Robot log messages should contain the bot name
2015-01-20 19:29:40 -08:00
Andrew Stewart
5354102c2e
If bad start detected, shut down the Robot
2015-01-20 19:18:52 -08:00
deadprogram
6ac3cad7c1
Extract even more of function to DRY up code
2015-01-17 21:35:40 -08:00
deadprogram
5cea07602a
Extract function to DRY up code
2015-01-17 21:29:07 -08:00
deadprogram
a7e8caf19d
Extract robot var init into separate function
2015-01-17 15:48:45 -08:00
Andrew Stewart
8fd6f8a99e
Generate lodash script for only methods we use
2015-01-15 09:33:18 -08:00
Andrew Stewart
4b377b2e65
Streamline Logger a bit
2015-01-13 10:43:20 -08:00
Andrew Stewart
b72864ca75
More specific log message for missing HTTP API
2015-01-13 10:13:16 -08:00
Andrew Stewart
b8766c4607
Add custom Lo-Dash build, remove from dependencies
2015-01-08 12:04:52 -08:00
Andrew Stewart
9165ab36b4
Extract API from core
2015-01-08 10:02:14 -08:00
Andrew Stewart
eccdde81a9
Update copyright years
2015-01-07 12:58:50 -08:00
Andrew Stewart
8065644b4e
Add support for nested device details inside conn
...
e.g.
connections: {
loopback: {
adaptor: "loopback",
devices: {
ping: { driver: "ping", pin: 1 }
}
}
}
In the event of a name collision between the `devices` hash and a nested
device, the nested device will 'win'.
2015-01-07 10:21:51 -08:00
Andrew Stewart
cf0d24f785
Add API event publication
...
This update gives Cylon support for the latest changes to the CPPP-IO
spec.
2015-01-05 12:20:53 -08:00
Loren West
34ba1fedc5
Fixed lint issues
2014-12-31 13:29:23 -08:00
Loren West
5d2fc21fab
Support asynchronous commands
2014-12-31 13:29:23 -08:00
Andrew Stewart
13c388fbf7
Simplify path for method proxying in drivers
2014-12-18 13:19:58 -08:00
Andrew Stewart
280687099c
Revert change to direct method binding, breaks stuff
...
This is Probably Bad and should be revisited in the future.
2014-12-18 13:15:30 -08:00
Andrew Stewart
7109a9d303
Fix API errors, add slight simplifications
2014-12-17 16:51:48 -08:00
Andrew Stewart
b5907ccd36
Correct iteration key issue
2014-12-17 16:36:48 -08:00
Andrew Stewart
6ebbdf0eab
Use forIn to ensure Object iteration is performed
2014-12-17 16:31:26 -08:00
Andrew Stewart
c9e16fe8c2
Use _.result to get commands from options.
2014-12-17 15:07:03 -08:00
Andrew Stewart
6cbf2db122
Lodashify
2014-12-17 14:45:57 -08:00
Andrew Stewart
34ed6cea02
Add Lo-Dash + loader
2014-12-17 13:00:59 -08:00
Andrew Stewart
ac6b09fe50
Clean up lib for JSHint
2014-12-15 11:15:29 -08:00
Andrew Stewart
9fe92967bb
Make use of `thisArg` instead of #bind
2014-11-30 15:17:57 -08:00
Andrew Stewart
3eb1da8481
Simplify halt code in Robot slightly
2014-11-30 11:47:33 -08:00
Andrew Stewart
29583c0bd5
Add back debug logging for device/connection start
2014-11-28 14:42:26 -08:00
Andrew Stewart
4f850d5e9e
Support passing config to Logger#setup again
2014-11-28 09:37:44 -08:00
Andrew Stewart
ca8e22f1e2
Fluent #device/#connection update
...
Now pass name, then object of details
#device({ name: 'ping', driver: 'ping' });
// vs
#device('ping', { driver: 'ping' });
2014-11-26 09:33:19 -08:00
Andrew Stewart
9047797c9f
Deprecate 'connection' and 'device' Robot opts
2014-11-25 14:43:57 -08:00
Andrew Stewart
15c9b96333
Extract out Connection/Device initialization
...
Simple extraction out of Connection/Device initialization code inside
Robot.
This yields an interesting boon, however - this is now a valid Cylon
program:
var Cylon = require('cylon');
Cylon
.robot()
.connection({ name: 'loopback', adaptor: 'loopback' })
.device({ name: 'ping', driver: 'ping' })
.on('ready', function(bot) {
console.log("Bot working!");
every(1000, function() {
console.log(bot.ping.ping());
})
});
Cylon.start();
For those that prefer imperative programs with Cylon, this is a nice
syntax addition.
2014-11-20 08:43:08 -08:00
Andrew Stewart
668acf1e18
Add support for specifying API configuration to Cylon#api
2014-11-14 13:05:16 -08:00
Andrew Stewart
25119c170f
Refer to correct element for proxying
2014-11-14 11:34:37 -08:00
Andrew Stewart
5ff743a4c5
Correct API inconsistency
2014-11-14 11:06:21 -08:00
Andrew Stewart
38bf5fdfed
Refer to Adaptor instances as 'Connection'
2014-11-14 10:56:45 -08:00
Andrew Stewart
39f9c8b637
Fix up API errors
2014-11-11 13:41:09 -08:00
Andrew Stewart
ce87a355f0
Modifications, fix test suite
2014-11-11 11:41:23 -08:00
Andrew Stewart
e67ae19882
Remove Connection and Device classes
...
They are now functions that return instances of Adaptors and Drivers
respectively.
2014-11-10 16:06:10 -08:00
Andrew Stewart
f1b982fedd
Support providing connections/devices as an object
...
Before:
connections: [
{ name: 'loopback', adaptor: 'loopback', port: 13 }
],
Now:
connections: {
loopback: { adaptor: 'loopback', port: 13 }
}
Array syntax still works, but has been marked as deprecated.
2014-11-10 10:52:55 -08:00
Andrew Stewart
4c539ab9d1
Better configuration for TDR test mode
2014-11-06 09:48:21 -08:00
Andrew Stewart
277d4a51ee
Correct API errors
2014-11-06 09:10:56 -08:00
Andrew Stewart
e0d3ffbe22
Bump version to "0.20.1"
2014-11-05 15:56:37 -08:00
Andrew Stewart
e9f73228f1
Move requires around to make Browserify cooperate
2014-11-05 15:24:50 -08:00
Andrew Stewart
c43978bea2
Add logging for module registration
2014-11-05 14:26:18 -08:00
Andrew Stewart
60e89c9671
If key supplied in hash, use it to find module in Registry
2014-11-05 10:04:45 -08:00
Andrew Stewart
966f8aa530
s/Repository/Registry/g
2014-10-31 14:14:02 -07:00
Andrew Stewart
d62673bc8a
Stop using extraParams
2014-10-31 13:50:22 -07:00
Andrew Stewart
1c922f02c1
Address bugs w/ connections
2014-10-31 13:48:05 -07:00
Andrew Stewart
44075a1a30
Hook Repository class up, change-up module loading
...
Cylon modules were previously styled something like this:
module.exports = {
adaptor: function(args) {
return new Adaptor(args);
},
register: function(robot) {
Cylon.Logger.debug("Registering Firmata adaptor for " + robot.name);
robot.registerAdaptor('cylon-firmata', 'firmata');
GPIO.register(robot);
I2C.register(robot);
}
};
Now, they should be something more like this:
module.exports = {
adaptors: ['firmata'],
dependencies: ['cylon-gpio', 'cylon-i2c'],
adaptor: function(args) {
return new Adaptor(args);
},
};
2014-10-30 13:29:06 -07:00
Andrew Stewart
63e43cc553
Repository module added, not integrated yet
2014-10-29 15:25:35 -07:00
Andrew Stewart
0f59645fd7
Move Logger configuration into Cylon#config
2014-10-28 15:53:03 -07:00
Ron Evans
903f8a9518
Merge pull request #235 from hybridgroup/add/log-levels
...
Add log levels
2014-10-28 17:38:00 +00:00
Ron Evans
3ceb6cda85
Merge pull request #234 from hybridgroup/workMode
...
Work mode configuration
2014-10-28 17:37:24 +00:00
Andrew Stewart
a8b16a3469
Proxy all opts that aren't already used internally
2014-10-27 13:40:38 -07:00
Andrew Stewart
2cb2fc232d
Basic log level implementation
2014-10-27 08:59:36 -07:00
Andrew Stewart
d65742bb49
Generate code! It's what the cool kids are doing!
2014-10-24 14:54:56 -07:00
Andrew Stewart
f5de644af7
Not sure why these were classes to begin with
2014-10-24 14:02:03 -07:00
Andrew Stewart
3f9a7cf148
Fixup some Browserify errors, indicate support in README
2014-10-21 11:31:22 -07:00
Andrew Stewart
9be0f779ae
Update dependencies
2014-10-20 14:38:41 -07:00
Andrew Stewart
157fcec25e
Avoid creating functions inside loop, properly terminates now
2014-10-14 10:25:58 -07:00
Adrian Zankich
b80ad6e167
start the robots in parallel
2014-10-04 00:56:08 -07:00
Adrian Zankich
d4ed3117f3
enable async or sync work modes
2014-10-03 23:07:07 -07:00
Andrew Stewart
e74675d65a
Small fixes to robot.js
2014-10-02 11:35:33 -07:00
Andrew Stewart
a4498d0281
Reduce duplication in Basestar event proxying code
2014-10-02 11:14:19 -07:00
Andrew Stewart
2c1c691cbc
Add new function proxying as utility function
2014-10-02 11:00:39 -07:00
Andrew Stewart
35c3a4b9e9
Proxy methods after #connect/#start
2014-10-01 18:11:36 -07:00
Andrew Stewart
d865bac72b
Add error triggering
2014-09-30 16:13:20 -07:00
Andrew Stewart
81dfda5732
Fixup specs
2014-09-30 12:22:00 -07:00
Andrew Stewart
8e0790ad9f
Default to manual mode, prevent multiple #starts
...
Additionally adds #halt/#disconnect to built-in loopback/ping
2014-09-30 12:17:02 -07:00
Andrew Stewart
f029438c19
Remove #Robot export, config option is now
2014-09-30 11:53:53 -07:00
Andrew Stewart
75c8d47676
Remove commands array from Adaptor base class
2014-09-29 15:41:13 -07:00
Andrew Stewart
77ecc2a82b
Automatically proxy methods from Adaptors to Connections
2014-09-29 15:25:51 -07:00
Andrew Stewart
de0a8fc0cb
Emit 'ready' event, not 'work', when working
2014-09-29 10:21:29 -07:00
Andrew Stewart
90cf0eed0a
Add direct Adaptor access inside Drivers
2014-09-23 11:57:35 -07:00
Andrew Stewart
6fa67f0e3b
Trigger test mode by checking NODE_ENV
...
Adds CYLON_TEST var for tests to make sure tests run properly
2014-09-22 15:05:45 -07:00
Andrew Stewart
299ade796b
Rename auto_start to 'auto'
2014-09-22 14:20:26 -07:00
Andrew Stewart
83bf4e3d14
Merge branch 'dev' into add/imperative-work
...
* dev:
Remove Adaptor#_noop function
Move Cylon API config to the Cylon.configure block
Fixup interval in driver
Add all new platforms to README
Add default interval in Driver class
Switch to single Cylon#config function
Conflicts:
test/specs/cylon.spec.js
2014-09-22 11:37:56 -07:00
Andrew Stewart
1b549f2dbb
Remove Adaptor#_noop function
2014-09-22 09:53:10 -07:00
Andrew Stewart
333dc881ea
Move Cylon API config to the Cylon.configure block
2014-09-19 12:03:50 -07:00
Andrew Stewart
b7467e7a63
Fixup interval in driver
2014-09-18 12:03:41 -07:00
Andrew Stewart
e72ce5ceac
Add default interval in Driver class
2014-09-16 14:42:45 -07:00
Andrew Stewart
7560507f11
Switch to single Cylon#config function
2014-09-15 14:46:24 -07:00
Andrew Stewart
c182c1316e
Auto start by default, implement start of modes
2014-09-08 15:28:16 -07:00
Andrew Stewart
70bd524ebe
Explain auto_start better
2014-09-08 14:33:07 -07:00
Adrian Zankich
69f066e432
async the auto start
2014-09-08 14:30:23 -07:00
Andrew Stewart
3ec6c2717a
Switch to Logger.debug for default work, add test for #start return val
2014-09-08 14:14:11 -07:00
Andrew Stewart
f0d0e4b738
Correct tests for auto-start, allow for non-truthy values
2014-09-08 14:12:14 -07:00
Adrian Zankich
12ae17eeb2
Fix typo
2014-09-08 13:43:11 -07:00