I'm very new to the world of coding and i'm a bit in trouble. I want to get heart rate data from a web app running in a Tizen web app for a Samsung Gear S. The web app is a sample from Samsung and it works, of course. I found some code snippets from the dev site of Tizen for writing on the filesystem. In fact i can create a folder under the usr's Documents folder with a text file in it, but i'm able only to obtain something like [Object object] in the text file. So, something is written, but i'm clearly not writing what i want. Some help will be appreciated. Thanks in advance!
Marco
/**
* 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);
}
What format do you want to write in to file?
function setHeartRateData(heartRateInfo) {
var pData = {
rate: heartRateInfo.heartRate,
rrinterval: heartRateInfo.rRInterval
};
heartRateData = pData;
return pData;
}
This function make and return a object that has two property. (rate
, rrinterval
) and also set data to global heartRateData
function getData() {
return heartRateData;
}
getData()
return global hearRateData
function(fs) {
fs.write(getData());
fs.close();
}, function(e) {
console.log("Error " + e.message);
}, "UTF-8");
fs.write(getData());
it try to write a object
to file.
So object is translate to string by default toString()
method.
object.toString()
return [Object object]
so file is written only the [Object object]
If you want to make it sense. try formating to object and properties from getdata()
.
For Example:
var data = getData();
fs.write("rate : " + data.rate);
fs.write("RR interval : " + data.rrinterval);
If you reaplce fs.write(getData());
to this code.
file will be written like it.
rate : [some number of rate]
RR interval : [some number of RR interval]