Classes | Public Types | Public Member Functions | Public Attributes | Protected Attributes | List of all members
icl_hardware::canopen_schunk::PDO Class Reference

The PDO class provides access to one (of the possible multiple) Process Data Object of a canOpen node. The class provides structures for transmit and received data and the functions to trigger down- and uploads. More...

#include <PDO.h>

Inheritance diagram for icl_hardware::canopen_schunk::PDO:
Inheritance graph
[legend]

Classes

class  Mapping
 Holds the mapping parameter plus the actual data. More...
 
struct  MappingConfiguration
 Mapping of a PDO. This is basically a description that says where to look in the object dictionary and how many bits to read. More...
 
struct  PDOStringMatch
 Unique index to find a mapped Object dictionary item in a PDO. More...
 

Public Types

enum  eTransmissionType {
  SYNCHRONOUS_ACYCLIC = 0, RTR_ONLY_SYNCHRONOUS = 252, RTR_ONLY_EVENT_DRIVEN = 253, EVENT_DRIVEN_MANUFACTURER_SPECIFIC = 254,
  EVENT_DRIVEN_PROFILE_SPECIFIC = 255, SYNCHRONOUS_CYCLIC = 1
}
 Transmission types of a PDO, needed when mapping PDOs. More...
 
typedef std::vector< MappingConfigurationMappingConfigurationList
 The MappingConfigurationList holds multiple Mapping configurations. The Mapping of a single PDO is defined by one such configuration list. More...
 
typedef std::vector< MappingMappingList
 
typedef std::vector< PDOStringMatchPDOStringMatchVec
 
typedef boost::shared_ptr< PDOPtr
 Convenience typedef to use PDOs with shared pointers. More...
 
typedef std::vector< boost::shared_ptr< PDO > > PtrList
 Convenience typedef to use PDO lists with shared pointers. More...
 

Public Member Functions

PDOStringMatchVec appendMapping (SDO &sdo, const MappingConfigurationList &mappings, const eTransmissionType &transmission_type, const uint16_t pdo_cob_id, const uint16_t pdo_communication_parameter, const uint16_t pdo_mapping_parameter, const bool dummy_mapping=false, const uint8_t cyclic_timeout_cycles=0)
 Appends one or more mapping parameters to the existing mapping. Note that the PDO will be disabled while appending another mapping. More...
 
 PDO (const uint8_t node_id, const uint8_t pdo_nr, const CanDevPtr &can_device)
 Construct a new PDO. More...
 
PDOStringMatchVec remap (SDO &sdo, const MappingConfigurationList &mappings, const eTransmissionType &transmission_type, const uint16_t pdo_cob_id, const uint16_t pdo_communication_parameter, const uint16_t pdo_mapping_parameter, const bool dummy_mapping=false, const uint8_t cyclic_timeout_cycles=0)
 Configure a PDO by sending some SDO packages. This can be either done during NMT state pre-operational or during the NMT state Operational. If an empty mapping is given, we leave the mapping as is. More...
 

Public Attributes

MappingList m_mapping_list
 List of all mappings inside this PDO. More...
 

Protected Attributes

CanDevPtr m_can_device
 Can Device handle. More...
 
uint8_t m_node_id
 CANOPEN ID of the node this PDO belongs to. More...
 
uint8_t m_pdo_nr
 The PDO number inside the logical device. Theoretically this can be in 0 to 511. More...
 

Detailed Description

The PDO class provides access to one (of the possible multiple) Process Data Object of a canOpen node. The class provides structures for transmit and received data and the functions to trigger down- and uploads.

The class implements PDO access by providing data structures for the userdata and interfaces to trigger a down and upload. These functions will be called periodically in order to transmit userdata to the actual devices and vice versa. The Class also offers the functionality to trigger a PDO remap which is done during the setup phase of the devices. A node may hold 1-4 PDOs in the standard case but up to 512 in the extended case.

Definition at line 44 of file PDO.h.

Member Typedef Documentation

The MappingConfigurationList holds multiple Mapping configurations. The Mapping of a single PDO is defined by one such configuration list.

Definition at line 70 of file PDO.h.

Definition at line 106 of file PDO.h.

Definition at line 119 of file PDO.h.

Convenience typedef to use PDOs with shared pointers.

Definition at line 133 of file PDO.h.

Convenience typedef to use PDO lists with shared pointers.

Definition at line 135 of file PDO.h.

Member Enumeration Documentation

Transmission types of a PDO, needed when mapping PDOs.

Enumerator
SYNCHRONOUS_ACYCLIC 
RTR_ONLY_SYNCHRONOUS 
RTR_ONLY_EVENT_DRIVEN 
EVENT_DRIVEN_MANUFACTURER_SPECIFIC 
EVENT_DRIVEN_PROFILE_SPECIFIC 
SYNCHRONOUS_CYCLIC 

Definition at line 122 of file PDO.h.

Constructor & Destructor Documentation

icl_hardware::canopen_schunk::PDO::PDO ( const uint8_t  node_id,
const uint8_t  pdo_nr,
const CanDevPtr can_device 
)

Construct a new PDO.

Parameters
node_idID of the node this PDO belongs to
pdo_nrnumbering of this PDO inside the node
can_devicehandle to the CAN device

Definition at line 36 of file PDO.cpp.

Member Function Documentation

PDO::PDOStringMatchVec icl_hardware::canopen_schunk::PDO::appendMapping ( SDO sdo,
const MappingConfigurationList mappings,
const eTransmissionType transmission_type,
const uint16_t  pdo_cob_id,
const uint16_t  pdo_communication_parameter,
const uint16_t  pdo_mapping_parameter,
const bool  dummy_mapping = false,
const uint8_t  cyclic_timeout_cycles = 0 
)

Appends one or more mapping parameters to the existing mapping. Note that the PDO will be disabled while appending another mapping.

Note
Do not call this method by hand, but use the wrapper functions in the DS301Node class. Otherwise the node will not know of the new mapping and won't be able to find a PDO by it's identifier string.
Parameters
sdoHandle to the SDO object
mappingsList of MappingConfigurations that should be mapped into this PDO
transmission_typeTransmission type of this PDO
pdo_cob_idCANOPEN-ID of this pdo
pdo_communication_parameterobject dictionary entry of this pdo's communication parameter
pdo_mapping_parameterobject dictionary entry of this pdo's mapping parameter
dummy_mappingif set to True, no download to the device will be performed, but the mapping will be done on host side. This is especially useful if a device has preconfigured PDOs which you like to use.
cyclic_timeout_cyclesIf the transmission type SYNCHRONOUS_CYCLIC is used, this parameter defines the PDO's frequency by defining the number of cycles between two send attempts. For example, a parameter value of 4 means, that the PDO is sent every 5th cycle.
Exceptions
PDOExceptionwhen an error occurs or an exception is thrown in an underlying structure like SDO communication.
Returns
PDOStringMatchVec Vector of string to vec_index matchings. If an error occurs, the returned vector will be empty.

Definition at line 229 of file PDO.cpp.

PDO::PDOStringMatchVec icl_hardware::canopen_schunk::PDO::remap ( SDO sdo,
const MappingConfigurationList mappings,
const eTransmissionType transmission_type,
const uint16_t  pdo_cob_id,
const uint16_t  pdo_communication_parameter,
const uint16_t  pdo_mapping_parameter,
const bool  dummy_mapping = false,
const uint8_t  cyclic_timeout_cycles = 0 
)

Configure a PDO by sending some SDO packages. This can be either done during NMT state pre-operational or during the NMT state Operational. If an empty mapping is given, we leave the mapping as is.

Note
Do not call this method by hand, but use the wrapper functions in the DS301Node class. Otherwise the node will not know of the new mapping and won't be able to find a PDO by it's identifier string.
Parameters
sdoHandle to the SDO object
mappingsList of MappingConfigurations that should be mapped into this PDO
transmission_typeTransmission type of this PDO
pdo_cob_idCANOPEN-ID of this pdo
pdo_communication_parameterobject dictionary entry of this pdo's communication parameter
pdo_mapping_parameterobject dictionary entry of this pdo's mapping parameter
dummy_mappingif set to True, no download to the device will be performed, but the mapping will be done on host side. This is especially useful if a device has preconfigured PDOs which you like to use.
cyclic_timeout_cyclesIf the transmission type SYNCHRONOUS_CYCLIC is used, this parameter defines the PDO's frequency by defining the number of cycles between two send attempts. For example, a parameter value of 4 means, that the PDO is sent every 5th cycle.
Exceptions
PDOExceptionwhen an error occurs or an exception is thrown in an underlying structure like SDO communication.
Returns
PDOStringMatchVec Vector of string to vec_index matchings. If an error occurs, the returned vector will be empty.

Definition at line 45 of file PDO.cpp.

Member Data Documentation

CanDevPtr icl_hardware::canopen_schunk::PDO::m_can_device
protected

Can Device handle.

Definition at line 226 of file PDO.h.

MappingList icl_hardware::canopen_schunk::PDO::m_mapping_list

List of all mappings inside this PDO.

Definition at line 216 of file PDO.h.

uint8_t icl_hardware::canopen_schunk::PDO::m_node_id
protected

CANOPEN ID of the node this PDO belongs to.

Definition at line 220 of file PDO.h.

uint8_t icl_hardware::canopen_schunk::PDO::m_pdo_nr
protected

The PDO number inside the logical device. Theoretically this can be in 0 to 511.

Definition at line 223 of file PDO.h.


The documentation for this class was generated from the following files:


schunk_canopen_driver
Author(s): Felix Mauch , Georg Heppner
autogenerated on Mon Jun 10 2019 15:07:49