Files
ccunatbrule 2ddf2360e6 CARIA.2.2
Update for the final presentation
huge change with previous version
2024-09-03 12:17:44 +02:00

77 lines
2.9 KiB
JavaScript

// Fonction pour mettre à jour l'angle de rotation de l'aiguille en fonction de la vitesse
function updateRotation(speed) {
const minSpeed = 0; // Vitesse minimale en km/h
const maxSpeed = 120; // Vitesse maximale en km/h
const minAngle = -130; // Angle minimal de l'aiguille
const maxAngle = 138; // Angle maximal de l'aiguille (correspondant à la vitesse maximale)
// Limiter la vitesse et angle minimale
speed = Math.max(minSpeed, speed);
// Limiter la vitesse et angle maximale
speed = Math.min(maxSpeed, speed);
// Calcul de l'angle en fonction de la vitesse
var angle = (speed / maxSpeed) * maxAngle;
angle = Math.max(minAngle, angle);
angle = Math.min(maxAngle, angle);
// Mise à jour de l'aiguille avec le nouvel angle
// Calculer la rotation en fonction de l'angle et de la direction
let rotation = (angle + 112) * 1.923; // Convertir l'angle en rotation (360/242)
// Mise à jour de l'aiguille
const pointer = document.getElementById("pointer");
pointer.style.transform = `translateX(-50%) rotate(${rotation}deg)`;
}
$(function () {
var isTouchDevice = "ontouchstart" in document.documentElement ? true : false;
var BUTTON_DOWN = isTouchDevice ? "touchstart" : "mousedown";
var BUTTON_UP = isTouchDevice ? "touchend" : "mouseup";
$("button").bind(BUTTON_DOWN, function () {
$(this).addClass("btn-pressed");
$.post("/cmd", this.id, function (data, status) {});
});
$("button").bind(BUTTON_UP, function () {
$(this).removeClass("btn-pressed");
$.post("/cmd", "stop", function (data, status) {});
});
$("input").change(function () {
var speed = this.value;
const counter = document.getElementById("counter");
$("#speed-display").text(speed); // Met à jour l'élément HTML avec l'id 'speed-display' avec la nouvelle valeur
updateRotation(speed); // Met à jour l'aiguille avec la nouvelle vitesse
// Ajouter des zéros devant la vitesse si elle est inférieure à 100
const formattedSpeed = ("000" + speed).slice(-3);
counter.textContent = formattedSpeed; $.post("/cmd", { speed: speed }); // Envoie la nouvelle valeur de vitesse au serveur
});
// Positionner l'aiguille à la valeur 50 lors de l'initialisation
updateRotation(30);
});
$(function () {
var isTouchDevice = "ontouchstart" in document.documentElement ? true : false;
var BUTTON_DOWN = isTouchDevice ? "touchstart" : "mousedown";
var BUTTON_UP = isTouchDevice ? "touchend" : "mouseup";
$("input[type='checkbox']").change(function () {
var id = this.id;
if (this.checked) {
$.post("/cmd", id, function (data, status) {});
} else {
$.post("/cmd", "stop", function (data, status) {});
}
});
$('input[type="range"]').change(function () {
var speed = this.value;
$.post("/cmd", { speed: speed });
});
});
function confirmReboot() {
if (confirm("Êtes-vous sûr de vouloir redémarrer le Raspberry Pi ?")) {
document.getElementById("rebootForm").submit();
}
}