Loading

Uli SDK

Appendix A

19.Appendix A

19.1 Record Generator JSON Example

{
  “modulename”: “uli_sdk::services::experimental::messages::ExperimentalMessagesDefs”,
  “enums”: [
    {
      “name”: “PoseStateType”,
      “elems”: [“unknown”, “local”, “global”]
    }
  ],
  “records”: [
      {
        “name”: “PoseRec”,
        “fields”: [
          {
            “name”: “roll”,
            “type”: “Float64”
          },
          {
            “name”: “pitch”,
            “type”: “Float64”
          },
          {
            “name”: “yaw”,
            “type”: “Float64”
          }
        ]
      },
      {
        “name”: “PoseStatesRec”,
        “fields”: [
        {
          “name”: “type”,
          “type”: “PoseStateTypeEnum”
        },
        {
          “name”: “acqTime”,
          “type”: “Float64”
        },
        {
          “name”: “poseStates”,
          “type”: “ListOfPoseRec”
        }
        ]
      },
      {
        “name”: “AccelerationStatesRec”,
        “fields”: [
          {
            “name”: “acqTime”,
            “type”: “Float64”
          },
          {
            “name”: “states”,
            “type”: “ListOfFloat64”
          }
        ]
    }
  ]
}

19.2 Record Generator BUILD File Example

load(“//build:uli.bzl”, “uli_cc_library”)
load(“//build:uli_cc_capnp_library.bzl”, “uli_cc_capnp_library”)

uli_cc_capnp_library(
name = “messages_proto”,
protos = [
  “experimental_messages_defs.capnp”,
],
deps = [
  “//utils/message_utils”,
],
importdirs = [
  “utils/message_utils”,
],
)

uli_cc_library(
name = “messages”,
srcs = [
  “experimental_messages_defs.cpp”,
  ],
hdrs = [
  “experimental_messages_defs.h”,
  “experimental_messages_defs_proto_tools.h”,
  ],
importdirs = [
  “utils/message_utils”,
  ],
deps = [
  “@capnproto//:capnp_lite”,
  “:messages_proto”,
  “//utils/message_utils”,
  ],
visibility = [
  “//visibility:public”
],
)

19.3 Message Generator JSON Example

{
  “fullname”:”uli_sdk::services::experimental::messages::ExperimentalReportPoseStates”,
  “descriptor”: “report pose states”,
  “upperid”: “0xf0000001”,
  “lowerid”: “0x00000103”,
  “fields”: [
    {
        “name”: “postStates”,
        “type”: “PoseStatesRec”
    }
  ]
}

19.4 Service Generator, Not Derived, JSON Example

{
  “fullname”: “uli_sdk::services::experimental::PoseDriver”,
  “override”: “”,
  “uri”: “experimental:PoseDriver”,
  “majorversion”: “1”,
  “minorversion” : “1”,
  “overridable” : “no”,
  “params”: [
      “cycleInterval”,
      “poseTimeout”
      ],
  “states”: [“Ready”],
  “transitions”: [],
  “inputs”: [ “uli_sdk::services::experimental::messages::ExperimentalSetPose”,
      “uli_sdk::services::experimental::messages::ExperimentalQueryPoseStates”
      ],
  “outputs”: [
      “uli_sdk::services::experimental::messages::ExperimentalReportPoseStates”

      ],
  “subscriptables”: [
      “uli_sdk::services::experimental::messages::ExperimentalReportPoseStates”
  ],
  “overrideinputs”: [],
  “ies”: [“uli_sdk::utils::comp_utils::ies::ieReceiveMessage”],
  “overrideies”: [],
  “raiseies”: []
}

19.5 Service Generator, Derived, JSON Example

{
  “fullname”: “uli_sdk::services::mobility::PrimitiveDriver”,
  “override”: “uli_sdk::services::core::Management”,
  “uri”: “mobility:PrimitiveDriver”,
  “majorversion”: “1”,
  “minorversion” : “1”,
  “overridable” : “no”,
  “params”: [
      “cycleInterval”,
      “dataTimeout”,
      “driveInterval”
  ],
  “states”: [
      “Initialize”,
      “StandBy”,
      “Ready”,
      “Emergency”,
      “Fatal”,
      “Shutdown”,
      “RenderUseless”
  ],
  “transitions”: [
      “Initialize2StandBy”,
      “Initialize2Fatal”,
      “StandBy2Initialize”,
      “StandBy2Ready”,
      “StandBy2Emergency”,
      “StandBy2Fatal”,
      “StandBy2Shutdown”,
      “StandBy2RenderUseless”,
      “Ready2Initialize”,
      “Ready2Emergency”,
      “Ready2StandBy”,
      “Ready2Fatal”,
      “Ready2Shutdown”,
      “Ready2RenderUseless”,
      “Emergency2StandBy”,
      “Emergency2Fatal”,
      “Emergency2Shutdown”,
      “Emergency2RenderUseless”
  ],
  “inputs”: [
    “uli_sdk::services::mobility::messages::MobilitySetWrenchEfforts”,
    “uli_sdk::services::mobility::messages::MobilityQueryWrenchEfforts”
  ],
  “outputs”: [“uli_sdk::services::mobility::messages::MobilityReportWrenchEfforts”],

      ],
  “subscriptables”: [
      “uli_sdk::services::experimental::messages::ExperimentalReportPoseStates”
  “overrideinputs”: [],
  “ies”: [],
  “overrideies”: [“uli_sdk::utils::comp_utils::ies::ieReceiveMessage”],
  “raiseies”: []
}

19.6 Service Generator BUILD File Example

load(“//build:uli.bzl”, “uli_cc_library”)

uli_cc_library(
name = “experimental”,
srcs = [
  “pose_driver.cpp”,
  ],
hdrs = [
  “pose_driver.h”,
  ],
importdirs = [
  “utils/message_utils”,
    ],
deps = [
  “//utils/base_utils”,
  “//utils/boost_utils”,
    “//utils/comp_utils”,
    “//utils/message_utils”,
    “//services/core”,
    “//services/experimental/messages”,
  ],
visibility = [
  “//visibility:public”
  ],
)

18.7 App Generator JSON File Example

{

“fullname”: “uli_sdk::apps::exp_pc”,
“pybindclassname”: “uli_sdk::pybinds::PybindExpPc”,
“partnumber”: “227.36.0”,
“partition” : “all”,
“comps”: [
  {
      “name” : “PoseControl”,
      “descriptor” : “Vehicle position control”,
      “id” : “35”,
      “type” : “REGULAR”,
      “cycleinterval” : “0.1”,
      “services”: [
        “uli_sdk::services::core::MessageTransport”,
        “uli_sdk::services::core::ServiceRegister”,
        “uli_sdk::services::core::StatusReporter”,
        “uli_sdk::services::core::AccessControl”
      ],
      “overrides”: [
        {
          “service”: “uli_sdk::services::experimental::PoseDriver”,
          “inputs”: [
            “uli_sdk::services::experimental::messages::ExperimentalSetPose”,
            “uli_sdk::services::experimental::messages::ExperimentalQueryPoseStates”
          ],
          “states”: [],
          “transitions”: []
        }
      ]
    },
    {
      “name” : “Mobility”,
      “descriptor” : “Vehicle mobility control”,
      “id” : “33”,
      “type” : “REGULAR”,
      “cycleinterval” : “0.1”,
      “services”: [
        “uli_sdk::services::core::MessageTransport”,
        “uli_sdk::services::core::ServiceRegister”,
        “uli_sdk::services::core::StatusReporter”,
        “uli_sdk::services::core::AccessControl”
      ],
      “overrides”: [
        {
          “service”: “uli_sdk::services::mobility::PrimitiveDriver”,
          “inputs”: [
            “uli_sdk::services::mobility::messages::MobilitySetWrenchEfforts”
          ],
          “states”: [
            “Ready”,
            “Emergency”
          ],
          “transitions”: []
        }
      ]
    }
  ]
}