Name | opencan-cand JSON |
Version |
0.1.2
JSON |
| download |
home_page | |
Summary | A fast and super useful daemon for decoding and encoding CAN messages. |
upload_time | 2023-06-02 20:26:17 |
maintainer | |
docs_url | None |
author | |
requires_python | >=3.9 |
license | MPL-2.0 |
keywords |
cand
can
canbus
can bus
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# CANd
`cand` (pronounced _candy_) is the solution to your CAN
send/receieve/decode/encode woes.
`cand` listens to and decodes CAN messages with a provided DBC file, and also
listens for, encodes, and sends CAN messages you ask it to send.
Run `cand` as a daemon and use `cand.client` to interact with it. For example:
```python
from cand.client import Bus
bus = Bus()
bus.send('dbwNode_Status', {'SystemStatus': 'ESTOP', 'Counter': 11})
print(bus.get('dbwNode_Encoder_Data'))
# (1652836556992745935, {'Encoder0': 133, 'Encoder1': 152, 'Time': 10000})
```
## Performance
`cand` and the `cand.client.Bus` interface are very fast. Neither `Bus.get()`
nor `Bus.send()` calls block for very long, because they simply query or write
to the Redis backend. `cand` monitors its outbound CAN send performance and
will leave log messages when the TX buffer starts to grow too large. Messages
will not be lost, however.
**Note**: cand will work through its backlog of messages to be sent regardless
of the size; we should change that behavior eventually.
## Redis
`cand` uses Redis as the storage and request backend between itself and
clients. You can specify the Redis host and port for `cand` as well as the
client.
Raw data
{
"_id": null,
"home_page": "",
"name": "opencan-cand",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": "",
"keywords": "cand,can,canbus,can bus",
"author": "",
"author_email": "OpenCAN <info@opencan.org>",
"download_url": "https://files.pythonhosted.org/packages/eb/7b/f284a0159cb04b8e49d898d78cf07a456bfa2b072f6128fdab9f5c884e3e/opencan-cand-0.1.2.tar.gz",
"platform": null,
"description": "# CANd\n\n`cand` (pronounced _candy_) is the solution to your CAN\nsend/receieve/decode/encode woes.\n\n`cand` listens to and decodes CAN messages with a provided DBC file, and also\nlistens for, encodes, and sends CAN messages you ask it to send.\n\nRun `cand` as a daemon and use `cand.client` to interact with it. For example:\n\n```python\nfrom cand.client import Bus\n\nbus = Bus()\nbus.send('dbwNode_Status', {'SystemStatus': 'ESTOP', 'Counter': 11})\nprint(bus.get('dbwNode_Encoder_Data'))\n# (1652836556992745935, {'Encoder0': 133, 'Encoder1': 152, 'Time': 10000})\n```\n\n## Performance\n`cand` and the `cand.client.Bus` interface are very fast. Neither `Bus.get()`\nnor `Bus.send()` calls block for very long, because they simply query or write\nto the Redis backend. `cand` monitors its outbound CAN send performance and\nwill leave log messages when the TX buffer starts to grow too large. Messages\nwill not be lost, however.\n\n**Note**: cand will work through its backlog of messages to be sent regardless\nof the size; we should change that behavior eventually.\n\n## Redis\n`cand` uses Redis as the storage and request backend between itself and\nclients. You can specify the Redis host and port for `cand` as well as the\nclient.\n",
"bugtrack_url": null,
"license": "MPL-2.0",
"summary": "A fast and super useful daemon for decoding and encoding CAN messages.",
"version": "0.1.2",
"project_urls": {
"Homepage": "https://github.com/opencan/cand"
},
"split_keywords": [
"cand",
"can",
"canbus",
"can bus"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e8b0c861688dcff1c635f9a9c9ba2b54d2d7a2fa4e069e194d08538f159b76bb",
"md5": "8ae8cb16336e49a70f4eb56f5b4efdbb",
"sha256": "cf865d32ce06747b98ce0bb84b237a25369ad044dd26b1d234c0b49946012521"
},
"downloads": -1,
"filename": "opencan_cand-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8ae8cb16336e49a70f4eb56f5b4efdbb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 14403,
"upload_time": "2023-06-02T20:26:14",
"upload_time_iso_8601": "2023-06-02T20:26:14.876713Z",
"url": "https://files.pythonhosted.org/packages/e8/b0/c861688dcff1c635f9a9c9ba2b54d2d7a2fa4e069e194d08538f159b76bb/opencan_cand-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "eb7bf284a0159cb04b8e49d898d78cf07a456bfa2b072f6128fdab9f5c884e3e",
"md5": "0edcd55ecbfd64006477007f8986712c",
"sha256": "9e73212b537cc929143b4e53a4979ba68fd42815b25f36b62080df5bd02994d3"
},
"downloads": -1,
"filename": "opencan-cand-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "0edcd55ecbfd64006477007f8986712c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 12244,
"upload_time": "2023-06-02T20:26:17",
"upload_time_iso_8601": "2023-06-02T20:26:17.032874Z",
"url": "https://files.pythonhosted.org/packages/eb/7b/f284a0159cb04b8e49d898d78cf07a456bfa2b072f6128fdab9f5c884e3e/opencan-cand-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-06-02 20:26:17",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "opencan",
"github_project": "cand",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "opencan-cand"
}