Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cyber中参数服务通讯中,python端有BUG #15023

Open
gaodechao opened this issue Jul 3, 2023 · 1 comment · May be fixed by #15028
Open

cyber中参数服务通讯中,python端有BUG #15023

gaodechao opened this issue Jul 3, 2023 · 1 comment · May be fixed by #15028

Comments

@gaodechao
Copy link

Describe the bug
这是我写的代码
其中13-15行设置三个参数
在17-19行获取,在20-22行打印时与名字对应不上,变量name变成了typename。name消失了


#!/usr/bin/env python3


from cyber.python.cyber_py3 import cyber
from cyber.python.cyber_py3 import parameter

if __name__ == "__main__":
    cyber.init()
    param_server_node = cyber.Node("car_param")
    #创建节点
    param_server = parameter.ParameterServer(param_server_node)
    #增
    param_server.set_parameter(parameter.Parameter("car_type","apollo"))
    param_server.set_parameter(parameter.Parameter("height",1.89))
    param_server.set_parameter(parameter.Parameter("lasers",4))
    #查
    p1 = param_server.get_parameter("car_type")
    p2 = param_server.get_parameter("height")
    p3 = param_server.get_parameter("lasers")
    print("car_type :",p1.as_string())
    print("height :",p2.as_double())
    print("lasers :",p3.as_int64())

    for p in param_server.get_paramslist():
        print("name :",p.name())
        print("typename :",p.type_name())
        print("debug_String :",p.debug_string())
        print("-"*60)

    #改
    param_server.set_parameter(parameter.Parameter("lasers",10))
    p4 = param_server.get_parameter("lasers")

    print("after change, lasers :",p4.as_int64())

    param_server_node.spin()
    cyber.shutdown()

而输出的结果与预期不相符

root@in-cyber-docker:/apollo# ./bazel-bin/cyber/demo_py/demo05_param_server_py
E0703 16:11:53.593977 167261 py_parameter.cc:516] [cyber_py]pyparam_srv get_parameter is false!
E0703 16:11:53.594095 167261 py_parameter.cc:516] [cyber_py]pyparam_srv get_parameter is false!
E0703 16:11:53.594115 167261 py_parameter.cc:516] [cyber_py]pyparam_srv get_parameter is false!
E0703 16:11:53.594151 167261 parameter.h:326] [cyber_py]The type of parameter "" is , not STRING
car_type : b''
E0703 16:11:53.594216 167261 parameter.h:314] [cyber_py]The type of parameter "" is , not DOUBLE
height : 0.0
E0703 16:11:53.594256 167261 parameter.h:303] [cyber_py]The type of parameter "" is , not INT
lasers : 0
name : b'STRING'
typename : b'STRING'
debug_String : b'{name: "STRING", type: "STRING", value: "apollo"}'
------------------------------------------------------------
name : b'INT'
typename : b'INT'
debug_String : b'{name: "INT", type: "INT", value: 4}'
------------------------------------------------------------
name : b'DOUBLE'
typename : b'DOUBLE'
debug_String : b'{name: "DOUBLE", type: "DOUBLE", value: 1.890000}'
------------------------------------------------------------
E0703 16:11:53.594429 167261 py_parameter.cc:516] [cyber_py]pyparam_srv get_parameter is false!
E0703 16:11:53.594437 167261 parameter.h:303] [cyber_py]The type of parameter "" is , not INT
after change, lasers : 0
@gaodechao gaodechao changed the title cyber中参数服务,python端在name那有BUG cyber中参数服务通讯中,python端有BUG Jul 3, 2023
@YuqiHuai
Copy link
Contributor

YuqiHuai commented Jul 4, 2023

Cyber Parameter does seem to have a problem. When running the provided example cyber/python/cyber_py3/examples/parameter
On Apollo v7 I get

clt param lst len is  3
b'{name: "author_score", type: "DOUBLE", value: 888.880000}'
b'{name: "author_name", type: "STRING", value: "WanderingEarth"}'
b'{name: "author_age", type: "INT", value: 5000}'

srv param lst len is  3
b'{name: "author_score", type: "DOUBLE", value: 888.880000}'
b'{name: "author_name", type: "STRING", value: "WanderingEarth"}'
b'{name: "author_age", type: "INT", value: 5000}'

and the script does not exit by itself.
On Apollo v8 I get

clt param lst len is  1
b'{name: "global_parameter_service/list_parameters", type: "global_parameter_service/list_parameters", value: 888.880000}'

srv param lst len is  1
b'{name: "global_parameter_service/list_parameters", type: "global_parameter_service/list_parameters", value: 888.880000}'

Name is incorrect, type is incorrect, and only the last value is preserved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants