Project

General

Profile

整備 #3365

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

Added by n-ando almost 6 years ago. Updated over 4 years ago.

Status:
終了
Priority:
通常
Assignee:
Target version:
-
Start date:
11/18/2015
Due date:
% Done:

100%

Estimated time:

Description

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

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

History

#1 Updated by n-ando almost 6 years ago

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

        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 Updated by n-ando almost 6 years ago

  • Status changed from 新規 to 解決
  • % Done changed from 0 to 100

修正&確認済み

#3 Updated by n-ando over 4 years ago

  • Status changed from 解決 to 終了

Also available in: Atom PDF