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"
}