opencan-cand


Nameopencan-cand JSON
Version 0.1.2 PyPI version JSON
download
home_page
SummaryA fast and super useful daemon for decoding and encoding CAN messages.
upload_time2023-06-02 20:26:17
maintainer
docs_urlNone
author
requires_python>=3.9
licenseMPL-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"
}
        
Elapsed time: 0.19524s