整備 #3365
Pythonのテンプレートコードでデフォルトではデータポート変数がうまく初期化できない問題を解決する
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 8 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 8 years ago
- Status changed from 新規 to 解決
- % Done changed from 0 to 100
修正&確認済み
#3 Updated by n-ando over 6 years ago
- Status changed from 解決 to 終了