Project:Tool Access Control/Solexious Proposal: Difference between revisions
Line 25: | Line 25: | ||
==Network protocol== | ==Network protocol== | ||
===Get card permissions=== | ===Get card permissions=== | ||
'''/[nodeID]/ | '''GET /[nodeID]/card/''' | ||
i.e. | i.e. | ||
* /1/ | * POST /1/card/ | ||
04FF7922E40080 | |||
returns | returns | ||
Line 36: | Line 37: | ||
===Add card=== | ===Add card=== | ||
'''/[nodeID]/ | '''POST /[nodeID]/card/''' | ||
i.e. | i.e. | ||
* /1/ | * POST /1/card/ | ||
04FF7922E40080,04FF1234540080 | |||
returns | returns | ||
Line 46: | Line 48: | ||
===Check DB sync=== | ===Check DB sync=== | ||
'''/[nodeID]/ | '''GET /[nodeID]/sync/''' | ||
Returns first card in db | |||
i.e. | i.e. | ||
* /1/ | * GET /1/sync/ | ||
returns the first card in the DB i.e. | returns the first card in the DB i.e. | ||
* 04FF7922E40080 | * 04FF7922E40080 | ||
'''/[nodeID/ | '''GET /[nodeID/sync/[last received card]/''' | ||
i.e. | i.e. | ||
* /1/ | * GET /1/sync/04FF7922E40080/ | ||
returns either the next card in DB i.e. | returns either the next card in DB i.e. | ||
Line 67: | Line 69: | ||
===Report tool status=== | ===Report tool status=== | ||
'''/[nodeID]/status/ | '''PUT /[nodeID]/status/''' | ||
i.e. | |||
* PUT /1/status/ | |||
1 | |||
* 0 - out of service | * 0 - out of service | ||
Line 77: | Line 83: | ||
===Check tool status=== | ===Check tool status=== | ||
'''/[nodeID]/status | ''' GET /[nodeID]/status/''' | ||
Check if the ACNode has been remotely taken out of service, or put back in service | Check if the ACNode has been remotely taken out of service, or put back in service | ||
Line 86: | Line 92: | ||
===Tool usage (live)=== | ===Tool usage (live)=== | ||
'''/[nodeID]/tooluse | '''PUT /[nodeID]/tooluse/''' | ||
i.e. | |||
* PUT /1/tooluse/report | |||
1,04FF7922E40080 | |||
* 0 - tool use stopped | * 0 - tool use stopped | ||
Line 96: | Line 106: | ||
===Tool usage (usage time)=== | ===Tool usage (usage time)=== | ||
'''/[nodeID]/tooluse/ | '''POST /[nodeID]/tooluse/time/''' | ||
i.e. | |||
* POST /1/tooluse/time/ | |||
34000,04FF7922E40080 | |||
returns | returns | ||
Line 103: | Line 117: | ||
===Case alert=== | ===Case alert=== | ||
'''/[nodeID]/case | '''PUT /[nodeID]/case/''' | ||
i.e. | |||
* PUT /1/case/ | |||
1 | |||
Alert if the ACNode case is opened | Alert if the ACNode case is opened |
Revision as of 03:14, 19 February 2012
(ACN refers to Access Control Node, a physical node attached to a tool)
I plan to
- Base the device on the Duemilanove arduino as it fits our needs and has a wide base of users.
- Use the wiznet chip for ethernet support
- Use i2c sm030 rfid readers
- allow different control outputs (relay, Darlington, servo control etc)
- use eeprom memory for internal storage
Services
Mission critical
These must function without networking or main server available:
- Check if card in ACN local db and allow use if is
- Set tool into "out of order" mode
Non critical
- Add cards
- Report back to central server (usage etc)
Progress
I have made a prototype shield for testing code while the full design remains to be tested and produced. http://www.flickr.com/photos/solexious/6865500239/
Design for the full ACNode at: https://github.com/solexious/ACNode
Network protocol
Get card permissions
GET /[nodeID]/card/
i.e.
- POST /1/card/
04FF7922E40080
returns
- 0 - no permissions
- 1 - user
- 2 - maintainer
Add card
POST /[nodeID]/card/
i.e.
- POST /1/card/
04FF7922E40080,04FF1234540080
returns
- 0 - card not added
- 1 - card added
Check DB sync
GET /[nodeID]/sync/
Returns first card in db
i.e.
- GET /1/sync/
returns the first card in the DB i.e.
- 04FF7922E40080
GET /[nodeID/sync/[last received card]/
i.e.
- GET /1/sync/04FF7922E40080/
returns either the next card in DB i.e.
- 03FF7922FF008F
or when out of cards returns
- END
Report tool status
PUT /[nodeID]/status/
i.e.
- PUT /1/status/
1
- 0 - out of service
- 1 - in service
returns
- 0 - not saved
- 1 - saved
Check tool status
GET /[nodeID]/status/
Check if the ACNode has been remotely taken out of service, or put back in service
returns
- 0 - out of service
- 1 - in service
Tool usage (live)
PUT /[nodeID]/tooluse/
i.e.
- PUT /1/tooluse/report
1,04FF7922E40080
- 0 - tool use stopped
- 1 - tool in use
returns
- 0 - not saved
- 1 - saved
Tool usage (usage time)
POST /[nodeID]/tooluse/time/
i.e.
- POST /1/tooluse/time/
34000,04FF7922E40080
returns
- 0 - not saved
- 1 - saved
Case alert
PUT /[nodeID]/case/
i.e.
- PUT /1/case/
1
Alert if the ACNode case is opened
- 0 - case closed
- 1 - case opened
returns
- 0 - not saved
- 1 - saved