labgrid-project / labgrid-project/labgrid
How to implement a multi-function device?
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 528
- Forks
- 278
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 4
Description
I have a 'servo' device which contains UARTs and reset control. I have manged to create a Servo resource and a ServoDriver for it:
class Servo(Resource):
""""This resource describes a servo board with servod server
This provides serial consoles along with reset control
Args:
serial (str): serial number of the servo device
port (int): port index to use for servod process
"""
serial = attr.ib(validator=attr.validators.instance_of(str))
port = attr.ib(validator=attr.validators.instance_of(int),
converter=int)
@target_factory.reg_driver
@attr.s(eq=False)
class ServoDriver(ConsoleExpectMixin, Driver, ConsoleProtocol, ResetProtocol):
"""Provides access to servo features including console and reset
Args:
bindings (dict): driver to use with
"""
bindings = {
"servo": {"Servo", "NetworkServo"},
}
but I am not sure how to connect up the console. I get this error when using the labgrid-client 'console' command:
labgrid.exceptions.NoResourceFoundError: no NetworkSerialPort resource found in Target(name='try', env=Environment(config_file='/vid/software/devel/ubtest/lab/env_rpi_try.cfg'), var_dict=None)
This seems obvious enough, but how can I create the serial port? I don't see how multi-function devices can be implemented?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Servo resource and ServoDriver bindings, then trace how labgrid-client's console command resolves NetworkSerialPort on the Target. Check the Environment configuration referenced by env_rpi_try.cfg and determine how the UART should be represented alongside reset control. Done means the configured target exposes a serial resource that the console command can resolve without NoResourceFoundError.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- embedded-iot
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100