关于Microsoft机器人开发者工作室示例代码的问题

时间:2011-07-26 05:46:18

标签: c# .net

如果有人遇到过MRDS中的Arcos示例代码,请告诉我以下代码片段在ArcosDrive.cs文件中的作用。我更感兴趣的是“arcos.Update update = new arcos.Update(raw);”和“_arcosPort.Post(更新);”。

感谢。

void VelocityHandler(Velocity velocity)
{
    arcos.RawType raw = new arcos.RawType();

    raw.Command = "Vel";
    raw.Integer = (short)velocity.Body.Velocity;
    raw.Flags = arcos.RawFlags.Integer;

    arcos.Update update  = new arcos.Update(raw);
    _arcosPort.Post(update);

    Activate(Arbiter.Choice(update.ResponsePort,
            delegate(DefaultUpdateResponseType response)
            {
                velocity.ResponsePort.Post(DefaultSubmitResponseType.Instance);
            },
            delegate(Fault fault)
            {
                velocity.ResponsePort.Post(fault);
            })
    );
}

1 个答案:

答案 0 :(得分:0)

深吸一口气后仔细思考:P我设法弄明白了。

看起来PostUnknownType就像一个自动类型转换,可以自动识别发布的类型,而无需定义多个帖子类型。

对于RawType,RawType帖子最终会触发对ArcosState类中定义的RawCommandHandler的调用。

希望有人觉得这很有用。