mirror of
https://gitlab.com/obbart/universal_robots_ros_driver.git
synced 2026-04-10 10:00:48 +02:00
Changed masterboard IO data to bitset
This commit is contained in:
@@ -6,6 +6,8 @@
|
|||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include <array>
|
||||||
|
#include <bitset>
|
||||||
#include "ur_modern_driver/log.h"
|
#include "ur_modern_driver/log.h"
|
||||||
#include "ur_modern_driver/types.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()
|
void consume()
|
||||||
{
|
{
|
||||||
buf_pos_ = buf_end_;
|
buf_pos_ = buf_end_;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
|
#include <bitset>
|
||||||
#include "ur_modern_driver/bin_parser.h"
|
#include "ur_modern_driver/bin_parser.h"
|
||||||
#include "ur_modern_driver/types.h"
|
#include "ur_modern_driver/types.h"
|
||||||
#include "ur_modern_driver/ur/state.h"
|
#include "ur_modern_driver/ur/state.h"
|
||||||
@@ -41,8 +42,9 @@ public:
|
|||||||
virtual bool parseWith(BinParser& bp);
|
virtual bool parseWith(BinParser& bp);
|
||||||
virtual bool consumeWith(URStatePacketConsumer& consumer);
|
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;
|
uint8_t master_safety_state;
|
||||||
bool master_on_off_state;
|
bool master_on_off_state;
|
||||||
@@ -62,8 +64,8 @@ public:
|
|||||||
virtual bool parseWith(BinParser& bp);
|
virtual bool parseWith(BinParser& bp);
|
||||||
virtual bool consumeWith(URStatePacketConsumer& consumer);
|
virtual bool consumeWith(URStatePacketConsumer& consumer);
|
||||||
|
|
||||||
int32_t digital_input_bits;
|
std::bitset<18> digital_input_bits;
|
||||||
int32_t digital_output_bits;
|
std::bitset<18> digital_output_bits;
|
||||||
|
|
||||||
uint8_t safety_mode;
|
uint8_t safety_mode;
|
||||||
bool in_reduced_mode;
|
bool in_reduced_mode;
|
||||||
|
|||||||
@@ -23,8 +23,8 @@ bool MasterBoardData_V1_X::parseWith(BinParser& bp)
|
|||||||
if (!bp.checkSize<MasterBoardData_V1_X>())
|
if (!bp.checkSize<MasterBoardData_V1_X>())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
bp.parse(digital_input_bits);
|
bp.parse<uint16_t, 10>(digital_input_bits);
|
||||||
bp.parse(digital_output_bits);
|
bp.parse<uint16_t, 10>(digital_output_bits);
|
||||||
|
|
||||||
SharedMasterBoardData::parseWith(bp);
|
SharedMasterBoardData::parseWith(bp);
|
||||||
|
|
||||||
@@ -49,8 +49,8 @@ bool MasterBoardData_V3_0__1::parseWith(BinParser& bp)
|
|||||||
if (!bp.checkSize<MasterBoardData_V3_0__1>())
|
if (!bp.checkSize<MasterBoardData_V3_0__1>())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
bp.parse(digital_input_bits);
|
bp.parse<uint32_t, 18>(digital_input_bits);
|
||||||
bp.parse(digital_output_bits);
|
bp.parse<uint32_t, 18>(digital_output_bits);
|
||||||
|
|
||||||
SharedMasterBoardData::parseWith(bp);
|
SharedMasterBoardData::parseWith(bp);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user