我需要使用设备控制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
},
答案 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
。
我无法测试它,我没有使用这个库,但你可以试一试。