如果有人遇到过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);
})
);
}
答案 0 :(得分:0)
深吸一口气后仔细思考:P我设法弄明白了。
看起来PostUnknownType就像一个自动类型转换,可以自动识别发布的类型,而无需定义多个帖子类型。
对于RawType,RawType帖子最终会触发对ArcosState类中定义的RawCommandHandler的调用。
希望有人觉得这很有用。