我有一个 ac 库,我想用 python 2.7 ctypes 包装。
typedef struct SRSLTE_API{
void *ptr;
uint32_t R;
uint32_t K;
uint32_t framebits;
bool tail_biting;
float gain_quant;
int16_t gain_quant_s;
int (*decode) (void*, uint8_t*, uint8_t*, uint32_t);
int (*decode_f) (void*, float*, uint8_t*, uint32_t);
void (*free) (void*);
uint8_t *tmp;
uint8_t *symbols_uc;
}srslte_viterbi_t;
Run Code Online (Sandbox Code Playgroud)
如何在 python 中创建这个结构?这就是我目前所拥有的。
from ctypes import *
class srslte_viterbi_t(Structure):
_fields_ = [("ptr", c_void_p),
("R", c_uint),
("K", c_uint),
("framebits", c_uint),
("tail_biting", c_bool),
("gain_quant", c_float),
("gain_quant_s", c_short),
("decode", POINTER(c_int)),
("decode_f", POINTER(c_int)),
("free", c_void_p),
("tmp", POINTER(c_ubyte)),
("symbols_uc", POINTER(c_ubyte))
] …Run Code Online (Sandbox Code Playgroud)