-[rcssbase] Cygwinでのビルドテスト (akiyama) 17:12:53
-[rcssserver] コード整理,Cygwinでのビルドテスト (akiyama) 17:12:53

タイマーモジュールライブラリを埋め込んだので動くかもと期待していたが,今度もダメだった.
どこが問題になっているのかよく分からない.

Cygwinは諦めてMinGWを試す方がまだ望みがありそうな気がする.
でも,以前にMinGWを試したときはモジュールライブラリの部分で引っかかったから,どのみち面倒だろうなぁ.

-[rcssserver] モニタプロトコルv3 (akiyama) 20:18:02

作ってみた.
  (show <Time> <Ball> <Players>)
 
    <Ball> : ((b) <Pos> <Vel>)
    <Players> : <Players> <Players> | <Player>
    <Player> : ((p <Side> <Unum> <Type>)
                        (state <State>)
                        (pos <Pos> <Vel> <Body> <Head>[ <ArmDist> <ArmDir>])
                        (view <ViewWidth> <ViewQuality>)
                        (stamina <Stamina> <Effort> <Recovery>)
                        (count <Commands>))
    <Side> : l | r
    <Unum> : <Integer>   // [1..11]
    <Type> : <Integer>   // [0..player_types-1]
    <State> : <Integer>   // 32bit integer
    <Pos> : <Real> <Real>
    <Vel> : <Real> <Real>
    <Body> : <Real>      // radian
    <Head> : <Real>      // radian
    <ArmDist> : <Real>
    <ArmDir> : <Real>    // radian
    <ViewWidth> : <Real>   // radian
    <ViewQuality> : high | low
    <Stamina> : <Real>
    <Effort> : <Real>
    <Recovery> : <Real>
    <Commands> : <Commands> <Command> | <Command>
    <Command> : (<Tag> <Count>)
    <Tag> : k |d | t | s | tn | c | m | cv | ta | p | a
    <Count> : <Integer>

これで,3500〜5000バイトくらい.
バッファ容量に対しては余裕だけど,もうちょっと節約したい.
コマンド回数を省略すると,1800〜3500バイトくらいになるので,かなりの節約になる.
しかし,コマンドの実行回数は,あればあったでデバッグに役立つので悩ましい.
コマンドのタグを省略するのだと,柔軟性が無くなってしまうのが難点.
コマンド回数を省略すると1800〜3500バイトくらいになるのでかなりの節約になるが,コマンドの実行回数はあればあったでデバッグに役立つので削るには惜しい.
コマンドのタグを省略するのも一つの手だが,柔軟性が無くなってしまうのが難点.

最善の方法は,現サイクルで実行されたコマンド名を送るだけにして回数のカウントはモニタに任せてしまうことなんだけど,change_viewなどは1サイクルに複数回実行出来るので,そのずれを許容できるかどうかがポイントか.
現サイクルで実行されたコマンド名を送るだけにして回数のカウントはモニタに任せてしまうのがもっとも無駄が無さそうなんだけど,change_viewなどは1サイクルに複数回実行出来るので,そのずれを許容できるかどうかがポイントか.

あるいは,コマンド実行回数はrcgファイルからは削除してしまって,rclファイル解析用のコマンドラインツール(シェルスクリプト)を提供することを考える方が建設的かもしれない.

後は,モニタ用とログ用でコードを共有できるようにもしないといけないが,これがちょっと厄介そう.

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