CARIA.2.0
Repo initial CARIA : MAJ Interface Bootle amélioré - Optimisation de la structure - amélioration des fonctionnalités - debug . . .
This commit is contained in:
142
WebControl/js/script.js
Normal file
142
WebControl/js/script.js
Normal file
@@ -0,0 +1,142 @@
|
||||
$(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});
|
||||
});
|
||||
});
|
||||
// Test
|
||||
$(function() {
|
||||
$('#servo').change(function() {
|
||||
var isChecked = $(this).is(':checked');
|
||||
var action = isChecked ? 'start' : 'stop';
|
||||
$.post('/servo_motor', { action: action });
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$('#motor').change(function() {
|
||||
var isChecked = $(this).is(':checked');
|
||||
var action = isChecked ? 'start' : 'stop';
|
||||
$.post('/motor_speed_move', { action: action });
|
||||
});
|
||||
});
|
||||
$(function() {
|
||||
$('#obstacle').change(function() {
|
||||
var isChecked = $(this).is(':checked');
|
||||
var action = isChecked ? 'start' : 'stop';
|
||||
$.post('/infrared_obstacle_module', { action: action });
|
||||
});
|
||||
});
|
||||
$(function () {
|
||||
$("#lidar").change(function () {
|
||||
var isChecked = $(this).is(":checked");
|
||||
var action = isChecked ? "start" : "stop";
|
||||
$.post("/lidar_module", { action: action });
|
||||
});
|
||||
});
|
||||
$(function () {
|
||||
$("#rfidrw").change(function () {
|
||||
var isChecked = $(this).is(":checked");
|
||||
var action = isChecked ? "start" : "stop";
|
||||
$.post("/rfid_read_write_module", { action: action });
|
||||
});
|
||||
});
|
||||
// Fonctionnalité
|
||||
$(function () {
|
||||
$("#ITO").change(function () {
|
||||
var isChecked = $(this).is(":checked");
|
||||
var action = isChecked ? "start" : "stop";
|
||||
$.post("/infrared_tracking_objects", { action: action });
|
||||
});
|
||||
});
|
||||
$(function () {
|
||||
$("#IOA").change(function () {
|
||||
var isChecked = $(this).is(":checked");
|
||||
var action = isChecked ? "start" : "stop";
|
||||
$.post("/infrared_obstacle_avoidance", {
|
||||
action: action,
|
||||
});
|
||||
});
|
||||
});
|
||||
// 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 maxAngle = 138; // Angle maximal de l'aiguille (correspondant à la vitesse maximale)
|
||||
|
||||
// Limiter la vitesse minimale
|
||||
speed = Math.max(minSpeed, speed);
|
||||
// Limiter la vitesse maximale
|
||||
speed = Math.min(maxSpeed, speed);
|
||||
|
||||
// Calcul de l'angle en fonction de la vitesse
|
||||
const angle = (speed / maxSpeed) * maxAngle;
|
||||
|
||||
// Mise à jour de l'aiguille avec le nouvel angle
|
||||
updatePointerRotation(angle);
|
||||
}
|
||||
|
||||
// Fonction pour mettre à jour l'aiguille avec un nouvel angle
|
||||
function updatePointerRotation(angle) {
|
||||
const minAngle = -130; // Angle minimal de l'aiguille
|
||||
const maxAngle = 138; // Angle maximal de l'aiguille
|
||||
|
||||
// Limiter l'angle minimum
|
||||
angle = Math.max(minAngle, angle);
|
||||
// Limiter l'angle maximum
|
||||
angle = Math.min(maxAngle, 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)`;
|
||||
}
|
||||
|
||||
// Fonction pour mettre à jour le compteur avec la nouvelle valeur de vitesse
|
||||
function updateCounter(speed) {
|
||||
const counter = document.getElementById("counter");
|
||||
// Ajouter des zéros devant la vitesse si elle est inférieure à 100
|
||||
const formattedSpeed = ("000" + speed).slice(-3);
|
||||
counter.textContent = formattedSpeed;
|
||||
}
|
||||
|
||||
$(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;
|
||||
$("#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
|
||||
updateCounter(speed); // Met à jour le compteur avec la nouvelle vitesse
|
||||
$.post("/cmd", { speed: speed }); // Envoie la nouvelle valeur de vitesse au serveur
|
||||
});
|
||||
|
||||
// Positionner l'aiguille à la valeur 50 lors de l'initialisation
|
||||
updateRotation(50);
|
||||
});
|
||||
Reference in New Issue
Block a user