プロジェクト

全般

プロフィール

整備 #3365

Pythonのテンプレートコードでデフォルトではデータポート変数がうまく初期化できない問題を解決する

n-ando8年以上前に追加. 約7年前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
-
開始日:
2015/11/18
期日:
進捗率:

100%

予定工数:

説明

self._d_flippedImage = RTC.CameraImage(RTC.Time(0,0),0)

メンバーが実際には7つあるため、実行するとエラーになる。

履歴

#1 n-ando8年以上前に更新

以下のようにすれば、解決可能

        arg1 = [None] * ((len(RTC._d_CameraImage) - 4) / 2)
        self._d_flippedImage = RTC.CameraImage(*arg1)

RTC._d_CameraImage には CameraImage のメンバーの情報が入っている。

_0_RTC._d_CameraImage  = (
  omniORB.tcInternal.tv_struct, CameraImage, CameraImage._NP_RepositoryId, "CameraImage", 
  "tm", omniORB.typeMapping["IDL:RTC/Time:1.0"], 
  "width", omniORB.tcInternal.tv_ushort, 
  "height", omniORB.tcInternal.tv_ushort, 
  "bpp", omniORB.tcInternal.tv_ushort, 
  "format", (omniORB.tcInternal.tv_string,0), 
  "fDiv", omniORB.tcInternal.tv_double, 
  "pixels", (omniORB.tcInternal.tv_sequence, omniORB.tcInternal.tv_octet, 0)
)

メンバーの数は、(len(RTC._d_CameraImage) - 4) / 2 で取得可能なので、None * 要素数 のタプルを用意し、引数に * 付きで与える。
これにより、とりあえずすべてのメンバーを None で初期化できる。

#2 n-ando8年以上前に更新

  • ステータス新規 から 解決 に変更
  • 進捗率0 から 100 に変更

修正&確認済み

#3 n-ando約7年前に更新

  • ステータス解決 から 終了 に変更

他の形式にエクスポート: Atom PDF