fix system status device metadata
This commit is contained in:
parent
ed9df8fd31
commit
09dad196db
@ -11,6 +11,79 @@
|
||||
using namespace cmvr::device;
|
||||
using namespace cmvr::service;
|
||||
|
||||
namespace {
|
||||
|
||||
namespace device = cmvr::device;
|
||||
|
||||
cmvr::api::DeviceType toApiDeviceType(device::DeviceKind kind)
|
||||
{
|
||||
switch (kind) {
|
||||
case device::DeviceKind::AGV: return cmvr::api::DeviceType::AGV;
|
||||
case device::DeviceKind::Arm:
|
||||
case device::DeviceKind::Robot: return cmvr::api::DeviceType::Robot;
|
||||
case device::DeviceKind::Battery: return cmvr::api::DeviceType::Battery;
|
||||
case device::DeviceKind::BioHead: return cmvr::api::DeviceType::BioHead;
|
||||
case device::DeviceKind::Camera: return cmvr::api::DeviceType::Camera;
|
||||
case device::DeviceKind::CanBus: return cmvr::api::DeviceType::CanBus;
|
||||
case device::DeviceKind::DexHand: return cmvr::api::DeviceType::DexHand;
|
||||
case device::DeviceKind::Gripper: return cmvr::api::DeviceType::Gripper;
|
||||
case device::DeviceKind::Microphone: return cmvr::api::DeviceType::Microphone;
|
||||
case device::DeviceKind::Motor: return cmvr::api::DeviceType::Motor;
|
||||
case device::DeviceKind::MotorSystem: return cmvr::api::DeviceType::MotorSystem;
|
||||
case device::DeviceKind::MujocoViewer: return cmvr::api::DeviceType::MujocoViewer;
|
||||
case device::DeviceKind::MujocoWorld: return cmvr::api::DeviceType::MujocoWorld;
|
||||
case device::DeviceKind::Speaker: return cmvr::api::DeviceType::Speaker;
|
||||
case device::DeviceKind::Unknown:
|
||||
default: return cmvr::api::DeviceType::Unknown;
|
||||
}
|
||||
}
|
||||
|
||||
cmvr::api::DeviceKind toApiDeviceKind(device::DeviceKind kind)
|
||||
{
|
||||
switch (kind) {
|
||||
case device::DeviceKind::AGV: return cmvr::api::DEVICE_KIND_AGV;
|
||||
case device::DeviceKind::Arm: return cmvr::api::DEVICE_KIND_ARM;
|
||||
case device::DeviceKind::Battery: return cmvr::api::DEVICE_KIND_BATTERY;
|
||||
case device::DeviceKind::BioHead: return cmvr::api::DEVICE_KIND_BIO_HEAD;
|
||||
case device::DeviceKind::Camera: return cmvr::api::DEVICE_KIND_CAMERA;
|
||||
case device::DeviceKind::CanBus: return cmvr::api::DEVICE_KIND_CAN_BUS;
|
||||
case device::DeviceKind::DexHand: return cmvr::api::DEVICE_KIND_DEX_HAND;
|
||||
case device::DeviceKind::Gripper: return cmvr::api::DEVICE_KIND_GRIPPER;
|
||||
case device::DeviceKind::Microphone: return cmvr::api::DEVICE_KIND_MICROPHONE;
|
||||
case device::DeviceKind::Motor: return cmvr::api::DEVICE_KIND_MOTOR;
|
||||
case device::DeviceKind::MotorSystem: return cmvr::api::DEVICE_KIND_MOTOR_SYSTEM;
|
||||
case device::DeviceKind::MujocoViewer: return cmvr::api::DEVICE_KIND_MUJOCO_VIEWER;
|
||||
case device::DeviceKind::MujocoWorld: return cmvr::api::DEVICE_KIND_MUJOCO_WORLD;
|
||||
case device::DeviceKind::Robot: return cmvr::api::DEVICE_KIND_ROBOT;
|
||||
case device::DeviceKind::Speaker: return cmvr::api::DEVICE_KIND_SPEAKER;
|
||||
case device::DeviceKind::Unknown:
|
||||
default: return cmvr::api::DEVICE_KIND_UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
std::string vendorForDriverType(const std::string& driver_type)
|
||||
{
|
||||
if (driver_type == "AuboARM") return "AUBO";
|
||||
if (driver_type == "HuayanRobot") return "HUAYAN";
|
||||
if (driver_type == "SeerRobokitAgv") return "SEER";
|
||||
if (driver_type == "HikvisionCamera") return "HIKVISION";
|
||||
if (driver_type == "RealSenseCamera") return "Intel RealSense";
|
||||
if (driver_type == "MechmindCamera") return "Mech-Mind";
|
||||
if (driver_type == "RH56DFTPDexhand") return "Inspire Robots";
|
||||
if (driver_type == "ZeroSimTouchDexHand") return "ZeroSim";
|
||||
if (driver_type == "EyouMotor") return "EYOU";
|
||||
if (driver_type == "Ti5Motor") return "TI5";
|
||||
if (driver_type == "MujocoMotor" || driver_type == "MujocoCamera") return "MuJoCo";
|
||||
if (driver_type == "MyAgv" || driver_type == "MotorRobotArm"
|
||||
|| driver_type == "BioHeadRobot") return "CMVR";
|
||||
if (driver_type == "FFMpegMicroPhone" || driver_type == "FFMpegSpeaker") return "FFmpeg";
|
||||
if (driver_type == "UVCCamera") return "UVC";
|
||||
if (driver_type == "PX6AXGen3") return "PX6AX";
|
||||
return {};
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
gRPCSystemServiceImpl::gRPCSystemServiceImpl()
|
||||
: dmgr_(DeviceManager::getInstance()),
|
||||
action_queue_(std::make_unique<ActionQueue>(
|
||||
@ -56,38 +129,14 @@ grpc::Status gRPCSystemServiceImpl::GetSystemStatus(grpc::ServerContext* context
|
||||
const api::GetSystemStatusCommand_Request* request, api::GetSystemStatusCommand_Feedback* response)
|
||||
{
|
||||
try {
|
||||
std::list<std::pair<std::string, std::string>> dev_list;
|
||||
dmgr_.getDeviceList(dev_list);
|
||||
for (auto &pair: dev_list) {
|
||||
const auto snapshot = dmgr_.snapshot();
|
||||
for (const auto& device : snapshot.devices) {
|
||||
auto* dev = response->add_device_list();
|
||||
dev->set_device_id(pair.first);
|
||||
if (pair.second == "AGV") {
|
||||
dev->set_device_type(api::DeviceType::AGV);
|
||||
}
|
||||
else if (pair.second == "Battery") {
|
||||
dev->set_device_type(api::DeviceType::Battery);
|
||||
}
|
||||
else if (pair.second == "Camera") {
|
||||
dev->set_device_type(api::DeviceType::Camera);
|
||||
}
|
||||
else if (pair.second == "DexHand") {
|
||||
dev->set_device_type(api::DeviceType::DexHand);
|
||||
}
|
||||
else if (pair.second == "Gripper") {
|
||||
dev->set_device_type(api::DeviceType::Gripper);
|
||||
}
|
||||
else if (pair.second == "Microphone") {
|
||||
dev->set_device_type(api::DeviceType::Microphone);
|
||||
}
|
||||
else if (pair.second == "Robot") {
|
||||
dev->set_device_type(api::DeviceType::Robot);
|
||||
}
|
||||
else if (pair.second == "Speaker") {
|
||||
dev->set_device_type(api::DeviceType::Speaker);
|
||||
}
|
||||
else if (pair.second == "Unknown") {
|
||||
dev->set_device_type(api::DeviceType::Unknown);
|
||||
}
|
||||
dev->set_device_id(device.id);
|
||||
dev->set_device_type(toApiDeviceType(device.kind));
|
||||
dev->set_device_kind(toApiDeviceKind(device.kind));
|
||||
dev->set_driver_type(device.type_name);
|
||||
dev->set_vendor(vendorForDriverType(device.type_name));
|
||||
}
|
||||
response->mutable_header()->set_success(true);
|
||||
setCurrentTimestamp(response->mutable_header()->mutable_timestamp());
|
||||
|
||||
@ -14,12 +14,43 @@ enum DeviceType {
|
||||
Microphone = 5;
|
||||
Robot = 6;
|
||||
Speaker = 7;
|
||||
BioHead = 8;
|
||||
Motor = 9;
|
||||
MotorSystem = 10;
|
||||
MujocoWorld = 11;
|
||||
MujocoViewer = 12;
|
||||
CanBus = 13;
|
||||
Unknown = 20;
|
||||
}
|
||||
|
||||
// 设备在 cmvr-es 运行时中的稳定大类,与具体厂商驱动无关。
|
||||
enum DeviceKind {
|
||||
DEVICE_KIND_UNKNOWN = 0;
|
||||
DEVICE_KIND_AGV = 1;
|
||||
DEVICE_KIND_ARM = 2;
|
||||
DEVICE_KIND_BATTERY = 3;
|
||||
DEVICE_KIND_BIO_HEAD = 4;
|
||||
DEVICE_KIND_CAMERA = 5;
|
||||
DEVICE_KIND_CAN_BUS = 6;
|
||||
DEVICE_KIND_DEX_HAND = 7;
|
||||
DEVICE_KIND_GRIPPER = 8;
|
||||
DEVICE_KIND_MICROPHONE = 9;
|
||||
DEVICE_KIND_MOTOR = 10;
|
||||
DEVICE_KIND_MOTOR_SYSTEM = 11;
|
||||
DEVICE_KIND_MUJOCO_VIEWER = 12;
|
||||
DEVICE_KIND_MUJOCO_WORLD = 13;
|
||||
DEVICE_KIND_ROBOT = 14;
|
||||
DEVICE_KIND_SPEAKER = 15;
|
||||
}
|
||||
|
||||
message DeviceList {
|
||||
string device_id = 1;
|
||||
DeviceType device_type = 2;
|
||||
DeviceKind device_kind = 3;
|
||||
// 具体运行时驱动类型,例如 AuboARM、HuayanRobot、SeerRobokitAgv。
|
||||
string driver_type = 4;
|
||||
// 厂商或驱动生态,例如 AUBO、HUAYAN、SEER。
|
||||
string vendor = 5;
|
||||
}
|
||||
|
||||
message GetSystemInfoCommand {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user