我正在尝试在文本文件上写入三星 Gear S 的 Tizen 可穿戴应用程序中的一些数据

I'm trying to write on a text file some data in a Tizen wearable application for Samsung Gear S

我对编码世界还很陌生,有点麻烦。我想从 Samsung Gear S 的 Tizen 网络应用程序中的网络应用程序 运行 获取心率数据。 该网络应用程序是三星的示例,当然可以正常工作。我从 Tizen 的开发站点找到了一些用于在文件系统上编写的代码片段。事实上,我可以在 usr 的 Documents 文件夹下创建一个文件夹,其中包含一个文本文件,但我只能在文本文件中获得类似 [Object object] 的内容。所以,写了一些东西,但我显然没有写我想要的东西。一些帮助将不胜感激。提前致谢!

马可

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

您想写入什么格式的文件?

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

    heartRateData = pData;
    return pData;
}

此函数使 return 成为具有两个 属性 的对象。 (rate, rrinterval) 并将数据设置为全局 heartRateData

function getData() {
    return heartRateData;
}

getData() return 全局 hearRateData

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

fs.write(getData()); 它尝试将 object 写入文件。
所以对象默认转换为字符串 toString() 方法。
object.toString() return [Object object] 所以文件只写入 [Object object]

如果你想让它有意义。尝试从 getdata().

格式化为对象和属性

例如:

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

如果您重新 fs.write(getData()); 此代码。
文件会这样写。

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

我设法写了一些东西,把你的代码直接放在函数中(fs);但是,我只能看到一个心率和一个 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");
            });