1
0
mirror of https://gitlab.com/obbart/universal_robots_ros_driver.git synced 2026-04-10 01:50:46 +02:00

Changed masterboard IO data to bitset

This commit is contained in:
Simon Rasmussen
2017-04-13 10:34:51 +02:00
parent 618dd35c43
commit a4ca9f1703
3 changed files with 21 additions and 9 deletions

View File

@@ -6,6 +6,8 @@
#include <cstddef>
#include <cstring>
#include <string>
#include <array>
#include <bitset>
#include "ur_modern_driver/log.h"
#include "ur_modern_driver/types.h"
@@ -144,6 +146,14 @@ public:
}
}
template <typename T, size_t N>
void parse(std::bitset<N>& set)
{
T val;
parse(val);
set = std::bitset<N>(val);
}
void consume()
{
buf_pos_ = buf_end_;

View File

@@ -2,6 +2,7 @@
#include <inttypes.h>
#include <cstddef>
#include <bitset>
#include "ur_modern_driver/bin_parser.h"
#include "ur_modern_driver/types.h"
#include "ur_modern_driver/ur/state.h"
@@ -41,8 +42,9 @@ public:
virtual bool parseWith(BinParser& bp);
virtual bool consumeWith(URStatePacketConsumer& consumer);
int16_t digital_input_bits;
int16_t digital_output_bits;
std::bitset<10> digital_input_bits;
std::bitset<10> digital_output_bits;
uint8_t master_safety_state;
bool master_on_off_state;
@@ -62,8 +64,8 @@ public:
virtual bool parseWith(BinParser& bp);
virtual bool consumeWith(URStatePacketConsumer& consumer);
int32_t digital_input_bits;
int32_t digital_output_bits;
std::bitset<18> digital_input_bits;
std::bitset<18> digital_output_bits;
uint8_t safety_mode;
bool in_reduced_mode;

View File

@@ -23,8 +23,8 @@ bool MasterBoardData_V1_X::parseWith(BinParser& bp)
if (!bp.checkSize<MasterBoardData_V1_X>())
return false;
bp.parse(digital_input_bits);
bp.parse(digital_output_bits);
bp.parse<uint16_t, 10>(digital_input_bits);
bp.parse<uint16_t, 10>(digital_output_bits);
SharedMasterBoardData::parseWith(bp);
@@ -49,8 +49,8 @@ bool MasterBoardData_V3_0__1::parseWith(BinParser& bp)
if (!bp.checkSize<MasterBoardData_V3_0__1>())
return false;
bp.parse(digital_input_bits);
bp.parse(digital_output_bits);
bp.parse<uint32_t, 18>(digital_input_bits);
bp.parse<uint32_t, 18>(digital_output_bits);
SharedMasterBoardData::parseWith(bp);