Skip to main content

Python implementation of Microchip LNet protocol

Project description

PyX2CScope Logo

mchplnet

  • mchplnet is the Python implementation of the LNet protocol.
  • It implements multiple LNet services to communicate to embedded systems/microcontrollers.
  • Currently only pyserial interface is supported.
  • It is recommended to use the pyx2cscope package, which offers a higher-level interface.

Getting Started

  1. Navigate to the Examples directory in the mchplnet project to explore the available examples or create a new .py file based on your requirements.
  2. Import the necessary classes:
from mchplnet.interfaces.factory import InterfaceFactory
from mchplnet.interfaces.factory import InterfaceType as IType
from mchplnet.lnet import LNet
  1. Create an interface according to your requirements and initialize the LNet with the interface:

Option A: Auto-detection (Recommended for single device)

# Automatically detect the COM port with an LNet device
interface = InterfaceFactory.get_interface(IType.SERIAL, port="AUTO", baudrate=115200)
l_net = LNet(interface)
print(f"Connected to {interface.com_port}")

Option B: Manual port specification

# Specify the COM port explicitly
interface = InterfaceFactory.get_interface(IType.SERIAL, port="COM8", baudrate=115200)
l_net = LNet(interface)
  1. Use the appropriate functions, such as get_ram, to interact with variables by specifying their address and size:
var_address = 0x00000000
var_size = 4 
var_value = l_net.get_ram(var_address, var_size) 
logging.debug(var_value)
  1. To modify the value of a variable, use the put_ram function:
var_newValue = 500
l_net.put_ram(var_address, var_size, var_newValue)

Contribute

If you discover a bug or have an idea for an improvement, we encourage you to contribute! You can do so by following these steps:

  1. Fork the repository.
  2. Create a new branch for your changes.
  3. Make the necessary changes and commit them.
  4. Push your changes to your forked repository.
  5. Open a pull request on the main repository, describing your changes.

We appreciate your contribution!

Development Setup

To set up the development environment:

  1. Clone the repository:

    git clone https://github.com/X2Cscope/mchplnet.git
    cd mchplnet
    
  2. Install development dependencies:

    pip install -e ".[dev,docs,build]"
    
  3. Install pre-commit hooks:

    pre-commit install
    
  4. The pre-commit hook will now run automatically on each commit to ensure code quality and version consistency.

Publishing a release

Package releases are handled by GitHub Actions as part of the maintainer release workflow.


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mchplnet-0.5.1.tar.gz (30.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mchplnet-0.5.1-py3-none-any.whl (34.5 kB view details)

Uploaded Python 3

File details

Details for the file mchplnet-0.5.1.tar.gz.

File metadata

  • Download URL: mchplnet-0.5.1.tar.gz
  • Upload date:
  • Size: 30.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for mchplnet-0.5.1.tar.gz
Algorithm Hash digest
SHA256 7f4f78bc98482b7fd35897d6e1e01a298e0db926900c7617cdda312f03c9ca4f
MD5 2bb30ed6bdd4130e5894d11589ea6e48
BLAKE2b-256 92d6671606f1b79ec45e5a6f6db03da19c2f6c6b152e95f5c8e4b1110fdccab0

See more details on using hashes here.

File details

Details for the file mchplnet-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: mchplnet-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 34.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for mchplnet-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 23cfd422547f327306f0c66676cd7c29a754f13f419037ec5e4a1cd65e23e5f0
MD5 a628a4275bf3a64e7f8c5981796b37df
BLAKE2b-256 92a66dc739af50eb46c8cc9fcc2603c8a3bd740a26c43e569ba48645f3f8f9ba

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page