我必须将C ++代码转换为Micro Python到Wipy平台。目前,我遇到了一些问题,尤其是从其他结构访问变量
C ++代码:
typedef struct {
char id[100];
int rssi;
} tag_info;
typedef struct {
tag_info tag[20];
} tag_list;
typedef struct {
int timestamp;
tag_list tags;
int heading;
int airt;
} data_packet;
data_packet packet;
for (i = 0; i < total_amount_of_tags - 1; i++) {
print_function("id", packet.tags.tag[i].id, destination);
print_function("rssi", packet.tags.tag[i].rssi, destination);
}
我的MicroPython代码:
class tag_info:
def __init__(self):
self.id = ""
self.rssi = 0
class tag_list:
def __init__(self):
self.tag = tag_info
class data_packet():
def __init__(self):
self.timestamp=0
self.tags = tag_list
self.heading=0
self.airt=0
packet=data_packet()
for i in range(0, total_amount_of_tags -1)
print_function('id',packet.tags.tag[i].id,destination)
print_function("rssi", packet.tags.tag[i].rssi, destination);
我的代码中无法访问tag [i]和其他变量的问题。在这种情况下,我应该使用继承还是namedTuple?如果我尝试使用namedTuple from collections import namedTuple
,则会出现以下错误消息:no module called collections
,因此,我希望尽可能避免使用该库
答案 0 :(得分:3)
以下:
self.tag = tag_info
您正在为变量分配一个类。
我认为您打算这样做:
self.tag = tag_info()
但是如果我理解正确,那么应该将其作为tag_info的列表,因此您实际需要的是:
self.tag = [tag_info() for i in range(20)]
相同:
self.tags = tag_list()
答案 1 :(得分:2)
这对于预期的行为应该是有点混乱。但是看来您需要创建20个canvas.on("object:scaling", function(e){
var obj = e.target
console.log(obj.width*obj.scaleX);
console.log(obj.height* e.target.scaleY);
});
实例。另外,您还需要使用tag_info
实例化实例。
()