假设c头文件包含以下结构:

struct myTempSubStruct
{
    u32 v1;
    u16 v2;
    u8  v3;
};
struct myTempStruct
{
    u8 v4;
    u8 v5;
    myTempSubstruct v6;
};

并编写一个使用c结构的新python类:

from robot.libraries.BuiltIn import BuiltIn

class generated_messages(object):

    ROBOT_LIBRARY_SCOPE = 'GLOBAL'

    def __init__(self):
        self.syscom = BuiltIn().get_library_instance('syscom_rammbock')

    def myStruct(self, name):
        self.syscom.new_struct('myStruct', name)
        self.myTempStruct('myTempStruct')
        self.syscom.end_struct()

    def myTempReq(self):
        return myStruct

然后在Robot框架中编写一个testscript,我的目的是在这里用c结构创建一个变量:

*** Settings ***
Library    generated_messages.py

*** Test Cases ***
MyCase
    Set global variable     ${msgMyTemp}    myTempReq
    Set global variable     ${msgMySub}     ${msgMyTemp.v6}
    ${msgMySub.v1}    Evaluate    1

但是我上面的代码似乎有问题,总会出现如下错误:

“解析变量'$ '失败:AttributeError:'unicode'对象没有属性”

有谁可以帮我弄清楚如何改进我的代码?