var encoders=[];
function handleEncoderOutput(data) {
let message = data.body.toString();
if (message.includes("Запушена калибровка энкодера в режиме")){
$("#encoderinfo").empty();
encoders=[];
}
if (message.includes("Калибровка энкодера ")){
let data = message.trim().replace("@ Калибровка энкодера ","").replace("&","").split(":");
let ind = encoders.find(obj => { return obj.sens === data[0]});
//encoders.indexOf("Сенсор "+data[0]);
if (ind==undefined){
encoders.push({
sens:data[0],
value:data[1]
})
}else
{
encoders[ind].value = data[1];
}
$("#encoderinfo").empty();
for (sens in encoders){
let html = "
Сенсор "+encoders[sens].sens+" "+encoders[sens].value+"
";
$("#encoderinfo").append(html);
}
}
if (message.includes("@ Остановлен режим калибровки энкодера.")){
let data = message.replace("@ Остановлен режим калибровки энкодера. ","").replace("&","");
$("#encoderinfo").empty();
let html = "Среднее значение: "+data.split(':')[1]+"
";
$("#encoderinfo").append(html);
$("#average-encode-interval").val(data.replace( /^\D+/g, ''));
}
let text = $("#encoder-output").val();
$("#encoder-output").val(text + message + "\r\n");
}
function cleanEncoderOutput() {
$("#encoder-output").val('');
}
function startEncoderCalibration() {
let deviceName = $("#encoder-device-name").val();
executeCommand(deviceName, "start_calibration");
}
function stopEncoderCalibration() {
let deviceName = $("#encoder-device-name").val();
executeCommand(deviceName, "stop_calibration");
}
function updateEncoderSettings() {
let deviceName = $("#encoder-device-name").val();
let params = {
};
let interval = $("#average-encode-interval").val();
if (interval) {
params.interval = interval;
}
executeCommand(deviceName, "update_settings", params);
}
function executeCommand(deviceName, command, params) {
if (!params) {
params = {};
}
stompClient.send(`/app/device/${deviceName}/execute/${command}`, {}, JSON.stringify(params));
}