yarp-devices
Loading...
Searching...
No Matches
Jr3Pci.hpp
1// -*- mode:C++; tab-width:4; c-basic-offset:4; indent-tabs-mode:nil -*-
2
3#ifndef __JR3_PCI_HPP__
4#define __JR3_PCI_HPP__
5
6#include <yarp/conf/version.h>
7
8#include <yarp/dev/DeviceDriver.h>
9#include <yarp/dev/MultipleAnalogSensorsInterfaces.h>
10
11#include <jr3pci-ioctl.h>
12
13#include "Jr3Pci_ParamsParser.h"
14
25class Jr3Pci : public yarp::dev::DeviceDriver,
26 public yarp::dev::ISixAxisForceTorqueSensors,
28{
29public:
30 // --------- DeviceDriver Declarations. Implementation in DeviceDriverImpl.cpp ---------
31 bool open(yarp::os::Searchable& config) override;
32 bool close() override;
33
34 // --------- ISixAxisForceTorqueSensors Declarations. Implementation in ISixAxisForceTorqueSensorsImpl.cpp ---------
35#if YARP_VERSION_COMPARE(>=, 4, 1, 0) || defined(YARP_NEXT)
36 yarp::dev::ReturnValue getNrOfSixAxisForceTorqueSensors(std::size_t & num) const override;
37 yarp::dev::MAS_status getSixAxisForceTorqueSensorStatus(std::size_t sens_index) const override;
38 yarp::dev::ReturnValue getSixAxisForceTorqueSensorName(std::size_t sens_index, std::string & name) const override;
39 yarp::dev::ReturnValue getSixAxisForceTorqueSensorFrameName(std::size_t sens_index, std::string & frameName) const override;
40 yarp::dev::ReturnValue getSixAxisForceTorqueSensorMeasure(std::size_t sens_index, yarp::sig::Vector & out, double & timestamp) const override;
41#else
42 std::size_t getNrOfSixAxisForceTorqueSensors() const override;
43 yarp::dev::MAS_status getSixAxisForceTorqueSensorStatus(std::size_t sens_index) const override;
44 bool getSixAxisForceTorqueSensorName(std::size_t sens_index, std::string & name) const override;
45 bool getSixAxisForceTorqueSensorFrameName(std::size_t sens_index, std::string & frameName) const override;
46 bool getSixAxisForceTorqueSensorMeasure(std::size_t sens_index, yarp::sig::Vector & out, double & timestamp) const override;
47#endif
48
49private:
50 void loadFilters(int id);
51 bool calibrateSensor();
52 bool calibrateChannel(int ch);
53
54 int fd {0};
55 force_array fs[4];
56 unsigned long int filters[4];
57};
58
59#endif // __JR3_PCI_HPP__
Definition Jr3Pci_ParamsParser.h:44
Implementation for the JR3 sensor (PCi board).
Definition Jr3Pci.hpp:28