Garmin Edge800系で発生する[Course]フォルダへの変換に関する問題とワークアラウンド
0. はじめに
本稿は、ぼくが困っていたことの解消ついでの検証に関するnoteなので、参考にして何が起きても、責任は持たない。
またEdge800系(800,810)しか扱ったことがないので、Edgeシリーズとは明記していない。
最後に。仕様は確認していないし、本稿で取り扱っているのは事象に対するワークアラウンドになる。
1. 問題の背景と内容
Windows PCが扱える多くの方は、Edge800系にルートを転送するときに、以下のような手順を踏むと思う。
- ルートラボやRidewithGPSなどで、gpx,tcxファイルを作成する
- Edge800の[Garmin] - [New Files]フォルダに、gpx,tcxファイルをコピーする
- Edge800をPCから切断し、電源を入れる
Edge800の電源を入れると、[New Files]フォルダのgpx,tcxファイルはfitファイルに変換され、[Garmin] - [Course]フォルダに保存される。また、元の[New Files]フォルダの内容は削除される。
このとき、[New Files]フォルダにコピーしたファイル数と、[Course]フォルダのfitに変換されたファイル数が合わないことがある。
ぼくの遭遇した限りでは、[Course]フォルダに1つしかコースが変換されていないことがある。
本稿で取り扱う問題とは、上記を指す。
2. 糸口に気づくまで
この問題は、Edge800を使っていたときから(故障のためいまはEdge810)確認している。
Garmin Expressを使用しても、同様に1つしかfitファイルが作成されないのだ。幸い、当時は、コース自体が上書きされてしまうことなかかったため、コピーしたいファイルの数だけ、手順を繰り返していた。
600kmのときなどは、抜き差しを10数回繰り返していたわけで、たいへんに手間だった。
当時はEdge800の故障か仕様かという認識であった。Factory Resetを行っても変わらなかった。
解消への糸口に気づいたのは、変換後のコースをEdge800から確認したときだった。
- 変換前:BRM318_1.tcx
- 変換後:BRM318—200km-
これまでコピーするファイル名をfitファイル名に使用しているものとばかり思っていたから、変換前のファイル名に含まれない'200km'の情報に\ティン/ときた。
変換前ファイルのパラメータを参照しているということは、Windows上でファイル名をいじろうが、重複の恐れがある。
……つまり。名前が重複して、作った端から上書きされてんじゃねぇのこれ。
3. 確認
変換前のファイル(BRM318_1.tcx)をエディタで開いてみる。
<?xml version="1.0" encoding="UTF-8"?> <TrainingCenterDatabase xmlns="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2 http://www.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd"> <Folders> <Courses> <CourseFolder Name="Courses"> <CourseNameRef> <Id>BRM318---200km-</Id> </CourseNameRef> </CourseFolder> </Courses> </Folders> <Courses> <Course> <Name>BRM318---200km-</Name>
念のため、続く2,3,4も確認する(掲載はBRM318_2.tcx)。
<?xml version="1.0" encoding="UTF-8"?> <TrainingCenterDatabase xmlns="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2 http://www.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd"> <Folders> <Courses> <CourseFolder Name="Courses"> <CourseNameRef> <Id>BRM318---200km-</Id> </CourseNameRef> </CourseFolder> </Courses> </Folders> <Courses> <Course> <Name>BRM318---200km-</Name>
なんでか知らんが重複している。別ファイルのIdとNameが重複している。重複したらアカンとこが重複している。そら上書きもされますよね。ふざけろ。
なおgpxでも確認してみたが、こちらは重複していないように見える。ただしサンプルのBRM318西東京200kmしおかつお達磨山はダメで、その前に出ていたBRM218千葉300km銚子はOKだった。字数制限なんじゃないかな。
<?xml version="1.0" encoding="UTF-8"?> <gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gpxdata="http://www.cluetrust.com/XML/GPXDATA/1/0" xmlns="http://www.topografix.com/GPX/1/0" xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd http://www.cluetrust.com/XML/GPXDATA/1/0 http://www.cluetrust.com/Schemas/gpxdata10.xsd" version="1.0" creator="http://ridewithgps.com/"> <author>RideWithGPS LLC</author> <url>https://ridewithgps.com/routes/19541804</url> <time>2017-03-13T22:28:11Z</time> <trk> <name>BRM318西東京200kmしおかつお達磨山_1</name>
<?xml version="1.0" encoding="UTF-8"?> <gpx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gpxdata="http://www.cluetrust.com/XML/GPXDATA/1/0" xmlns="http://www.topografix.com/GPX/1/0" xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd http://www.cluetrust.com/XML/GPXDATA/1/0 http://www.cluetrust.com/Schemas/gpxdata10.xsd" version="1.0" creator="http://ridewithgps.com/"> <author>RideWithGPS LLC</author> <url>https://ridewithgps.com/routes/19541893</url> <time>2017-03-13T22:34:59Z</time> <trk> <name>BRM318西東京200kmしおかつお達磨山_2</name>
4. ワークアラウンド
問題点が明らかになったため、この時点で興味のほとんどは失せている。んー、あー、もう固有にすりゃあなんでもいいんでしょ?という具合。
下記を試すとよい。一応手元で確認し、正しくfit変換された方法で、事故りにくいという観点から、やってみたほうがよい順序に並べている。
- GPSiesなどで、Garmin Course TCXへ再変換する
- Nameタグの名前を固有に変更する
- Nameタグの名前を縮める(gpx)
tcxをGPSiesに食わせてGarmin Course TCXへ変換すると、こんな感じになる。比較はBRM318_1.tcxとBRM318_2.tcx。
<?xml version="1.0" encoding="UTF-8"?> <TrainingCenterDatabase xmlns="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2 http://www.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd"> <Folders> <Courses> <CourseFolder Name="GPSies"> <CourseNameRef> <Id>Brm318_1</Id> </CourseNameRef> </CourseFolder> </Courses> </Folders> <Courses> <Course> <Name>Brm318_1</Name>
<?xml version="1.0" encoding="UTF-8"?> <TrainingCenterDatabase xmlns="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2 http://www.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd"> <Folders> <Courses> <CourseFolder Name="GPSies"> <CourseNameRef> <Id>Brm318_2</Id> </CourseNameRef> </CourseFolder> </Courses> </Folders> <Courses> <Course> <Name>Brm318_2</Name>
gpxの字数制限への根拠として、<name>BRM318西東京200kmしおかつお達磨山_1</name>
ではダメだったが、<name>BRM318_1</name>
はOKだった。
銚子300kmがOKだったことを踏まえると、日本語混じりがNGではなく、字数制限なんだろうなあと思う。Nameタグの何文字目までしか認識しないよ、というような。
5. おわりに
これ以上は興味を持てないので検証はしないが、残課題としては下記。
- Nameタグの字数制限閾値確認
- RidewithGPSでファイル作成時に日本語を混ぜない場合のtcxのNameタグ確認
後者は固有になってるんじゃないかな。確認するとすれば、次回BRM401千葉400kmクラシックの準備に時間があればやるけれど。