【发布时间】:2015-05-12 21:58:46
【问题描述】:
c 结构中的以下内容已用 swig 包装,以便我可以在 python 中访问从另一个 swig 包装程序获取的数据。
struct RadarParm {
struct {
char major;
char minor;
} revision;
struct {
char code;
char *time;
char *command;
} origin;
int16 cp;
int16 stid;
int16 *pulse;
int16 *lag[2];
char *combf;
};
我的主要问题是 int16 *lag[2]。当试图读取我的 python 代码中的数据时:
p_data['lag'] = prm.lag
其中 prm 是通过 struct RadarParm* getRadarParm() 方法从 rtserver.c 文件返回的 RadarParm 类型,而 p_data 是存储 RadarParm 各个部分的 Python 字典。
这是我在访问 prm.lag 时的当前输出:
<Swig Object of type 'int16 **' at 0x1fd55d0>
我发现似乎有一个 numpy.i 文件可以处理数组和 int16 数据类型。根据我有限的理解,我认为这将允许我访问这些数据。如果我能正确实现它。
这是我目前所拥有的:
%init %{
import_array();
%}
%apply (int16** ARGOUTVIEW_ARRAY1, DIM_TYPE* DIM1) {(int16* lag,2)};
编译时我得到:
Error: Syntax error in input(1).
关于如何进行这项工作的任何想法?
【问题讨论】: