Skip to content

Commit ffd36e3

Browse files
committed
NetworkSerialPort: add conargs to specify extra connector arguments
1 parent b90ac44 commit ffd36e3

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

doc/configuration.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ Arguments:
6565
- speed (int, default=115200): baud rate of the serial port
6666
- protocol (str, default="rfc2217"): protocol used for connection: raw or
6767
rfc2217
68+
- conargs (str): extra connector arguments, eg. nobreak
6869

6970
Used by:
7071
- `SerialDriver`_

labgrid/remote/exporter.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,27 +242,33 @@ def _start(self, start_params):
242242
raise ExporterError(f"ser2net {version} returned a nonzero code during version check.")
243243

244244
if version >= (4, 2, 0):
245+
conargs = f'{start_params["path"]},{self.local.speed}n81,local'
246+
if self.local.conargs:
247+
conargs += f",{self.local.conargs}"
245248
cmd = [
246249
self.ser2net_bin,
247250
"-d",
248251
"-n",
249252
"-Y",
250-
f"connection: &con01# accepter: telnet(rfc2217,mode=server),tcp,{self.port}",
253+
f"connection: &con01# accepter: telnet({self.local.protocol},mode=server),tcp,{self.port}",
251254
"-Y",
252-
f' connector: serialdev(nouucplock=true),{start_params["path"]},{self.local.speed}n81,local', # pylint: disable=line-too-long
255+
f' connector: serialdev(nouucplock=true),{conargs}',
253256
"-Y",
254257
" options:",
255258
"-Y",
256259
" max-connections: 10",
257260
]
258261
else:
262+
conargs = f'{start_params["path"]}:{self.local.speed} NONE 8DATABITS 1STOPBIT LOCAL'
263+
if self.local.conargs:
264+
conargs += f" {self.local.conargs}"
259265
cmd = [
260266
self.ser2net_bin,
261267
"-d",
262268
"-n",
263269
"-u",
264270
"-C",
265-
f'{self.port}:telnet:0:{start_params["path"]}:{self.local.speed} NONE 8DATABITS 1STOPBIT LOCAL', # pylint: disable=line-too-long
271+
f'{self.port}:telnet:0:{conargs}', # pylint: disable=line-too-long
266272
]
267273
self.logger.info("Starting ser2net with: %s", " ".join(cmd))
268274
self.child = subprocess.Popen(cmd)

labgrid/resource/serialport.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ class NetworkSerialPort(NetworkResource):
2525
port (str): socket port to connect to
2626
speed (int): speed of the port e.g. 9800
2727
protocol (str): connection protocol: "raw" or "rfc2217"
28+
conargs (str): extra connector arguments, eg. nobreak
2829
"""
2930
port = attr.ib(validator=attr.validators.optional(attr.validators.instance_of(int)))
3031
speed = attr.ib(default=115200, validator=attr.validators.instance_of(int))
3132
protocol = attr.ib(default="rfc2217", validator=attr.validators.instance_of(str))
33+
conargs = attr.ib(default="", validator=attr.validators.instance_of(str))

0 commit comments

Comments
 (0)