File size: 1,396 Bytes
b8c72c0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
const LOCAL_SERVER_URL = "http://127.0.0.1:5001/motor_control";

function sendMotorCommand(motor, value) {
    console.log(`Sending to ${motor}: ${value}`);
    fetch(LOCAL_SERVER_URL, {
        method: "POST",
        headers: {
            "Content-Type": "application/json"
        },
        body: JSON.stringify({ motor, value })
    }).then(res => res.text()).then(txt => {
        console.log("✅ Server response:", txt);
    }).catch(err => {
        console.error("❌ Fetch error:", err);
    });
}

function bindSliders() {
    for (let i = 0; i < 6; i++) {
        const wrapper = document.getElementById("motor_" + i);
        if (!wrapper) {
            console.warn(`motor_${i} not found`);
            continue;
        }
        const slider = wrapper.querySelector("input[type=range]");
        if (!slider) {
            console.warn(`No slider in motor_${i}`);
            continue;
        }

        slider.addEventListener("input", () => {
            sendMotorCommand("motor_" + i, parseFloat(slider.value));
        });

        console.log(`✅ Bound slider for motor_${i}`);
    }
}

window.addEventListener("load", () => {
    console.log("🚀 External JS loaded");
    const retry = setInterval(() => {
        if (document.querySelectorAll("input[type=range]").length >= 6) {
            bindSliders();
            clearInterval(retry);
        }
    }, 500);
});