SPORTident SDK を基盤とした ARDF・オリエンテーリング用独自集計システムの開発:技術要件、設計論、および既存エコシステムの統合に関する網羅的調査報告

電子パンチシステムの変遷と SPORTident の技術的地位

オリエンテーリングや ARDF(Amateur Radio Direction Finding)といったナビゲーションスポーツにおいて、競技者の通過証明とタイム計測を正確に行うことは、競技の公平性を担保するための最優先課題である。古くは紙のコントロールカードに針で穴を開けるパンチ方式が主流であったが、1990年代後半から 2000年代にかけて電子パンチシステムへの移行が急速に進んだ。その中心的な役割を果たしてきたのが、ドイツの SPORTident 社が開発したシステムである 1。このシステムは、RFID(無線周波数識別)技術を応用し、競技者が携行する「SI カード」と、各チェックポイントに設置される「SI ステーション」が通信することで、通過時刻とポイント番号を瞬時に記録する仕組みである 1

開発者が独自の集計システムを構築しようとする際、まず直面するのは、このハードウェアからいかにして信頼性の高いデータを取得し、それを競技ルールに基づいた順位表へと変換するかという技術的課題である。SPORTident システムは、単なる計測機器ではなく、物理層のバイナリプロトコルからクラウドベースの REST API まで、多層的なインターフェースを提供している 4。本報告では、SPORTident SDK を利用した独自開発の道筋を、ハードウェアの仕様、通信プロトコル、既存ソフトウェアの解析、および具体的な実装手法の観点から詳細に検討する。

SPORTident ハードウェアの仕様と動作メカニズム

独自システムの設計において、SI カードとステーションの種類、およびそれらの性能特性を理解することは不可欠である。カードの世代によってデータ構造や転送速度が異なり、これがシステムの応答性や集計ロジックに直接影響を与えるためである。

SI カードの特性と比較

SI カードは、パッシブ型の RFID タグに近い動作をする「クラシック・システム」と、電池を内蔵し非接触での記録を可能にする「AIR+ システム(SIAC)」に大別される 1

カードモデルカード番号範囲パンチ容量時刻解像度/形式転送速度(接触)特徴・用途
SI-Card51 – 499,99930+612時間形式330 ms初期型。低容量、低速 6
SI-Card6500,000 – 999,9996424時間形式130 ms中期型。一般普及モデル 6
SI-Card8/91M – 2.99M30/5024時間形式115 ms高速化された汎用モデル 6
SI-Card10/117M – 9.99M12824時間形式60 ms現行の主流。高容量・高速 6
SIAC8M – 8.99M12824時間形式60 msAIR+対応。非接触記録が可能 6

SI-Card5 は内部で 12 時間形式の時刻を保持しているため、12 時間を超える競技や、午前・午後を跨ぐイベントの集計では、システム側で日付の境界を補正する処理が必要となる 6。これに対し、SI-Card6 以降のモデルは 24 時間形式および曜日情報を保持しており、より堅牢な集計が可能となっている 6

SI ステーションの機能とバックアップメモリ

ステーション(BSF7, BSF8, BSF9, BS11 等)は、競技者のカードにデータを書き込むと同時に、自身の内部メモリに「バックアップ記録」を保存する 1。このバックアップメモリは、万が一競技者のカードが破損したり、読み取り時にデータが消失したりした場合の最終的な証拠となる。

  • バックアップ容量: 主要なステーションは最大 21,802 件のパンチ記録、または 1,022 枚分のカード全データを保持できる 7
  • 時刻精度: 内部時計は温度補償付き水晶発振器を使用しており、月差 +/- 20 秒以内の精度を持つ 7
  • 動作モード: ステーションは設定により、CLEAR(消去)、CHECK(確認)、START(開始)、CONTROL(通過点)、FINISH(終了)の各役割を果たす 10

独自システム開発においては、メインステーション(BSM7 や BSM8)を PC に接続し、これらのステーションからリアルタイムにデータを吸い上げる「リードアウト・プロセス」の実装が核となる 8

SPORTident SDK と開発者向けツールセット

公式の SPORTident SDK は、ハードウェアとソフトウェアの架け橋となるライブラリ群である。これはオープンソースではなく、メーカーに直接リクエストして入手する「プロプライエタリなツールセット」という位置付けである 4

###.NET Core Communication Library 現代の開発環境において、最も推奨されるアプローチは「.NET Core Communication library」の利用である 4。このライブラリは、Windows プラットフォーム上での動作をターゲットとしており、以下の機能を提供する。

  1. デバイス接続管理: USB ポートを介したメインステーションの自動検出と接続維持。
  2. バイナリデコード: ステーションから送られてくる複雑なバイナリパケットを、開発者が扱いやすいオブジェクト形式(カード番号、コード番号、パンチ時刻等)に変換。
  3. コマンド送信: ステーションの時刻設定、動作モードの変更、バックアップデータの取得要請。

SDK の利用には、.NET Framework 4.8 以降、あるいは.NET 5/6 以降の環境が必要である 10。また、Silicon Labs 社の CP210x チップセットを使用したメインステーションと通信するために、公式の USB VCP(Virtual COM Port)ドライバのインストールが必須となる 11

PC Programmer’s Guide (バイナリプロトコル)

かつて主流であった「PC Programmer’s Guide」は、シリアル通信上のバイナリプロトコルを直接定義した文書であるが、現在は「非推奨(Deprecated)」とされている 4。これは、ハードウェアの進化(例:SRR 無線通信や新世代チップ)に伴い、低レベルのプロトコルを直接叩くことが困難かつ非効率になったためである。しかし、Linux や macOS といった Windows 以外のプラットフォームで動作させたい場合、あるいは極限まで軽量なシステムを構築したい場合には、このバイナリプロトコルの理解が必要になることがある。

SDK 利用の具体的なステップ

独自システム開発を開始する際のフローは以下の通りである。

  • 申請: SPORTident 社のサポートページから開発者登録を行い、SDK の提供を依頼する 4
  • 環境構築: Visual Studio 等の IDE を用意し、提供された DLL ファイルをプロジェクトに参照追加する。
  • 通信確立: SiHandler 等のクラスを用いてシリアルポートをオープンし、ステーションとの通信を開始する。
  • イベント実装: カードが挿入された際に発火するイベントハンドラを記述し、読み取られた SiDataFrame からデータを抽出する 15

通信プロトコルとデータ処理の深層

SDK を介して取得されるデータ、あるいはバイナリプロトコルで直接取得されるデータは、特定のフレーム構造を持っている。この構造を理解することは、データの欠落や誤りを防ぐ上で極めて重要である。

バイナリメッセージフレーム

SPORTident の通信は、古典的なシリアル通信の作法に従っている。

  • STX (0x02): 送信開始。
  • Command Byte: 命令の種類(例:0x53 はスレーブステーションからの応答)。
  • Length Byte: データの長さ。
  • Data Payload: パンチ記録やステーション情報。
  • CRC-16: データの整合性を確認するためのチェックサム 16
  • ETX (0x03): 送信終了。

CRC 計算においては、多項式として 0x8005 を使用する CRC-16-CCITT が一般的に用いられるが、プロトコルのバージョンによって初期値や計算順序が異なる場合があるため、SDK が提供する計算メソッドを使用することが最も安全である 18

時刻データのデコードと解像度

SPORTident システムの大きな特徴は、時刻を「1/256 秒」という非常に細かい単位で保持している点にある 7

  • 内部表現: 秒数に 256 を乗じた整数値として扱われる。
  • 変換公式: TimeInSeconds = InternalValue / 256.0
  • 精度: 約 4ms の分解能。スプリント競技や、ARDF でのコンマ秒を争うゴール判定において、この解像度が威力を発揮する 7

集計システムでは、この高精度データを維持しつつ、最終的な出力結果として HH:MM:SS.f 形式に整形する処理を実装することになる 19

SPORTident Center と Web サービスの統合

近年、競技運営の現場では、山間部のチェックポイント通過情報を即座に本部に転送し、リアルタイム速報を行うニーズが高まっている。これに対応するのが「SPORTident Center」というクラウド基盤と、それを操作するための「Center REST API」である 5

Center REST API の活用

独自開発システムにおいて、物理的なステーション接続に頼らず、クラウドからデータを取得する設計を選択できる。

  • 認証: ユーザーごとの API キーを用いた HTTP ヘッダー認証 5
  • リソース: イベント(Events)、パンチ(Punches)、モデム(Modems)などのリソースを操作可能 5
  • 効率的なデータ取得:
  • afterId パラメータを使用することで、既に受信済みのデータ以降の「新しいパンチ」のみを取得できる。
  • ポーリング間隔を調整することで、ネットワーク負荷を抑えつつ準リアルタイムの速報を実現する 5

SIAC バッテリーチェック API

ARDF 競技で頻用される SIAC カードは、内部電池の状態が競技の成否を分ける。SDK を用いた受付システムの一部として、以下の API(https://api.sportident.com/api/rest/v1/products/si-cards/{cardNumber})を統合することで、競技開始前にバッテリー寿命が尽きかけている競技者を自動検出し、カード交換を促すといった高度な運営サポートが可能になる 22

既存のオープンソース・プロジェクトの調査と類似システムの分析

独自システムを構築する際、既存のオープンソース資産を参考にすることは、車輪の再発明を避け、設計の質を高めるために不可欠である。

MeOS (Much Easier Orienteering System)

MeOS は、Erik Melin 氏によって開発された、オリエンテーリング・ARDF 運営用のデファクトスタンダードとも言えるフリーソフトウェアである 23

  • アーキテクチャ: C++ で記述されており、GUI フレームワークを含めた完全な大会運営環境を提供する 24
  • 拡張性: 「MRL (MeOS Result Language)」という独自のスクリプト言語を搭載しており、ユーザーはプログラム本体をコンパイルし直すことなく、独自の集計ルールを追加できる 25
  • データ連携: 「MOP (MeOS Online Protocol)」という XML ベースのプロトコルを用いて、Web サーバーへ速報データを送信する 28

Python ベースのライブラリとツール

SDK を直接使わずとも、有志によって解析されたプロトコルスタックを利用できるケースが多い。

  1. sireader2.py: Per Magnusson 氏による、SPORTident 通信プロトコルの最も詳細な Python 実装である 18。 Extended Protocol のデコード、ステーションの設定変更、バックアップ読み出しなど、SDK に匹敵する機能を有しており、ARDF の独自集計スクリプトを書く際の「標準ライブラリ」としての地位を確立している 30
  2. pysport (SportOrg): Python 3 と PyQt をベースにしたモダンな運営システム。データベース管理から結果出力までを Python エコシステム内で完結させている 32

モバイルおよびウェブベースのソリューション

  • SI-Droid: Android タブレットをメインステーションに接続し、小規模な記録会を運営するためのアプリ。Bluetooth プリンタでの速報印刷に対応している 34
  • sportident.js: WebUSB を介してブラウザから直接ステーションを読み取るための実験的な JavaScript 実装 35

ARDF 競技に特化した集計システムの設計要件

ARDF 競技は、通常のオリエンテーリングとは異なる特有の集計ロジックを必要とする 36。独自システムを開発する場合、以下の ARDF 仕様を SDK のデータ取得レイヤーの上に構築しなければならない。

送信機(TX)探索数優先の順位決定

ARDF の順位決定における黄金律は、「TX 探索数 > 所要時間」である 37

  • たとえ 1 時間早くゴールしても、探索した TX の数が 1 つ少なければ、順位は下位になる。
  • 集計エンジンは、カードから読み取られた全パンチ記録のうち、競技者のカテゴリーに割り当てられた「有効な TX」の重複のない数をカウントするロジックを持つ必要がある 37

ラリー形式のスタート時刻管理

ARDF 大会では、電波の輻輳を避けるため、5 分おきに数名ずつがスタートする 37

  • 競技者 A のスタート時刻は 10:05、競技者 B は 10:10 といった個別管理が必要。
  • SI システム上では、「START ステーションでのパンチ時刻」を実スタート時刻として採用するか、あるいは「あらかじめ割り当てられたリスト上の時刻」を採用するかを選択できる柔軟性が求められる 40

制限時間(Time Limit)の厳格な運用

多くの ARDF 大会では、制限時間(例:120分)を 1 秒でも超えた場合、その競技者の記録は「失格(DSQ)」あるいは「時間超過(Overtime)」として処理される 39

  • ロジック例: If (FinishTime – StartTime > Limit) Status = DNF/OVT
  • この判定は、ゴールパンチを読み取った瞬間に自動で行われることが、運営の円滑化に繋がる。

独自システムのアーキテクチャ設計

SDK を利用したシステム開発において、推奨される 4 層構造のアーキテクチャを以下に詳述する。

1. ハードウェア通信層 (Hardware Abstraction Layer)

この層の役割は、物理的な SI ステーションとの通信を抽象化することである。

  • SDK 統合: 公式.NET ライブラリの SiHandler をラップし、デバイスの接続・切断イベントを上位層に通知する。
  • エラーハンドリング: 「ErrA (カード引き抜きが早すぎた)」「ErrB (書き込み失敗)」といったステーションからのエラーコードを適切に解釈し、再操作を促す UI フィードバックを生成する 10
  • 通信速度の最適化: BSM8 等の現行ステーションでは 38,400 baud を使用し、読み取りの高速化を図る 7

2. データ検証・変換層 (Data Validation & Transformation)

読み取られた「生データ」を、競技に使用可能な「情報」に変換する。

  • パンチデータのクリーニング: 受付時のテストパンチや、前日の残留データなどを、コード番号や時刻範囲に基づいて自動的に除外する 41
  • 時刻補正: ステーション間の時刻同期ズレ(Time Drift)を補正する。特にフィニッシュ時刻は競技成績に直結するため、運営 PC のマスター時刻との差異を考慮した実装が望ましい 10

3. 集計・順位判定層 (Scoring & Ranking Engine)

競技ルールを適用し、ランキングを動的に生成する。

  • ARDF/オリエンテーリング混在対応: TX 数優先か、タイム優先かをイベントごとに切り替えられる設計。
  • IOF XML 準拠: 内部データモデルを「IOF Data Standard 3.0」に準拠させることで、OCAD(コース設計ソフト)からのコースデータの取り込みや、他システムへの結果出力を容易にする 44

4. ユーザーインターフェース層 (Presentation Layer)

運営者と競技者に情報を提示する。

  • ライブ・モニタ: カードが読み取られるたびに、その競技者の通過状況、暫定順位、および「TX 探索漏れ」を即座に表示する。
  • 速報出力: 競技者に手渡す「スプリットタイム・レシート」の生成。これには、各 TX 間のラップタイムや平均速度を含めることが一般的である 40

独自開発における具体的な実装ガイドライン

開発をスムーズに進めるためのステップバイステップの作業方法を以下に示す。

ステップ 1: 通信プロトコルの実機検証

SDK を入手する前であっても、シリアルモニターソフト(例:Tera Term)を使用して、ステーションがカード挿入時にどのようなデータを吐き出すかを確認することができる。これにより、ボーレート設定(38,400 vs 4,800)や、Extended Protocol が有効になっているかどうかの確信が得られる 7

ステップ 2:.NET 開発環境のセットアップ

最新の Visual Studio を使用し、C# でコンソールアプリケーションを作成するのが最短の学習経路である。

  • DllImport 等を用いて SDK の DLL 内の関数を呼び出すか、マネージドなラッパーが提供されている場合はそれを使用する 47
  • シリアルポートの列挙(Enumeration)を行い、SPORTident 特有の VID/PID(Silicon Labs)を持つポートを自動選択するルーチンを作成する 14

ステップ 3: データ構造の定義

IOF XML 規格をリファレンスとし、以下のようなデータクラスを定義する。

クラス/構造体名保持するプロパティ役割
CompetitorID, Name, Club, SICard, Category競技者マスター情報 40
PunchCode, Time, IsValidカードから読み取られた個々のパンチ記録 21
ResultTotalTime, TXCount, Status (OK, MP, DNF)集計後の競技成績判定 39

ステップ 4: ARDF 集計ロジックの実装

ARDF において最も重要な「有効パンチの抽出」ロジックの疑似コード例:

C#

// 競技者がパンチしたすべての記録から有効なTXを抽出
var validPunches = cardData.Punches
  .Where(p => eventSetting.RequiredTXList.Contains(p.Code)) // カテゴリーで必要なTXか
  .GroupBy(p => p.Code) // 同じTXを複数回パンチした場合をまとめる
  .Select(g => g.First()) // 最初の通過時刻を採用
  .OrderBy(p => p.Time); // 通過順に並べる

ステップ 5: 現場での例外シナリオへの対応

実際の大会運営では、技術的な正論だけでは解決できない事態が発生する。

  • カードの消去忘れ: 前回の競技データが残っている場合、システム側で今回の競技時間外のデータを無視するフィルタリングが必要である 41
  • バックアップデータ救済: SI カードの読み取りに失敗した場合、受付ステーションに保存されたバックアップ記録からカード番号を検索し、データを復元する機能を実装する 7

システムの比較と選定の指針

独自開発を行うべきか、既存の MeOS 等をカスタマイズすべきかの判断基準を以下にまとめる。

比較項目既存ソフト (MeOS)独自開発 (SDK利用)
開発コスト低(設定のみ)高(数ヶ月の開発期間)
柔軟性中(MRLの範囲内)極大(ソースコードレベル)
日本語対応有志の翻訳に依存 48完全に自由
特定競技への最適化一般的特定の ARDF 大会ルールに完全特化可能
ハードウェア依存度メーカーの更新待ち独自にドライバ層を調整可能

独自開発の最大の強みは、ユーザーインターフェースを日本の競技運営の慣習(例:受付時の特定の署名フロー、賞状印刷のレイアウト、特定の大学無線部の伝統的な集計形式)に完全に合わせられる点にある。また、WebAPI を統合して、スマートフォンからリアルタイムで成績を確認できる「イベント・ダッシュボード」を構築することも容易である。

結論と将来への提言

SPORTident SDK を利用した独自集計システムの開発は、競技運営のデジタルトランスフォーメーション(DX)を推進するための極めて強力な手段である。本報告で明らかにしたように、ハードウェアの物理的な特性からクラウドの REST API まで、開発者が利用できる技術スタックは多岐にわたる。

  1. 段階的な導入: まずは Python 等の軽量なスクリプト(sireader2.py ベース)で特定の集計を自動化し、徐々に SDK を用いたフルスペックの GUI アプリケーションへと拡張することが、リスクを抑えた開発手法として推奨される 30
  2. 標準の遵守: IOF XML 3.0 等の国際標準フォーマットをデータ交換の基盤に据えることで、OCAD や Livelox(GPS追跡サイト)といった既存のエコシステムとの連携を維持し、システムの孤立を防ぐことができる 29
  3. コミュニティへの還元: 日本国内の ARDF やオリエンテーリング界において、独自開発された知見やコードをオープンに共有する文化を醸成することで、競技全体の技術水準の向上と、運営スタッフの負担軽減を同時に達成することが可能となる。

SPORTident システムは、単なる「時計」ではなく、競技の全プロセスを記述する「データジェネレーター」である。SDK を通じた独自のシステム開発は、そのデータの潜在能力を最大限に引き出し、次世代のナビゲーションスポーツの形を定義する活動に他ならない。

引用文献

  1. Quick overview – SPORTident Documentation, 4月 6, 2026にアクセス、 https://docs.sportident.com/user-guide/quick-overview
  2. Introduction – SPORTident Documentation, 4月 6, 2026にアクセス、 https://docs.sportident.com/user-guide/introduction
  3. MASARYK UNIVERSITY – IS MUNI, 4月 6, 2026にアクセス、 https://is.muni.cz/th/u633g/Thesis_Archive.pdf
  4. Developers – SPORTident, 4月 6, 2026にアクセス、 https://www.sportident.com/support/developers
  5. Center REST API – SPORTident Documentation, 4月 6, 2026にアクセス、 https://docs.sportident.com/developers/center-rest-api
  6. Cards Overview – SPORTident Documentation, 4月 6, 2026にアクセス、 https://docs.sportident.com/products/cards/cards-overview
  7. BS7-S Sprinter | SPORTident Documentation, 4月 6, 2026にアクセス、 https://docs.sportident.com/products/stations/bs7-s-sprinter
  8. mini Reader (BSM8-USB) – SPORTident Documentation, 4月 6, 2026にアクセス、 https://docs.sportident.com/products/stations/bsm8
  9. BSM7-USB and BSM7-RS232 – SPORTident Documentation, 4月 6, 2026にアクセス、 https://docs.sportident.com/products/stations/bsm7-usb-rs232
  10. Config+ | SPORTident Documentation, 4月 6, 2026にアクセス、 https://docs.sportident.com/user-guide/config-plus
  11. SPORTident BSx7/8 firmware 649 release notes Contents, 4月 6, 2026にアクセス、 https://www.sportident.com/download/si_boot_firmware_649_release_notes_en.pdf
  12. Software Downloads – SPORTident UK, 4月 6, 2026にアクセス、 https://www.sportident.co.uk/support/downloads.php
  13. BS7/8/9 Firmware – SPORTident Documentation, 4月 6, 2026にアクセス、 https://docs.sportident.com/products/stations/bs7-8-9-firmware
  14. USB Serial data from Silicon Labs Sportident device | B4X Programming Forum, 4月 6, 2026にアクセス、 https://www.b4x.com/android/forum/threads/usb-serial-data-from-silicon-labs-sportident-device.46795/
  15. C# .NET SPORTIdent Library based on the Java library GecoSI – GitHub, 4月 6, 2026にアクセス、 https://github.com/yannisgu/GecoSI.Net
  16. Binary Protocol – CR Defense Group, 4月 6, 2026にアクセス、 https://www.crdefensegroup.com/AutonomousVehicles/CameraManufacturing/StereoCameraManufacturing/Duro/Files/SwiftNavigationBinaryProtocolSpecificationv4.1.1.pdf
  17. How to identify which CRC-16 variant is used in this binary protocol? – Stack Overflow, 4月 6, 2026にアクセス、 https://stackoverflow.com/questions/79762668/how-to-identify-which-crc-16-variant-is-used-in-this-binary-protocol
  18. sportident-python/sireader2.py at master – GitHub, 4月 6, 2026にアクセス、 https://github.com/per-magnusson/sportident-python/blob/master/sireader2.py
  19. MeOS – Melin Software, 4月 6, 2026にアクセス、 https://www.melin.nu/meos/en/whatsnew25.php
  20. Live data | SPORTident Documentation, 4月 6, 2026にアクセス、 https://docs.sportident.com/user-guide/live-data
  21. Center REST API documentation (Beta) – SPORTident Center, 4月 6, 2026にアクセス、 https://center.sportident.com/docs/center-rest-api-documentation.html
  22. SIAC Battery Check API | SPORTident Documentation, 4月 6, 2026にアクセス、 https://docs.sportident.com/developers/siac-battery-check-api
  23. About MeOS – Melin Software, 4月 6, 2026にアクセス、 https://www.melin.nu/meos/en/
  24. melinsoftware/meos – A Much Easier Orienteering System – GitHub, 4月 6, 2026にアクセス、 https://github.com/melinsoftware/meos
  25. MRL – MeOS Result Language – Melin Software, 4月 6, 2026にアクセス、 https://www.melin.nu/meos/en/show.php?id=4703
  26. MeOS – Result Modules – Melin Software, 4月 6, 2026にアクセス、 https://www.melin.nu/meos/en/show.php?id=4296
  27. MeOS 4.0 – Melin Software, 4月 6, 2026にアクセス、 https://www.melin.nu/meos/en/show.php?base=4708&id=4600
  28. MeOS 4.1 – Melin Software, 4月 6, 2026にアクセス、 https://www.melin.nu/meos/en/show.php?base=499&id=5100
  29. MeOS Online Protocol (MOP) – OResults User Guide, 4月 6, 2026にアクセス、 https://docs.oresults.eu/integrations/mop/
  30. per-magnusson/sportident-python: Python code for talking to Sportident stations. Used e.g. in the sport of orienteering. – GitHub, 4月 6, 2026にアクセス、 https://github.com/per-magnusson/sportident-python
  31. Python Code for Interfacing to Sportident Stations | Axotron Blog, 4月 6, 2026にアクセス、 https://axotron.se/blog/python-code-for-interfacing-to-sportident-stations/
  32. Sportorg is a comprehensive software solution developed in Python that streamlines the organization and execution of orienteering competitions. – GitHub, 4月 6, 2026にアクセス、 https://github.com/sportorg/pysport
  33. sportorg · GitHub Topics, 4月 6, 2026にアクセス、 https://github.com/topics/sportorg
  34. Using SI-Droid event equipment – Backwoods Orienteering Klub, 4月 6, 2026にアクセス、 https://backwoodsok.org/using-si-droid
  35. NodeJS support · Issue #31 · allestuetsmerweh/sportident.js · GitHub, 4月 6, 2026にアクセス、 https://github.com/allestuetsmerweh/sportident.js/issues/31
  36. ARDF競技のページ, 4月 6, 2026にアクセス、 https://fdt.rdf.jp/
  37. ARDF – JARL, 4月 6, 2026にアクセス、 https://www.jarl.org/Japanese/1_Tanoshimo/1-5_ardf/2010winter-ardf.pdf
  38. ARDFハンドブック – JARL, 4月 6, 2026にアクセス、 https://www.jarl.org/Japanese/1_Tanoshimo/1-5_ardf/ardf-handbook%EF%BC%882021%EF%BC%89.pdf
  39. FAQ/What do the abbreviations found in results mean? – BAOC, 4月 6, 2026にアクセス、 https://baoc.org/wiki/FAQ/What_do_the_abbreviations_found_in_results_mean%3F
  40. SPORTident Sime Handbook | PDF | Computers – Scribd, 4月 6, 2026にアクセス、 https://www.scribd.com/document/696368693/SPORTident-sime-Handbook
  41. Edit Punches Dialogue – Orienteering.ie, 4月 6, 2026にアクセス、 https://orienteering.ie/or/documentation/dialogs/EditPunches.html
  42. Orienteering App – SPORTident Documentation, 4月 6, 2026にアクセス、 https://docs.sportident.com/products/software/orienteering-app
  43. SPORTident Information Sheet SI-Config Basic Instructions SI-Config is used to manage and programme SPORTident stations. This – SPORTident UK, 4月 6, 2026にアクセス、 https://www.sportident.co.uk/information_sheets/SPORTident-SI-Config.pdf
  44. Data Standard 3.0 – International Orienteering Federation, 4月 6, 2026にアクセス、 https://orienteering.sport/iof/it/data-standard-3-0/
  45. orienteering-oss/iof-xml: Java classes generated from IOF XSD v3 and v2 – GitHub, 4月 6, 2026にアクセス、 https://github.com/orienteering-oss/iof-xml
  46. Short range radio | SPORTident Documentation, 4月 6, 2026にアクセス、 https://docs.sportident.com/user-guide/short-range-radio
  47. C++ SDK intergration into C# program – Stack Overflow, 4月 6, 2026にアクセス、 https://stackoverflow.com/questions/35329534/c-sdk-intergration-into-c-sharp-program
  48. ARDF日本, 4月 6, 2026にアクセス、 http://www.ardf.jp/

コメントを残す