pydevmgr-serial


Namepydevmgr-serial JSON
Version 0.5.0 PyPI version JSON
download
home_page
Summary
upload_time2022-05-25 11:56:36
maintainer
docs_urlNone
authorSylvain Guieu
requires_python
licenseCeCILL Free Software License Agreement v2.1
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            An pydevmgr_core extension for serial communication 



Sources are [here](https://github.com/efisoft-elt/pydevmgr_serial) 

Doc to comme


# Install

```bash
> pip install pydevmgr_serial 
```

# Basic Usage

Bellow is an exemple of implementation of a node that check a value from a Tesla Sensor. 
An extra configuration argument is added and the fget method is implemented. 

```python 
from pydevmgr_serial import BaseSerialNode, SerialCom
import time

class TesaNodeConfig(BaseSerialNode.Config):
    type : 'Tesa'
    delay: float = 0.1 
    
class TesaNode(BaseSerialNode):
    Config = TesaNodeConfig
    def fget(self):
        self.com.serial.write(b'?\r')
        time.sleep(self.config.delay)
        sval = self.com.serial.read(20)
        val = float(sval)
        return val
```

```python 
# build a standalone node 
tesa_com = SerialCom(port='COM1', baudrate=9600)
tesa = TesaNode(com=tesa_com)
try:
    tesa_com.connect()
    print( "Position is ", tesa.get() )
finally:
    tesa_com.disconnect()
```

One can include the node in device

```python 
from pydevmgr_serial import BaseSerialDevice
from pydevmgr_core import NodeAlias



class Tesa(BaseSerialDevice):    
    raw_pos = TesaNode.Prop('raw_pos')
    
    @NodeAlias.prop('scaled_pos',['raw_pos'])
    def scaled_pos(self, raw_pos):
        return 10 + 1.3 * raw_pos    
```

```python 
tesa = Tesa('tesa', com={'port':'COM1'})
tesa.connect()
tesa.scaled_pos.get()
```
            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "pydevmgr-serial",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "",
    "author": "Sylvain Guieu",
    "author_email": "sylvain.guieu@univ-grenoble-alpes.fr",
    "download_url": "https://files.pythonhosted.org/packages/11/01/8a7892cd4c5a5efade69609b72e607924c60ab2839d9914d57efc699b110/pydevmgr_serial-0.5.0.tar.gz",
    "platform": null,
    "description": "An pydevmgr_core extension for serial communication \n\n\n\nSources are [here](https://github.com/efisoft-elt/pydevmgr_serial) \n\nDoc to comme\n\n\n# Install\n\n```bash\n> pip install pydevmgr_serial \n```\n\n# Basic Usage\n\nBellow is an exemple of implementation of a node that check a value from a Tesla Sensor. \nAn extra configuration argument is added and the fget method is implemented. \n\n```python \nfrom pydevmgr_serial import BaseSerialNode, SerialCom\nimport time\n\nclass TesaNodeConfig(BaseSerialNode.Config):\n    type : 'Tesa'\n    delay: float = 0.1 \n    \nclass TesaNode(BaseSerialNode):\n    Config = TesaNodeConfig\n    def fget(self):\n        self.com.serial.write(b'?\\r')\n        time.sleep(self.config.delay)\n        sval = self.com.serial.read(20)\n        val = float(sval)\n        return val\n```\n\n```python \n# build a standalone node \ntesa_com = SerialCom(port='COM1', baudrate=9600)\ntesa = TesaNode(com=tesa_com)\ntry:\n    tesa_com.connect()\n    print( \"Position is \", tesa.get() )\nfinally:\n    tesa_com.disconnect()\n```\n\nOne can include the node in device\n\n```python \nfrom pydevmgr_serial import BaseSerialDevice\nfrom pydevmgr_core import NodeAlias\n\n\n\nclass Tesa(BaseSerialDevice):    \n    raw_pos = TesaNode.Prop('raw_pos')\n    \n    @NodeAlias.prop('scaled_pos',['raw_pos'])\n    def scaled_pos(self, raw_pos):\n        return 10 + 1.3 * raw_pos    \n```\n\n```python \ntesa = Tesa('tesa', com={'port':'COM1'})\ntesa.connect()\ntesa.scaled_pos.get()\n```",
    "bugtrack_url": null,
    "license": "CeCILL Free Software License Agreement v2.1",
    "summary": "",
    "version": "0.5.0",
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "11018a7892cd4c5a5efade69609b72e607924c60ab2839d9914d57efc699b110",
                "md5": "5e013267d668c0900bfd40c96da3be9e",
                "sha256": "e5a3e8bfa6af0e1f85f1b9fc69c7033887b8c646b1da988ee9272a22a05f7edf"
            },
            "downloads": -1,
            "filename": "pydevmgr_serial-0.5.0.tar.gz",
            "has_sig": false,
            "md5_digest": "5e013267d668c0900bfd40c96da3be9e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 3405,
            "upload_time": "2022-05-25T11:56:36",
            "upload_time_iso_8601": "2022-05-25T11:56:36.262730Z",
            "url": "https://files.pythonhosted.org/packages/11/01/8a7892cd4c5a5efade69609b72e607924c60ab2839d9914d57efc699b110/pydevmgr_serial-0.5.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-05-25 11:56:36",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "lcname": "pydevmgr-serial"
}
        
Elapsed time: 0.02373s