从Garmin GPSMap 62设备读取数据

时间:2014-05-06 10:40:50

标签: javascript garmin

我需要使用设备控制Javascript库从GPSMap 62设备读取数据。问题是,与旧设备不同,此设备每天将其航点存储在单独的.GPX文件中。 javascript库期望所有轨道和航点都在current.gpx文件中,但62将它们存储在例如Waypoints_06-MAY-14.gpx等每天都有。

如果没有要求用户手动上传相应的文件,是否有人让DeviceControl库实际支持具有单独GPX文件的新设备?

作为额外的奖励,Garmin设备控制库已被弃用,因此不会有任何更新。

一些代码

startReadFromGps: function(deviceNumber) {
     this.plugin.StartReadFromGps( deviceNumber ); //invokes the external plugin
},

1 个答案:

答案 0 :(得分:1)

我在版本2.3-RC1中检出了插件(我不知道,您使用的是哪个版本)。

确实有startReadFromGps方法:

/** Initiates the read from the gps device conneted. Use finishReadFromGps and getGpsProgressXml to 
 * determine when the plugin is done with this operation. Also, use getGpsXml to extract the
 * actual data from the device. <br/>
 * <br/>
 * Minimum plugin version 2.0.0.4
 * 
 * @param deviceNumber {Number} assigned by the plugin, see getDevicesXml for 
 * assignment of that number.
 * @see #finishReadFromGps
 * @see #cancelReadFromGps
 * @see #getDevicesXml
 */
startReadFromGps: function(deviceNumber) {
     this.plugin.StartReadFromGps( deviceNumber );
},

所以它使用getGpsXml。我假设它使用读取的指定文件名,方法返回文件的内容。我的第一个想法是更改文件名 - 可以使用:

/** This the filename that wil contain the gps xml once the transfer is complete. Use with 
 * setWriteGpsXml to set what the file contents will be. Also, use startWriteToGps to 
 * actually make the write happen.
 * 
 * @private
 * @param filename {String} the actual filename that will end up on the device. Should only be the
 * name and not the extension. The plugin will append the extension portion to the file name--typically .gpx.
 * @see #setWriteGpsXml, #startWriteToGps, #startWriteFitnessData
 */
_setWriteFilename: function(filename) {
    this.plugin.FileName = filename;
},

但是_setWriteFilename是私有方法。但是被

调用
startWriteToGps: function(gpsXml, filename, deviceNumber)

startWriteFitnessData: function(tcdXml, deviceNumber, filename, dataTypeName)

从现在起,我将检查使用您指定的filename调用这些方法是否会永久覆盖文件名值,并且进一步调用startReadFromGps将使用新的filename

我无法测试它,我没有使用这个库,但你可以试一试。