【问题标题】:Create script protocol buffers创建脚本协议缓冲区
【发布时间】:2020-05-22 13:50:56
【问题描述】:

使用图像作为参考 .proto 将在哪里使用?

.

我需要在协议缓冲区中创建一个脚本。

我想要的是为特定路线的每辆公共汽车以及特定时间从 08:30:00 到 09:30:00(上午时间)创建 20 分钟(1200 秒)的延迟. 公交路线标识为 9403(从 x 到 y)和 9404(从 y 到 x)。 这是正确的吗?

syntax = "proto3";

package teste1;


message TripUpdate {
    string agency_id = 1;
    string route_id = 9403, 9404;
        
    message DelayConstruction{
        uint64 start 08:30:00;
        uint64 end 09:30:00;
        int32 delay 1200; //20min
    }
}

【问题讨论】:

    标签: protocol-buffers proto


    【解决方案1】:

    .proto 不是一种脚本语言——它是一种模式 DSL:它只是描述了潜在的未来有效载荷的元数据;例如,它在 XML 方面相当于 XSD。

    每个字段只有一个字段编号,如 = {the number} 所示,因此 string route_id = 9403, 9404; 没有意义。同样,startenddelay 字段在这里是 字段定义 - 它们只有字段编号,而不是像 08:30:00 这样的值。序列化的 data 可能有值,但未在 .proto 中编码 - 它将是二进制 protobuf 格式,或(有时,很少)protobuf 的 JSON 变体。

    很难理解你想要做什么,但不:这不是你做的,不管“它”是什么。

    可能值得尝试解释一下您要做什么,以便我们提供指导。

    【讨论】:

    • developers.google.com/transit/gtfs-realtime/guides/trip-updates 我想要的是在特定的公交路线上造成延迟,但不是停在 x 站,而是要持续一段时间。
    • @RuiM20 对;因此,您要做的是创建一个 payload ,它是所需消息类型的 instance ,其值对应于您的更新?这不是您在 .proto 本身中所做的事情;在通过“protoc”(或类似工具)为您所需的平台/语言运行 .proto 架构之后,您可以使用您使用的任何语言来执行此操作
    • 谢谢。谷歌指南遇到了一些困难
    • 你能告诉我我会在图片上的哪个位置使用 .proto 文件吗?
    • @RuiM20 以适合您的目标平台的代码生成消息类型;因此,例如,如果您使用 Java,.proto 用于创建一组 Java 类,这些类代表该 API 中使用的对象模型,以及序列化/反序列化它们的代码
    猜你喜欢
    • 1970-01-01
    • 2011-09-18
    • 2021-12-19
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    相关资源
    最近更新 更多