• [librcsc] client → common にリネーム.(akiyama) 07:25:56
  • [librcsc] パラメータクラスを common へ移動.(akiyama) 07:25:56

クライアント機能とエージェントの思考部分とが分離され始め,clientという分類が不自然になってきたので,ディレクトリ名を変更することにした.BasicClientをnetに移すべきかどうかは少し悩みどころだったけど,SoccerAgentとの依存関係が強いので,commonに残すことにした.ディレクトリ間で相互に依存している状態は流石に避けたい.

更に,各パラメータクラスもcommonに移動させた. パラメータクラスの移動によって,paramディレクトリにはパラメータパーザのみが残ることになる. この変更は,2Dサーバに依存しない汎用的なパラメータパーザライブラリを構成して,librc3dへ移植することを想定している.

ディレクトリ名を変更するのもディレクトリを跨ってファイルを移動するのも久しぶり. ユーザが付いてこれなくなりそうなのが不安….

  • [librcsc] FormationStaticを追加.(akiyama) 07:25:56

フォーメーションの管理に柔軟性を持たせるための準備として,FormationStaticクラスを追加した. これは,ボールの位置に関係無く,常に固定位置に移動するためのフォーメーション. 機能的にはFormationUvAのサブセットみたいなものなので,あっさり実装とテスト完了. あ,そうか,FormationUvAがあれば同等のことはできるんだ. わざわざ作る必要無かったかも.

しかし,またStrategyが大幅に書き変わってしまうなぁ. 相当便利になることは間違いないんだけど,これまた既存のユーザが付いてこれなくなるかもしれない.

  • [librcsc] WorldModel内でのプレイヤの分類を整理.メンバ関数の引数を一部整理.(akiyama) 11:56:23

これまでは,WorldModel内で他のプレイヤのインスタンスを保持する際に,プレイヤは同じチーム内で背番号が判明しているかどうかで更に分類され,別々のコンテナに保持されていた.この分類にほとんど意味が無くなっていたため,統合してコードを整理した.ついでに,関数の引数で冗長だった部分を整理した.

WorldModelはもっとシンプルに書けそうなんだけどなぁ.

  • [librcsc] 無駄なヘッダファイルを削除.(akiyama) 14:33:46
  • [librcsc] ヘッダファイルのインストールに関する不具合を修正.(akiyama) 14:33:46
  • [librcsc] configureのオプションから--enable-geom, --enable-gz, --enalbe-rcgを削除. 14:33:46
  • [librcsc] librcsc_paramを新たに分割.(akiyama) 14:33:46

インストールされるべきでないヘッダファイルがインストールされていた不具合を修正.ついでに,あまり役に立っていなかったconfigureのオプションを削除した.geom,gz,rcgに関しては,常にビルド&インストールされることになった.

今後,パラメータパーザを単独で使う機会が出てきそうなので,staticリンク時にバイナリサイズが無駄に大きくならないように,ライブラリファイルを分割することにした.

構成がすっきりしてきた気がする.

  • [librcsc] UDPSocketの整備.(akiyama) 15:51:53

根本的には変わってないけど,エラーチェックを少し厳格にした. autoconfによるチェックもそれなりに反映した.getaddrinfoやgethostbynameでエラーが発生したときのエラーメッセージを,システムコールを使って取得して表示するようにした.

IPV6対応もちゃんとやりたい.現状でも,getaddrinfoを一応使うようにはしているものの,これで正しいのかどうかよく分からない. このあたりのネットワークプログラミングの知識はどうもあやふやなので,今のところはこれ以上はどうにもならないな. まあ,MacやCygwinでもちゃんと動いてることだし,当面は大丈夫でしょう. あ,MinGWではちゃんとテストしてないな.ま,これはいつか気が向いたときでいいか.

  • [librcsc] デバッグ出力を統一.(akiyama) 17:17:49

これまでは,Loggerが書き込むファイルとDebugClientが書き込むファイルが別々だったが,全てのファイル出力をLoggerのファイルへと統一した. 従来のLoggerの出力は,Soccer Viewerにとってはfreeformメッセージとして扱われる. Soccer Viewrerのログフォーマットが汎用的で助かった.

そして,Soccer Viewer との互換性を残すために,ログファイルの拡張子をオプションで任意に設定できるようにした.これで完璧でしょう.

  • [soccerwindow2] デバッグビューログの保存機能を実装.(akiyama) 18:39:16

プレイヤから受け取ったメモリ上のデバッグビューデータをファイルに書き出す機能を追加した.これで,デバッグ作業がかなり柔軟に行えるようになった. しかし,少しやっつけ仕事気味なので,暇を見付けてコードの整理が必要. Qtに移行しつつ,設計の整理も進めないといけないな.

次のマイルストーンに向けてのsoccerwindow2への主要な機能追加はあと一つ.この機能追加が終わってからQtへの移植を開始するべきか,それとも,先にQtへの移植を開始すべきか. 多分,並行して進めた方がいいだろうね. Qtへの移植もそんなにすんなりできるとも思えないし,まずは試作してみないことには.


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-03-14 (月) 14:51:37 (1917d)
SourceForge.JP
Creative Commons License
RoboCup tools by Hidehisa Akiyama is licensed under a Creative Commons 表示-非営利 2.1 日本 License.