将代码从“硬编码”改为“软编码”。

我正在为PROFINET设备配置DCP模块,并使用Lua。我的硬编码代码片段如下:

功能dcp:setname()
    local pkt = CreateFromPath(“以太网/ profinet / dcp / dcp_block_nameofstation”)
    pkt.src.from_string(tc.Mac)
    pkt.dst.from_string(“ 00:a0:453820:ec”)
    pkt.get_layer(“profinet”).frameid.from_string(“0xfefd”)
    local d = pkt.get_layer(“dcp”)
    local xid = tostring(rand())
    d.service_id.from_string(“4”)
    d.xid.from_string(xid)

    d.service_type.from_string(“0”)

    d.get_layer(“dcp_block_nameofstation”)。Option.from_string(“2”)
    d.get_layer(“dcp_block_nameofstation”)。SubOption.from_string(“2”)

    d.get_layer(“dcp_block_nameofstation”)。BlockInfo .from_string(“1”)
    d.get_layer(“dcp_block_nameofstation”)。NameOfStation.from_string(“test-device”)
结束

我需要将“test-device”作为参数传递,并将其作为字符串。我该如何做到这一点?

点赞
用户570336
用户570336

在函数定义中添加一个参数:

function dcp:setname(nameOfStation)

并且使用它:

d.get_layer("dcp_block_nameofstation").NameOfStation.from_string(nameOfStation)

然后,在调用函数时,传递一个值:

myDcp:setname("test-device")
2016-01-25 11:35:22