Skip to content
Snippets Groups Projects
Commit 93a324cd authored by Simon Ottenhaus's avatar Simon Ottenhaus
Browse files

Modifications to HapticUnit ice interface

parent 7311676e
Branches feature/skills-manager-edit-arguments
No related tags found
No related merge requests found
......@@ -45,4 +45,5 @@ data/dbdump/
# Generated Scenario Files
scenarios/*/startScenario.sh
scenarios/*/stopScenario.sh
scenarios/*/startGui.sh
......@@ -29,6 +29,7 @@
#include <core/BasicTypes.ice>
#include <observers/VariantBase.ice>
#include <observers/Matrix.ice>
#include <observers/Timestamp.ice>
#include <observers/ObserverInterface.ice>
#include <robotstate/RobotState.ice>
......@@ -40,7 +41,7 @@ module armarx
interface HapticUnitListener
{
void reportSensorValues(string type, MatrixFloatBase values);
void reportSensorValues(string device, string name, MatrixFloatBase values, TimestampBase timestamp);
};
interface HapticUnitObserverInterface extends ObserverInterface, HapticUnitListener
......
......@@ -57,7 +57,7 @@ PropertyDefinitionsPtr WeissHapticSensorListener::createPropertyDefinitions()
getConfigIdentifier()));
}
void armarx::WeissHapticSensorListener::reportSensorValues(const std::string& type, const armarx::MatrixFloatBasePtr& values, const Ice::Current&)
void armarx::WeissHapticSensorListener::reportSensorValues(const std::string& device, const std::string& name, const armarx::MatrixFloatBasePtr& values, const armarx::TimestampBasePtr& timestamp, const Ice::Current&)
{
ARMARX_LOG << deactivateSpam(1) << "WeissHapticSensorListener::reportSensorValues" << MatrixFloatPtr::dynamicCast(values)->toEigen();
......
......@@ -30,6 +30,7 @@
#include <Core/util/variants/eigen3/MatrixVariant.h>
#include <Core/util/variants/eigen3/VariantObjectFactories.h>
namespace armarx
{
/**
......@@ -68,7 +69,7 @@ namespace armarx
return "WeissHapticSensorListener";
}
virtual void reportSensorValues(const ::std::string& type, const ::armarx::MatrixFloatBasePtr& values, const ::Ice::Current& = ::Ice::Current());
virtual void reportSensorValues(const ::std::string& device, const ::std::string& name, const ::armarx::MatrixFloatBasePtr& values, const ::armarx::TimestampBasePtr& timestamp, const ::Ice::Current& = ::Ice::Current());
protected:
/**
......
#include "WeissHapticSensor.h"
#include <Core/util/variants/eigen3/MatrixVariant.h>
#include <Core/observers/variant/TimestampVariant.h>
using namespace armarx;
......@@ -85,7 +86,8 @@ void WeissHapticSensor::readAndReportSensorValues()
(*matrix)(y, x) = val;
}
}
listenerPrx->reportSensorValues(tag, matrix);
TimestampVariantPtr timestamp = new TimestampVariant(0);
listenerPrx->reportSensorValues(device, tag, matrix, timestamp);
}
cout << this << ": stopPeriodicFrameAcquisition" << endl;
......
......@@ -40,28 +40,29 @@ void HapticObserver::onConnectObserver()
{
}
void HapticObserver::reportSensorValues(const std::string &type, const MatrixFloatBasePtr &values, const Ice::Current &)
void HapticObserver::reportSensorValues(const std::string& device, const std::string& name, const armarx::MatrixFloatBasePtr& values, const armarx::TimestampBasePtr& timestamp, const Ice::Current&)
{
ScopedLock lock(dataMutex);
MatrixFloatPtr matrix = MatrixFloatPtr::dynamicCast(values);
Eigen::MatrixXf eigenMatrix = matrix->toEigen();
float max = eigenMatrix.maxCoeff();
float mean = eigenMatrix.mean();
if(!existsChannel(type))
if(!existsChannel(device))
{
offerChannel(type, "Force and Torque vectors on specific parts of the robot.");
offerDataFieldWithDefault(type, "matrix", matrix, "Raw tactile matrix data");
offerDataFieldWithDefault(type, "max", Variant(max), "Maximum value");
offerDataFieldWithDefault(type, "mean", Variant(mean), "Mean value");
offerChannel(device, "Haptic data");
offerDataFieldWithDefault(device, "name", Variant(name), "Name of the tactile sensor");
offerDataFieldWithDefault(device, "matrix", matrix, "Raw tactile matrix data");
offerDataFieldWithDefault(device, "max", Variant(max), "Maximum value");
offerDataFieldWithDefault(device, "mean", Variant(mean), "Mean value");
}
else
{
setDataField(type, "matrix", matrix);
setDataField(type, "max", Variant(max));
setDataField(type, "mean", Variant(mean));
setDataField(device, "matrix", matrix);
setDataField(device, "max", Variant(max));
setDataField(device, "mean", Variant(mean));
}
updateChannel(type);
updateChannel(device);
}
PropertyDefinitionsPtr HapticObserver::createPropertyDefinitions()
......
......@@ -56,7 +56,7 @@ namespace armarx
void onInitObserver();
void onConnectObserver();
void reportSensorValues(const std::string &type, const ::armarx::MatrixFloatBasePtr &values, const ::Ice::Current& = ::Ice::Current());
void reportSensorValues(const ::std::string& device, const ::std::string& name, const ::armarx::MatrixFloatBasePtr& values, const ::armarx::TimestampBasePtr& timestamp, const ::Ice::Current& = ::Ice::Current());
/**
* @see PropertyUser::createPropertyDefinitions()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment