EtherCATDataTypes.h File Reference
#include <bitset>
#include <cstdint>
#include <variant>
#include <vector>
+ Include dependency graph for EtherCATDataTypes.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  TypeMap< E >
 Maps from EtherCATDataTypeEnum to EtherCATDataType. More...
 
struct  TypeMap< EtherCATDataTypeEnum::BIT1 >
 
struct  TypeMap< EtherCATDataTypeEnum::BIT2 >
 
struct  TypeMap< EtherCATDataTypeEnum::BIT3 >
 
struct  TypeMap< EtherCATDataTypeEnum::BIT4 >
 
struct  TypeMap< EtherCATDataTypeEnum::BIT5 >
 
struct  TypeMap< EtherCATDataTypeEnum::BIT6 >
 
struct  TypeMap< EtherCATDataTypeEnum::BIT7 >
 
struct  TypeMap< EtherCATDataTypeEnum::BIT8 >
 
struct  TypeMap< EtherCATDataTypeEnum::BOOLEAN >
 
struct  TypeMap< EtherCATDataTypeEnum::BYTE >
 
struct  TypeMap< EtherCATDataTypeEnum::INTEGER16 >
 
struct  TypeMap< EtherCATDataTypeEnum::INTEGER24 >
 
struct  TypeMap< EtherCATDataTypeEnum::INTEGER32 >
 
struct  TypeMap< EtherCATDataTypeEnum::INTEGER64 >
 
struct  TypeMap< EtherCATDataTypeEnum::INTEGER8 >
 
struct  TypeMap< EtherCATDataTypeEnum::OCTET_STRING >
 
struct  TypeMap< EtherCATDataTypeEnum::REAL32 >
 
struct  TypeMap< EtherCATDataTypeEnum::REAL64 >
 
struct  TypeMap< EtherCATDataTypeEnum::TIME_DIFFERENCE >
 
struct  TypeMap< EtherCATDataTypeEnum::TIME_OF_DAY >
 
struct  TypeMap< EtherCATDataTypeEnum::UNICODE_STRING >
 
struct  TypeMap< EtherCATDataTypeEnum::UNSIGNED16 >
 
struct  TypeMap< EtherCATDataTypeEnum::UNSIGNED24 >
 
struct  TypeMap< EtherCATDataTypeEnum::UNSIGNED32 >
 
struct  TypeMap< EtherCATDataTypeEnum::UNSIGNED64 >
 
struct  TypeMap< EtherCATDataTypeEnum::UNSIGNED8 >
 
struct  TypeMap< EtherCATDataTypeEnum::VISIBLE_STRING >
 

Namespaces

namespace  armarx
 This file offers overloads of toIce() and fromIce() functions for STL container types.
 
namespace  armarx::control
 
namespace  armarx::control::ethercat
 
namespace  armarx::control::ethercat::datatypes
 
namespace  armarx::control::ethercat::datatypes::EtherCATDataType
 Holds all the types we support via EtherCAT as their C++ equivalents along with some tools to handle them.
 

Typedefs

using BIT1 = std::bitset<1>
 
using BIT2 = std::bitset<2>
 
using BIT3 = std::bitset<3>
 
using BIT4 = std::bitset<4>
 
using BIT5 = std::bitset<5>
 
using BIT6 = std::bitset<6>
 
using BIT7 = std::bitset<7>
 
using BIT8 = std::bitset<8>
 
using BOOLEAN = bool
 
using BYTE = uint8_t
 
using INTEGER16 = int16_t
 
using INTEGER24 = std::bitset<24>
 
using INTEGER32 = int32_t
 
using INTEGER64 = int64_t
 
using INTEGER8 = int8_t
 
using OCTET_STRING = std::vector<uint8_t>
 
using REAL32 = float
 
using REAL64 = double
 
using TIME_DIFFERENCE = uint64_t
 
using TIME_OF_DAY = std::bitset<48>
 
using UNICODE_STRING = std::string
 
using UNSIGNED16 = uint16_t
 
using UNSIGNED24 = std::bitset<24>
 
using UNSIGNED32 = uint32_t
 
using UNSIGNED64 = uint64_t
 
using UNSIGNED8 = uint8_t
 
using VISIBLE_STRING = std::string
 

Enumerations

enum class  EtherCATDataTypeEnum {
  BOOLEAN = 1 , INTEGER8 = 2 , INTEGER16 = 3 , INTEGER32 = 4 ,
  UNSIGNED8 = 5 , UNSIGNED16 = 6 , UNSIGNED32 = 7 , REAL32 = 8 ,
  VISIBLE_STRING = 9 , OCTET_STRING = 10 , UNICODE_STRING = 11 , TIME_OF_DAY = 12 ,
  TIME_DIFFERENCE = 13 , INTEGER24 = 16 , REAL64 = 17 , INTEGER64 = 21 ,
  UNSIGNED24 = 22 , UNSIGNED64 = 27 , BYTE = 30 , BIT1 = 48 ,
  BIT2 = 49 , BIT3 = 50 , BIT4 = 51 , BIT5 = 52 ,
  BIT6 = 53 , BIT7 = 54 , BIT8 = 55
}
 Holds all the types we support via EtherCAT in a type-agnostic enum. More...
 

Variables

template<typename T>
constexpr int bitLength = -1
 Defines the length of the various EtherCATDataTypes in bits.
 
template<>
constexpr int bitLength< BIT1 > = 1
 
template<>
constexpr int bitLength< BIT2 > = 2
 
template<>
constexpr int bitLength< BIT3 > = 3
 
template<>
constexpr int bitLength< BIT4 > = 4
 
template<>
constexpr int bitLength< BIT5 > = 5
 
template<>
constexpr int bitLength< BIT6 > = 6
 
template<>
constexpr int bitLength< BIT7 > = 7
 
template<>
constexpr int bitLength< BIT8 > = 8
 
template<>
constexpr int bitLength< BOOLEAN > = 8
 
template<>
constexpr int bitLength< INTEGER16 > = 16
 
template<>
constexpr int bitLength< INTEGER24 > = 24
 
template<>
constexpr int bitLength< INTEGER32 > = 32
 
template<>
constexpr int bitLength< INTEGER64 > = 64
 
template<>
constexpr int bitLength< INTEGER8 > = 8
 
template<>
constexpr int bitLength< OCTET_STRING > = -1
 
template<>
constexpr int bitLength< REAL32 > = 32
 
template<>
constexpr int bitLength< REAL64 > = 64
 
template<>
constexpr int bitLength< TIME_OF_DAY > = 48
 
template<>
constexpr int bitLength< UNSIGNED16 > = 16
 
template<>
constexpr int bitLength< UNSIGNED32 > = 32
 
template<>
constexpr int bitLength< UNSIGNED64 > = 64
 
template<>
constexpr int bitLength< UNSIGNED8 > = 8
 
template<>
constexpr int bitLength< VISIBLE_STRING > = -1