2016-09-21 4 views
0

私はコーディングの世界では非常に新しいので、ちょっと困っています。私はサムスンギアSのTizenウェブアプリで実行されているウェブアプリから心拍数データを取得したいと考えています。 ウェブアプリはサムスンのサンプルであり、もちろん動作します。私はTizenの開発サイトからファイルシステムを書くためのコードスニペットをいくつか見つけました。実際には、テキストファイルを含むusrのドキュメントフォルダの下にフォルダを作成できますが、テキストファイルの[オブジェクトオブジェクト]のようなものしか取得できません。だから、何かが書かれていますが、私は明らかに私が欲しいものを書いていません。助けていただければ幸いです。前もって感謝します!私はTizenウェアラブルアプリケーションでテキストファイルに何かのデータを書き込もうとしています。

マルコ

/** 
     * Value of current heart rate. 
     * 
     * @memberof models/heartRate 
     * @private 
     * @type {object} 
     */ 
     heartRate = null, 

     /** 
     * Object represents Heart Rate Monitor data. 
     * 
     * @memberof models/heartRate 
     * @private 
     * @type {object} 
     */ 
     heartRateData = {}; 



    /** 
    * Sets heart rate and time values received from sensor. 
    * Returns heart rate data. 
    * 
    * @memberof models/heartRate 
    * @private 
    * @param {object} heartRateInfo 
    * @returns {object} 
    */ 
    function setHeartRateData(heartRateInfo) { 
     var pData = { 
      rate: heartRateInfo.heartRate, 
      rrinterval: heartRateInfo.rRInterval 
     }; 

     heartRateData = pData; 
     return pData; 
    } 

    /** 
    * Returns last received motion data. 
    * 
    * @memberof models/heartRate 
    * @private 
    * @returns {object} 
    */ 
    function getData() { 
     return heartRateData; 
    } 

    /** 
    * Resets heart rate data. 
    * 
    * @memberof models/heartRate 
    * @private 
    */ 
    var newDir, newFile; 
    tizen.filesystem.resolve("documents", function(dir) 
     { 
      newDir = dir.createDirectory("newDir"); 
      newFile = newDir.createFile("beats.txt"); 
      newFile.openStream(
      "w", 
      function(fs) { 
       fs.write(getData()); 
       fs.close(); 
      }, function(e) { 
       console.log("Error " + e.message); 
      }, "UTF-8"); 
     }); 


    tizen.filesystem.resolve("documents", function(dir) 
      { 
       var file = dir.resolve("newDir/beats.txt"); 
       file.openStream(
        "r", 
        function(fs) { 
         var text = fs.read(file.fileSize); 
         fs.close(); 
         console.log(text); 
        }, function(e) { 
         console.log("Error " + e.message); 
        }, "UTF-8"); 
      }); 



    function resetData() { 
     heartRateData = { 
      rate: '-', 
      rrinterval: '-' 
     }; 
    } 

    /** 
    * Handles change event on current heart rate. 
    * 
    * @memberof models/heartRate 
    * @private 
    * @param {object} heartRateInfo 
    * @fires models.heartRate.change 
    */ 
    function handleHeartRateInfo(heartRateInfo) { 
     setHeartRateData(heartRateInfo); 
     event.fire('change', getData()); 
    } 

    /** 
    * Starts the sensor and registers a change listener. 
    * 
    * @memberof models/heartRate 
    * @public 
    */ 
    function start() { 
     resetData(); 
     heartRate.start(
      CONTEXT_TYPE, 
      function onSuccess(heartRateInfo) { 
       handleHeartRateInfo(heartRateInfo); 
      }, 
      function onError(error) { 
       console.log('error: ', error.message); 
      } 
     ); 
    } 

    /** 
    * Stops the sensor and unregisters a previously registered listener. 
    * 
    * @memberof models/heartRate 
    * @public 
    */ 
    function stop() { 
     heartRate.stop(CONTEXT_TYPE); 
    } 

答えて

0

何形式ファイルへで書いてみませんか?

function setHeartRateData(heartRateInfo) { 
    var pData = { 
     rate: heartRateInfo.heartRate, 
     rrinterval: heartRateInfo.rRInterval 
    }; 

    heartRateData = pData; 
    return pData; 
} 

この関数は、2つのプロパティを持つオブジェクトを作成して返します。また、(raterrinterval)と、それをファイルにobjectを書いてみるグローバルheartRateData

function getData() { 
    return heartRateData; 
} 

getData()リターングローバルhearRateData

 function(fs) { 
      fs.write(getData()); 
      fs.close(); 
     }, function(e) { 
      console.log("Error " + e.message); 
     }, "UTF-8"); 

fs.write(getData());にデータを設定します。
オブジェクトはデフォルトで文字列に変換されますtoString()メソッド。あなたはそれを感じるようにしたい場合は
object.toString()リターン[Object object]ので、ファイルが[Object object]

だけ書かれています。オブジェクトとプロパティに書式設定してください。getdata()例については

var data = getData(); 
fs.write("rate : " + data.rate); 
fs.write("RR interval : " + data.rrinterval); 

あなたは、このコードにfs.write(getData());をreaplce場合。
ファイルはそのように書かれています。

rate : [some number of rate] 
RR interval : [some number of RR interval] 
+0

ご返信ありがとうございました。ご迷惑をおかけして申し訳ありません。 :)私はそれを持っている場合、私はfs.write()の権利を変更する前に、変数のデータを設定する必要がありますか?たとえば、関数getDataの宣言の後に設定することはできますか?私は本当に愚かなnoobだと知っていますが、TizenベースのWebアプリケーションを開発するのは正確に私の分野ではありません;) – Marcofon

+0

getDataの後にデータを宣言しようとしましたが、私は使ってみました:fs.write( "rate : "+ data.rate);しかし、今、テキストファイルで、私は率:未定義を取得します。 – Marcofon

+0

私は別の質問があります。 fs.write()で何かを変更すると、実際に何か新しいテキストファイルを書くことができないのですか?私は説明しようとしている:私が使用する場合、例えば:fs.write( "レート:" + data.rate);私はレートのファイルを持っています:未定義。私もfs.write( "RR間隔:" + data.rrinterval);私はプロジェクトを再コンパイルする場合、私はまた、RRinterval:未定義が表示されることを期待しているが、私は私のエミュレータのインスタンスをキャンセルし、私はそれを再初期化する場合にのみ私が見ることができるようだ。私はそれが本当に別のタイプの質問であることを知っています。申し訳ありません。私はあなたからあまりにも多くの時間を盗んでいます!再度、感謝します! – Marcofon

0

あなたのコードを関数(fs)の中に直接書き込むことができました。しかし、私は1つだけの心拍数と1つのRR間隔を見ることができます。どのようにして一連のデータを書き込むことができますか?ありがとうございました!

var newDir, newFile; 
    tizen.filesystem.resolve("documents", function(dir) 
     { 
      newDir = dir.createDirectory("newDir"); 
      newFile = newDir.createFile("beats.txt"); 
      newFile.openStream(
      "w", 
      function(fs) { 
       var data = getData(); 
       fs.write("rate : " + data.rate); 
       fs.write("RR interval : " + data.rrinterval); 
       fs.close(); 
      }, function(e) { 
       console.log("Error " + e.message); 
      }, "UTF-8"); 
     }); 

    tizen.filesystem.resolve("documents", function(dir) 
      { 
      var file = dir.resolve("newDir/beats.txt"); 
       file.openStream(
        "r", 
        function(fs) { 
         var text = fs.read(file.fileSize); 
         fs.close(); 
         console.log(text); 
        }, function(e) { 
         console.log("Error " + e.message); 
        }, "UTF-8"); 
      }); 
+0

提案がありますか?更新:今、私はなぜ、テキストファイルがレートを示すのか分からない: - とRR間隔: - 。コードは変更されていません。私は全くの手がかりを持っていません! – Marcofon

関連する問題