ダイビングツールの1つに「ダイビングコンピュータ」というものがあるのだが、コレかなり高性能で面白い。
ダイビング中の潜水深度を表示してくれるだけでなく、減圧停止時間を知らせてくれたり、過去のダイビングを記録してくれていたりする。
そして、ダイビングコンピュータ(以下ダイコン)のデータをPCに落とせるらしいので、今回挑戦してみた。
ダイコンの機種はSUUNTO D4I NOVO LIMEで、PCはMacです。
SUUNTO DM5のインストール
以下のページからSUUNTO DM5をインストールします。
http://www.suunto.com/ja-jp/support/suunto-dm5
使うには、以下のものも必要みたいです。
Mono
FTDI USB Serial Driver
#USB端子で端末を差し込む
USB接続するだけなのだが、不器用な私は差し込むのに苦労した。
というのも、防水性は勿論のこと、水深100mくらいまで耐えうる設計みたいなので、あまり普段は見ない端子です。
全然、固定されない…と四苦八苦していたが、赤ポチマークを上にして差し込んで少し左に回すと固定された。
#起動して日本語設定
「起動してもダイコンを認識しない!!」と思ったが、再起動したら動いた。
日本語設定は、File→Setting→General→Select languageで日本語を選択すればいけます。
こんなカンジに表示されました。
#データをエクスポートする
ファイル→エクスポートでいけます。
形式はXML・PDF・SDE・SMLなどでエクスポートできます。
私はSMLが気に入りました。
温度はケルビンなんですねー。
<?xml version="1.0" encoding="utf-8"?>
<sml SdkVersion="2.6.6" Modified="2012-09-22T10:39:51" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.suunto.com/schemas/sml">
<DeviceLog>
<Header>
<Battery>3</Battery>
<DateTime>2015-09-21T11:12:26</DateTime>
<Duration>1883</Duration>
<Depth>
<Max>22.26</Max>
<Avg>15.23</Avg>
</Depth>
<Diving>
<DiveMode>Air</DiveMode>
<Conservatism>0</Conservatism>
<Altitude>0</Altitude>
<SurfaceTime>0</SurfaceTime>
<NumberInSeries>1</NumberInSeries>
<SurfacePressure>101500</SurfacePressure>
<Algorithm>Suunto Technical RGBM</Algorithm>
<Gases>
<Gas>
<State>Air</State>
<Oxygen>0.210</Oxygen>
</Gas>
</Gases>
<StartTissue>
<CNS>0</CNS>
<OTU>0</OTU>
<Nitrogen>
<Pressure>79000</Pressure>
<Pressure>79000</Pressure>
<Pressure>79000</Pressure>
<Pressure>79000</Pressure>
<Pressure>79000</Pressure>
<Pressure>79000</Pressure>
<Pressure>79000</Pressure>
<Pressure>79000</Pressure>
<Pressure>79000</Pressure>
</Nitrogen>
<RgbmNitrogen>1</RgbmNitrogen>
</StartTissue>
<EndTissue>
<CNS>0.034375</CNS>
<OTU>7.51171875</OTU>
<OLF>0.034375</OLF>
<Nitrogen>
<Pressure>181300</Pressure>
<Pressure>189900</Pressure>
<Pressure>181400</Pressure>
<Pressure>157200</Pressure>
<Pressure>128900</Pressure>
<Pressure>107500</Pressure>
<Pressure>98800</Pressure>
<Pressure>89400</Pressure>
<Pressure>84300</Pressure>
</Nitrogen>
<RgbmNitrogen>1</RgbmNitrogen>
</EndTissue>
</Diving>
<SampleInterval>20</SampleInterval>
</Header>
<Device>
<Name>Suunto D4i</Name>
<SerialNumber>11111111</SerialNumber>
<Info>
<SW>1.0.0</SW>
<HW>0.0.0</HW>
<BSL>0.0.0</BSL>
</Info>
</Device>
<Samples>
<Sample>
<Time>0</Time>
<Events>
<State>
<Type>Below Surface</Type>
<Active>true</Active>
</State>
<State>
<Type>Wet Outside</Type>
<Active>true</Active>
</State>
<State>
<Type>Below Wet Activation Depth</Type>
<Active>true</Active>
</State>
</Events>
</Sample>
<Sample>
<Time>0</Time>
<Depth>1.49</Depth>
<Temperature>302.15</Temperature>
<Events>
<State>
<Type>Dive Active</Type>
<Active>true</Active>
</State>
</Events>
</Sample>
<Sample>
<Time>20</Time>
<Depth>3.75</Depth>
<Temperature>302.15</Temperature>
</Sample>
<Sample>
<Time>40</Time>
<Depth>5.51</Depth>
<Temperature>302.15</Temperature>
</Sample>
<Sample>
<Time>60</Time>
<Depth>8.289999999999999</Depth>
<Temperature>302.15</Temperature>
</Sample>
<Sample>
<Time>80</Time>
<Depth>9.9</Depth>
<Temperature>302.15</Temperature>
</Sample>
<Sample>
<Time>100</Time>
<Depth>9.119999999999999</Depth>
<Temperature>302.15</Temperature>
</Sample>
<Sample>
<Time>120</Time>
<Depth>10.33</Depth>
<Temperature>302.15</Temperature>
</Sample>
<Sample>
<Time>140</Time>
<Depth>12.34</Depth>
<Temperature>302.15</Temperature>
</Sample>
<Sample>
<Time>160</Time>
<Depth>13.96</Depth>
<Temperature>302.15</Temperature>
</Sample>
<Sample>
<Time>180</Time>
<Depth>14.28</Depth>
<Temperature>302.15</Temperature>
</Sample>
<Sample>
<Time>200</Time>
<Depth>15.75</Depth>
<Temperature>302.15</Temperature>
</Sample>
・・・・・・・・・・・・・・・・・・・・
<Sample>
<Time>1940</Time>
<Depth>1.19</Depth>
<Temperature>302.15</Temperature>
<Events>
<Alarm>
<Type>Mandatory Safety Stop Broken</Type>
<Active>false</Active>
</Alarm>
<Notify>
<Type>Tissue Level</Type>
</Notify>
<State>
<Type>Below Surface</Type>
<Active>false</Active>
</State>
</Events>
</Sample>
</Samples>
</DeviceLog>
</sml>
(余談)取り出してみたファイルでシェル芸に挑戦した
DM5で見やすく表示されるので特に実行する必要もないのだが、せっかく取り出せたので、シェル芸に挑戦した。
芸人さんには程遠すぎる腕だが、このデータなら出来るかもと挑戦。何事も挑戦。
水温が摂氏20度以上の水深の平均を求める
cat sample.sml | grep -E -e "<Depth\>.*</Depth\>|<Temperature>.*</Temperature>" | tr -d "\t" | perl -pe "s/<\/.*>//g" | tr -d "\n" | perl -pe "s/<Depth>/\n/g" | perl -pe "s/<Temperature>/\t/g" | awk '{if($2>293){a=a+$1;k=k+1}}END{print a/k;}'
### 潜った時の深度をグラフっぽく表示
cat sample.sml | grep -E \<Depth\>.*\</Depth\> | perl -pe 's/<.{0,1}Depth>//g' | awk '{a=int($1+0.5);for(i=1;i<=a;i++){printf "*"};print "";}'
絶対もっとスマートに出来るハズなのに。。。。。
難しい。。。。
参考にした資料:【問題と解答】第24回◯◯o◯裏番組シェル芸勉強会