补充调试页接口测试样例
This commit is contained in:
@@ -123,6 +123,33 @@
|
|||||||
margin-top: 16px;
|
margin-top: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sample-bar {
|
||||||
|
display: grid;
|
||||||
|
gap: 10px;
|
||||||
|
margin-top: 16px;
|
||||||
|
padding: 14px;
|
||||||
|
border: 1px solid var(--line);
|
||||||
|
border-radius: 14px;
|
||||||
|
background: rgba(255, 255, 255, 0.72);
|
||||||
|
}
|
||||||
|
|
||||||
|
.sample-row {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 10px;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
select {
|
||||||
|
width: 100%;
|
||||||
|
border: 1px solid var(--line);
|
||||||
|
border-radius: 12px;
|
||||||
|
padding: 11px 12px;
|
||||||
|
font-size: 14px;
|
||||||
|
color: var(--text);
|
||||||
|
background: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
border: 0;
|
border: 0;
|
||||||
border-radius: 12px;
|
border-radius: 12px;
|
||||||
@@ -268,10 +295,28 @@
|
|||||||
"req_param": {}
|
"req_param": {}
|
||||||
}</textarea>
|
}</textarea>
|
||||||
|
|
||||||
|
<div class="sample-bar">
|
||||||
|
<label for="sample-select">接口测试样例</label>
|
||||||
|
<div class="sample-row">
|
||||||
|
<select id="sample-select">
|
||||||
|
<option value="listRobots">机器人列表 Cmd_ListRobots</option>
|
||||||
|
<option value="kinematicsForwardZero">运动学正解 Cmd_Kinematics_forward_pose_str</option>
|
||||||
|
<option value="kinematicsForwardAllJoints">全关节正解 Cmd_Kinematics_forward_all_joints</option>
|
||||||
|
<option value="spcBasic">SPC 计算 Cmd_Spc</option>
|
||||||
|
<option value="fourBarValid">四连杆有效样例 Cmd_FourBar_CrankSlider</option>
|
||||||
|
<option value="fourBarInvalid">四连杆异常样例 Cmd_FourBar_CrankSlider</option>
|
||||||
|
<option value="quadrupedPoints">四足姿态点位 Cmd_QuadrupedRobot_CalculateAllPointsFromMotorAngles</option>
|
||||||
|
<option value="quadrupedForwardGait">四足步态正解 Cmd_QuadrupedRobot_PerformForwardKinematics</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="sample-row">
|
||||||
|
<button class="secondary" id="sample-btn" type="button">填充选中样例</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
<button class="primary" id="init-btn" type="button">初始化 WASM</button>
|
<button class="primary" id="init-btn" type="button">初始化 WASM</button>
|
||||||
<button class="primary" id="run-btn" type="button">发送请求</button>
|
<button class="primary" id="run-btn" type="button">发送请求</button>
|
||||||
<button class="secondary" id="sample-btn" type="button">填充四杆样例</button>
|
|
||||||
<button class="secondary" id="clear-btn" type="button">清空输出</button>
|
<button class="secondary" id="clear-btn" type="button">清空输出</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -321,11 +366,174 @@
|
|||||||
const requestStatus = document.getElementById("request-status");
|
const requestStatus = document.getElementById("request-status");
|
||||||
const requestBox = document.getElementById("request");
|
const requestBox = document.getElementById("request");
|
||||||
const output = document.getElementById("output");
|
const output = document.getElementById("output");
|
||||||
|
const sampleSelect = document.getElementById("sample-select");
|
||||||
const metaSuccess = document.getElementById("meta-success");
|
const metaSuccess = document.getElementById("meta-success");
|
||||||
const metaCode = document.getElementById("meta-code");
|
const metaCode = document.getElementById("meta-code");
|
||||||
const metaCmd = document.getElementById("meta-cmd");
|
const metaCmd = document.getElementById("meta-cmd");
|
||||||
const metaReq = document.getElementById("meta-req");
|
const metaReq = document.getElementById("meta-req");
|
||||||
|
|
||||||
|
const requestSamples = {
|
||||||
|
listRobots: {
|
||||||
|
msg: "list robots after init",
|
||||||
|
req_code: "CASE_LIST_001",
|
||||||
|
req_from: "local_debug",
|
||||||
|
req_cmd: "Cmd_ListRobots",
|
||||||
|
req_param: {
|
||||||
|
detail: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
kinematicsForwardZero: {
|
||||||
|
msg: "fk zero pose",
|
||||||
|
req_code: "CASE_FK_001",
|
||||||
|
req_from: "local_debug",
|
||||||
|
req_cmd: "Cmd_Kinematics_forward_pose_str",
|
||||||
|
req_param: {
|
||||||
|
robot_uuid: "abb_irb120_3_58",
|
||||||
|
q_init_str: "0,0,0,0,0,0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
kinematicsForwardAllJoints: {
|
||||||
|
msg: "fk all joints path",
|
||||||
|
req_code: "CASE_FK_ALL_001",
|
||||||
|
req_from: "local_debug",
|
||||||
|
req_cmd: "Cmd_Kinematics_forward_all_joints",
|
||||||
|
req_param: {
|
||||||
|
robot_uuid: "abb_irb120_3_58",
|
||||||
|
joints_str: "0,0,0,0,0,0;10,20,30,40,50,60"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
spcBasic: {
|
||||||
|
msg: "spc basic 5x30",
|
||||||
|
req_code: "CASE_SPC_001",
|
||||||
|
req_from: "local_debug",
|
||||||
|
req_cmd: "Cmd_Spc",
|
||||||
|
req_param: {
|
||||||
|
n: 5,
|
||||||
|
k: 30,
|
||||||
|
usl: 1.7,
|
||||||
|
lsl: 1.5,
|
||||||
|
x: [
|
||||||
|
1.55, 1.58, 1.61, 1.6, 1.6, 1.58, 1.63, 1.63, 1.62, 1.63,
|
||||||
|
1.62, 1.63, 1.62, 1.59, 1.58, 1.58, 1.6, 1.61, 1.62, 1.63,
|
||||||
|
1.58, 1.64, 1.63, 1.62, 1.62, 1.62, 1.62, 1.63, 1.61, 1.57,
|
||||||
|
1.64, 1.62, 1.61, 1.6, 1.58, 1.57, 1.59, 1.61, 1.62, 1.63,
|
||||||
|
1.58, 1.61, 1.6, 1.62, 1.63, 1.6, 1.61, 1.64, 1.64, 1.63,
|
||||||
|
1.58, 1.6, 1.62, 1.63, 1.65, 1.62, 1.58, 1.59, 1.57, 1.58,
|
||||||
|
1.57, 1.57, 1.58, 1.59, 1.64, 1.61, 1.64, 1.62, 1.6, 1.59,
|
||||||
|
1.65, 1.62, 1.62, 1.6, 1.58, 1.57, 1.59, 1.57, 1.59, 1.62,
|
||||||
|
1.56, 1.57, 1.57, 1.61, 1.62, 1.56, 1.58, 1.59, 1.6, 1.62,
|
||||||
|
1.58, 1.6, 1.6, 1.62, 1.63, 1.58, 1.59, 1.6, 1.63, 1.62,
|
||||||
|
1.58, 1.59, 1.62, 1.63, 1.64, 1.58, 1.59, 1.62, 1.63, 1.61,
|
||||||
|
1.58, 1.59, 1.6, 1.61, 1.63, 1.57, 1.59, 1.61, 1.61, 1.62,
|
||||||
|
1.58, 1.58, 1.6, 1.61, 1.63, 1.62, 1.58, 1.58, 1.58, 1.57,
|
||||||
|
1.63, 1.59, 1.57, 1.58, 1.57, 1.58, 1.62, 1.61, 1.63, 1.61,
|
||||||
|
1.58, 1.57, 1.59, 1.6, 1.62, 1.62, 1.6, 1.6, 1.57, 1.57
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fourBarValid: {
|
||||||
|
msg: "fourbar valid",
|
||||||
|
req_code: "CASE_FB_001",
|
||||||
|
req_from: "local_debug",
|
||||||
|
req_cmd: "Cmd_FourBar_CrankSlider",
|
||||||
|
req_param: {
|
||||||
|
L_AB: 0.5,
|
||||||
|
L_BS: 2.0,
|
||||||
|
S_OFS: 0.0,
|
||||||
|
angleDeg: 45.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fourBarInvalid: {
|
||||||
|
msg: "fourbar invalid",
|
||||||
|
req_code: "CASE_FB_002",
|
||||||
|
req_from: "local_debug",
|
||||||
|
req_cmd: "Cmd_FourBar_CrankSlider",
|
||||||
|
req_param: {
|
||||||
|
L_AB: 0.0,
|
||||||
|
L_BS: 0.2,
|
||||||
|
S_OFS: 0.5,
|
||||||
|
angleDeg: 30.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
quadrupedPoints: {
|
||||||
|
msg: "quadruped points from motor angles",
|
||||||
|
req_code: "CASE_QP_001",
|
||||||
|
req_from: "local_debug",
|
||||||
|
req_cmd: "Cmd_QuadrupedRobot_CalculateAllPointsFromMotorAngles",
|
||||||
|
req_param: {
|
||||||
|
Param: {
|
||||||
|
LF: {
|
||||||
|
thigh_angle_deg: -37.4784578338516,
|
||||||
|
shank_angle_deg: -22.4917532451628,
|
||||||
|
ankle_angle_deg: 0.0
|
||||||
|
},
|
||||||
|
LH: {
|
||||||
|
thigh_angle_deg: -34.0564623655754,
|
||||||
|
shank_angle_deg: -22.1353106546916,
|
||||||
|
ankle_angle_deg: 0.0
|
||||||
|
},
|
||||||
|
RF: {
|
||||||
|
thigh_angle_deg: 34.0564623655754,
|
||||||
|
shank_angle_deg: 22.1353106546916,
|
||||||
|
ankle_angle_deg: 0.0
|
||||||
|
},
|
||||||
|
RH: {
|
||||||
|
thigh_angle_deg: 37.4784578338516,
|
||||||
|
shank_angle_deg: 22.4917532451628,
|
||||||
|
ankle_angle_deg: 0.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
quadrupedForwardGait: {
|
||||||
|
msg: "quadruped forward gait",
|
||||||
|
req_code: "CASE_QP_002",
|
||||||
|
req_from: "local_debug",
|
||||||
|
req_cmd: "Cmd_QuadrupedRobot_PerformForwardKinematics",
|
||||||
|
req_param: {
|
||||||
|
GaitInfo: {
|
||||||
|
GaitType: "trot",
|
||||||
|
Period: 0.8,
|
||||||
|
Frequency: 50.0,
|
||||||
|
StepTime: 0.02,
|
||||||
|
SupportTime: 0.4,
|
||||||
|
SwingTime: 0.4,
|
||||||
|
SupportRatio: 0.5,
|
||||||
|
SwingRatio: 0.5,
|
||||||
|
TotalFrames: 40,
|
||||||
|
TotalTime: 0.8
|
||||||
|
},
|
||||||
|
SystemParameters: {
|
||||||
|
A_x: 0.0,
|
||||||
|
A_y: 500.0,
|
||||||
|
L10: 300.0,
|
||||||
|
L20: 286.0,
|
||||||
|
L30: 55.0,
|
||||||
|
StepLength: 60.0,
|
||||||
|
StepHeight: 50.0,
|
||||||
|
X: 30.0,
|
||||||
|
DeltaX: 0.0,
|
||||||
|
L21: 70.0,
|
||||||
|
L22: 292.0,
|
||||||
|
L23: 80.0,
|
||||||
|
Beta1: 166.0,
|
||||||
|
BB2_BC_Angle: 3.3859387489,
|
||||||
|
C1_B_Length: 107.0,
|
||||||
|
CC1: 179.0,
|
||||||
|
L31: 32.0,
|
||||||
|
C2C3_Length: 32.0,
|
||||||
|
Lead: 10.0,
|
||||||
|
D1_L_Offset: 90.0,
|
||||||
|
D2_L_Offset: 50.0,
|
||||||
|
C4_D2_Offset: 18.0,
|
||||||
|
ThighMotorReduction: 1.0,
|
||||||
|
ShankMotorReduction: 1.0,
|
||||||
|
AnkleMotorReduction: 1.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
function escapeHtml(value) {
|
function escapeHtml(value) {
|
||||||
return value
|
return value
|
||||||
.replaceAll("&", "&")
|
.replaceAll("&", "&")
|
||||||
@@ -403,19 +611,13 @@
|
|||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
function sampleFourBar() {
|
function loadSelectedSample() {
|
||||||
requestBox.value = JSON.stringify({
|
const selectedKey = sampleSelect.value;
|
||||||
msg: "fourbar valid",
|
const sample = requestSamples[selectedKey];
|
||||||
req_code: "CASE_FB_001",
|
if (!sample) {
|
||||||
req_from: "local_debug",
|
return;
|
||||||
req_cmd: "Cmd_FourBar_CrankSlider",
|
}
|
||||||
req_param: {
|
requestBox.value = JSON.stringify(sample, null, 2);
|
||||||
L_AB: 0.5,
|
|
||||||
L_BS: 2.0,
|
|
||||||
S_OFS: 0.0,
|
|
||||||
angleDeg: 45.0
|
|
||||||
}
|
|
||||||
}, null, 2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async function ensureModule() {
|
async function ensureModule() {
|
||||||
@@ -481,7 +683,7 @@
|
|||||||
|
|
||||||
document.getElementById("init-btn").addEventListener("click", initializeBusinessApi);
|
document.getElementById("init-btn").addEventListener("click", initializeBusinessApi);
|
||||||
document.getElementById("run-btn").addEventListener("click", runRequest);
|
document.getElementById("run-btn").addEventListener("click", runRequest);
|
||||||
document.getElementById("sample-btn").addEventListener("click", sampleFourBar);
|
document.getElementById("sample-btn").addEventListener("click", loadSelectedSample);
|
||||||
document.getElementById("clear-btn").addEventListener("click", () => {
|
document.getElementById("clear-btn").addEventListener("click", () => {
|
||||||
requestStatus.textContent = "等待操作";
|
requestStatus.textContent = "等待操作";
|
||||||
resetMeta();
|
resetMeta();
|
||||||
@@ -489,6 +691,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
resetMeta();
|
resetMeta();
|
||||||
|
loadSelectedSample();
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user