달성하고자하는 것은 Tizen 스마트 워치의 심장 박동 센서가 반환 한 값의 정밀도를 높이려고합니다. 이 값은 언어가 Javascript이므로 Float64 숫자입니다. 나는이 같은 함수를 사용하려고 : Tizen 장치의 심장 박동 센서가 반환 한 값의 정밀도를 높이십시오.
function strip(interval) {
return (parseFloat(interval).toPrecision(4));
}
하지만 성공
. 어쩌면 내가 뭔가 잘못하고있는 중이 야, 프로그래밍 실수를하는 것처럼, 나는 정말로 모른다. 외관상으로는, IDE는 문제없이 설치하기 위하여 포장을 건설하고 건축한다, 그러나 나는이 기능 포함하거나 포함하지 않는 무언가를 다른 볼 수 없다. 아래에 전체 코드를 게시합니다. 기능이 언제 생성되는지 확인하십시오strip
. 나는 escamotage
if (interval !== 0) { interval_screen = interval; }
을 사용했는데 왜냐하면 나는 0을 인쇄하지 않기를 원하기 때문이다. ROS 주제 인 HeartRateInterval에 스트리밍 된 변수를 Float로 유지하고 싶습니다. 그래서 parseFloat 함수도 사용했습니다. 감사합니다. 코드 :
document.addEventListener('tizenhwkey', function(e) {
if(e.keyName === "back")
window.webapis.motion.stop("HRM");
tizen.application.getCurrentApplication().exit();
});
function Connect(){
var ip;
var connection=false;
var interval_screen = 0;
if (document.getElementById("ip").value==="")
{
ip="10.42.0.1";
}
else
{
ip=document.getElementById("ip").value;
}
var ros = new ROSLIB.Ros({
url : 'ws://' + ip +':9090'
});
ros.on('connection', function() {
connection=true;
document.getElementById("Connection_status").setAttribute("color","green");
document.getElementById("Connection_status").innerHTML = 'Connected';
tizen.power.request("SCREEN", "SCREEN_DIM");
});
ros.on('error', function(error) {
document.getElementById("Connection_status").setAttribute("color","orange");
document.getElementById("Connection_status").innerHTML = 'Error';
});
ros.on('close', function() {
document.getElementById("Connection_status").setAttribute("color","red");
document.getElementById("Connection_status").innerHTML = 'Unconnected';
connection=false;
tizen.power.release("SCREEN");
});
var RatePub = new ROSLIB.Topic({
ros : ros,
name : '/HeartRateData',
messageType : 'std_msgs/Float64'
});
var IntervalPub = new ROSLIB.Topic({
ros : ros,
name : '/HeartRateInterval',
messageType : 'std_msgs/Float64'
});
window.webapis.motion.start("HRM", onchangedCB);
function onchangedCB(hrmInfo)
{
var rate = hrmInfo.heartRate;
document.getElementById("mytext").innerHTML = 'Heart Rate= ' + rate + ' bpm';
var interval = hrmInfo.rRInterval/1000;
function strip(interval) {
return (parseFloat(interval).toPrecision(4));
}
if (interval !== 0) {
interval_screen = interval;
}
document.getElementById("mytext1").innerHTML = 'RR Interval= ' + interval_screen + ' s';
var Float64 = new ROSLIB.Message({
data:rate
});
if(connection===true)
{
RatePub.publish(Float64);
}
else
{
document.getElementById("mytext").innerHTML = 'Heart Rate = 0 bpm';
}
var Float64 = new ROSLIB.Message({
data:interval
});
if(connection===true)
{ if (interval !== 0) {
IntervalPub.publish(Float64);
}
else {
}
}
else
{
document.getElementById("mytext1").innerHTML = 'RR Interval = 0 s';
}
}}
'var interval = hrmInfo.rRInterval/1000; '바로 뒤에'interval.toPrecision (4);'를 사용하려고했지만 아무 것도 변경되지 않았습니다. 나는 또한'parseFloat (interval) .toPrecision (4);'와 같은 결과를 보았습니다. @RC NL – Marcofon