Skip to content
Snippets Groups Projects

Draft: Make RobotStateMemory ready

Merged Rainer Kartmann requested to merge armem/robot-state-memory into master
2 files
+ 1
2
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -21,94 +21,47 @@
#pragma once
#include <RobotAPI/interface/units/RobotUnit/RobotUnitInterface.h>
#include <string>
#include <optional>
#include <mutex>
#include <unordered_map>
#include <ArmarXCore/core/logging/Logging.h>
#include "ArmarXCore/core/application/properties/PropertyDefinitionContainer.h"
// #include "ArmarXGui/libraries/RemoteGui/Client/Widgets.h"
#include "RobotAPI/components/ArViz/Client/Client.h"
#include <ArmarXCore/core/application/properties/PropertyDefinitionContainer.h>
#include "RobotAPI/libraries/armem/core/MemoryID.h"
#include "RobotAPI/libraries/armem_objects/types.h"
namespace armarx::armem
{
namespace server
{
class MemoryToIceAdapter;
}
#include <RobotAPI/interface/units/RobotUnit/RobotUnitInterface.h>
#include <RobotAPI/libraries/armem/core/MemoryID.h>
#include <RobotAPI/libraries/armem/server/segment/SpecializedSegment.h>
#include <RobotAPI/libraries/armem_objects/types.h>
namespace wm
{
class CoreSegment;
}
} // namespace armarx::armem
namespace armarx::armem::server::robot_state::description
{
class Visu;
class Segment : public armarx::Logging
class Segment : public segment::SpecializedSegment
{
public:
Segment(server::MemoryToIceAdapter& iceMemory,
std::mutex& memoryMutex);
virtual ~Segment();
Segment(server::MemoryToIceAdapter& iceMemory);
virtual ~Segment() override;
void connect(const viz::Client& arviz, const RobotUnitInterfacePrx& robotUnitPrx);
void defineProperties(armarx::PropertyDefinitionsPtr defs, const std::string& prefix = "");
void connect(const RobotUnitInterfacePrx& robotUnitPrx);
void init();
/// mapping "robot name" -> "robot description"
using RobotDescriptionMap = std::unordered_map<std::string, robot::RobotDescription>;
RobotDescriptionMap getRobotDescriptions(const armem::Time& timestamp) const;
RobotDescriptionMap getRobotDescriptionsLocking(const armem::Time& timestamp) const;
private:
void storeRobotDescription(const robot::RobotDescription& robotDescription);
void commitRobotDescription(const robot::RobotDescription& robotDescription);
void updateRobotDescription();
server::MemoryToIceAdapter& iceMemory;
wm::CoreSegment* coreSegment = nullptr;
std::mutex& memoryMutex;
RobotUnitInterfacePrx robotUnit;
struct Properties
{
std::string coreSegment = "Description";
int64_t maxHistorySize = -1;
};
Properties p;
// std::unique_ptr<Visu> visu;
public:
// struct RemoteGui
// {
// armarx::RemoteGui::Client::GroupBox group;
// armarx::RemoteGui::Client::IntSpinBox maxHistorySize;
// armarx::RemoteGui::Client::CheckBox infiniteHistory;
// armarx::RemoteGui::Client::CheckBox discardSnapshotsWhileAttached;
// void setup(const Segment& data);
// void update(Segment& data);
// };
};
} // namespace armarx::armem::server::robot_state::description
Loading