Skip to content

Commit 4c5dde4

Browse files
committed
Generate list of outputs from website
1 parent 3bbb7e4 commit 4c5dde4

File tree

1 file changed

+51
-1
lines changed

1 file changed

+51
-1
lines changed

tests/resources/generate_rtde_outputs.py

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,36 @@
1-
import pathlib
1+
# -- BEGIN LICENSE BLOCK ----------------------------------------------
2+
# Copyright 2025 Universal Robots A/S
3+
#
4+
# Redistribution and use in source and binary forms, with or without
5+
# modification, are permitted provided that the following conditions are met:
6+
#
7+
# * Redistributions of source code must retain the above copyright
8+
# notice, this list of conditions and the following disclaimer.
9+
#
10+
# * Redistributions in binary form must reproduce the above copyright
11+
# notice, this list of conditions and the following disclaimer in the
12+
# documentation and/or other materials provided with the distribution.
13+
#
14+
# * Neither the name of the {copyright_holder} nor the names of its
15+
# contributors may be used to endorse or promote products derived from
16+
# this software without specific prior written permission.
17+
#
18+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28+
# POSSIBILITY OF SUCH DAMAGE.
29+
# -- END LICENSE BLOCK ------------------------------------------------
230

31+
import pathlib
32+
import pandas as pd
33+
import re
334
URCL_PATH = pathlib.Path(__file__).parent.parent.parent.resolve()
435

536
PKG_PATH = [i for i in pathlib.Path(URCL_PATH.as_posix()).glob("**/data_package.cpp")]
@@ -9,6 +40,7 @@
940
PKG_PATH = PKG_PATH[0].resolve()
1041

1142
OUTPUT_PATH = pathlib.Path(__file__).parent.resolve().as_posix() + "/exhaustive_rtde_output_recipe.txt"
43+
WEB_OUTPUT_PATH = pathlib.Path(__file__).parent.resolve().as_posix() + "/docs_rtde_output_recipe.txt"
1244

1345
with open(PKG_PATH) as pkg_file:
1446
save_outputs = False
@@ -27,3 +59,21 @@
2759

2860
with open(OUTPUT_PATH, "w") as output_file:
2961
output_file.writelines(outputs)
62+
63+
# Get outputs from official docs
64+
page = pd.read_html("https://docs.universal-robots.com/tutorials/communication-protocol-tutorials/rtde-guide.html")
65+
table = page[1]
66+
outputs = []
67+
for _, row in table.iterrows():
68+
name = row["Name"]
69+
if "X" in name:
70+
numbers = re.findall(r'\d+', row["Comment"])
71+
amount = int(numbers[0])
72+
base_addr = int(numbers[1])
73+
for i in range(amount):
74+
outputs.append(name[:-1]+str(base_addr+i) + "\n")
75+
else:
76+
outputs.append(name + "\n")
77+
78+
with open(WEB_OUTPUT_PATH, "w") as web_output_file:
79+
web_output_file.writelines(outputs)

0 commit comments

Comments
 (0)