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)); }