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”: []
}
]
}
]
}