Lely core libraries 2.3.4
lss_master.hpp File Reference

This header file is part of the C++ CANopen application library; it contains the CANopen Layer Setting Services (LSS) master declarations. More...

#include <lely/coapp/node.hpp>
#include <lely/libc/functional.hpp>
#include <lely/libc/type_traits.hpp>
#include <chrono>
#include <memory>
#include <utility>
Include dependency graph for lss_master.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  lely::canopen::LssAddress
 The 128-bit number uniquely identifying each CANopen node. More...
 
class  lely::canopen::detail::LssRequestBase
 
class  lely::canopen::detail::LssSwitchRequestBase
 
class  lely::canopen::detail::LssSwitchSelectiveRequestBase
 
class  lely::canopen::detail::LssSetIdRequestBase
 
class  lely::canopen::detail::LssSetBitrateRequestBase
 
class  lely::canopen::detail::LssSwitchBitrateRequestBase
 
class  lely::canopen::detail::LssStoreRequestBase
 
class  lely::canopen::detail::LssGetNumberRequestBase
 
class  lely::canopen::detail::LssGetVendorIdRequestBase
 
class  lely::canopen::detail::LssGetProductCodeRequestBase
 
class  lely::canopen::detail::LssGetRevisionRequestBase
 
class  lely::canopen::detail::LssGetSerialNrRequestBase
 
class  lely::canopen::detail::LssGetIdRequestBase
 
class  lely::canopen::detail::LssIdNonConfigRequestBase
 
class  lely::canopen::detail::LssScanRequestBase
 
class  lely::canopen::detail::LssSlowscanRequestBase
 
class  lely::canopen::detail::LssFastscanRequestBase
 
class  lely::canopen::LssSwitchRequest
 An LSS 'switch state global' request. More...
 
class  lely::canopen::LssSwitchSelectiveRequest
 An LSS 'switch state selective' request. More...
 
class  lely::canopen::LssSetIdRequest
 An LSS 'configure node-ID' request. More...
 
class  lely::canopen::LssSetBitrateRequest
 An LSS 'configure bit timing parameters' request. More...
 
class  lely::canopen::LssSwitchBitrateRequest
 An LSS 'activate bit timing parameters' request. More...
 
class  lely::canopen::LssStoreRequest
 An LSS 'store configuration' request. More...
 
class  lely::canopen::LssGetVendorIdRequest
 An LSS 'inquire identity vendor-ID' request. More...
 
class  lely::canopen::LssGetProductCodeRequest
 An LSS 'inquire identity product-code' request. More...
 
class  lely::canopen::LssGetRevisionRequest
 An LSS 'inquire identity revision-number' request. More...
 
class  lely::canopen::LssGetSerialNrRequest
 An LSS 'inquire identity serial-number' request. More...
 
class  lely::canopen::LssGetIdRequest
 An LSS 'inquire node-ID' request. More...
 
class  lely::canopen::LssIdNonConfigRequest
 An LSS 'identify non-configured remote slave' request. More...
 
class  lely::canopen::LssSlowscanRequest
 An 'LSS Slowscan' request. More...
 
class  lely::canopen::LssFastscanRequest
 An 'LSS Fastscan' request. More...
 
class  lely::canopen::detail::LssSwitchRequestWrapper< F >
 
class  lely::canopen::detail::LssSwitchSelectiveRequestWrapper< F >
 
class  lely::canopen::detail::LssSetIdRequestWrapper< F >
 
class  lely::canopen::detail::LssSetBitrateRequestWrapper< F >
 
class  lely::canopen::detail::LssSwitchBitrateRequestWrapper< F >
 
class  lely::canopen::detail::LssStoreRequestWrapper< F >
 
class  lely::canopen::detail::LssGetVendorIdRequestWrapper< F >
 
class  lely::canopen::detail::LssGetProductCodeRequestWrapper< F >
 
class  lely::canopen::detail::LssGetRevisionRequestWrapper< F >
 
class  lely::canopen::detail::LssGetSerialNrRequestWrapper< F >
 
class  lely::canopen::detail::LssGetIdRequestWrapper< F >
 
class  lely::canopen::detail::LssIdNonConfigRequestWrapper< F >
 
class  lely::canopen::detail::LssSlowscanRequestWrapper< F >
 
class  lely::canopen::detail::LssFastscanRequestWrapper< F >
 
class  lely::canopen::LssMaster
 The base class for CANopen LSS masters. More...
 

Namespaces

namespace  lely::canopen
 The namespace for the C++ CANopen application library.
 
namespace  lely::canopen::detail
 The namespace for implementation details of the C++ CANopen application library.
 

Typedefs

template<class T >
using lely::canopen::LssPromise = ev::Promise< T, ::std::exception_ptr >
 A helper alias template for the type of promise used to store the result of an asynchronous LSS request. More...
 
template<class T >
using lely::canopen::LssFuture = ev::Future< T, ::std::exception_ptr >
 A helper alias template for the type of future used to retrieve the result of an asynchronous LSS request. More...
 

Enumerations

enum class  lely::canopen::LssState { lely::canopen::WAITING = 0 , lely::canopen::CONFIG = 1 }
 The states of the LSS finite state automaton (FSA) of a slave device. More...
 

Functions

template<class F >
typename::std::enable_if< compat::is_invocable< F,::std::error_code >::value, detail::LssSwitchRequestWrapper< F > * >::type lely::canopen::make_lss_switch_request (ev_exec_t *exec, LssState state, F &&con)
 Creates an LSS 'switch state global' request with a completion task. More...
 
template<class F >
typename::std::enable_if< compat::is_invocable< F,::std::error_code >::value, detail::LssSwitchSelectiveRequestWrapper< F > * >::type lely::canopen::make_lss_switch_selective_request (ev_exec_t *exec, const LssAddress &address, F &&con)
 Creates an LSS 'switch state selective' request with a completion task. More...
 
template<class F >
typename::std::enable_if< compat::is_invocable< F,::std::error_code >::value, detail::LssSetIdRequestWrapper< F > * >::type lely::canopen::make_lss_set_id_request (ev_exec_t *exec, uint8_t id, F &&con)
 Creates an LSS 'configure node-ID' request with a completion task. More...
 
template<class F >
typename::std::enable_if< compat::is_invocable< F,::std::error_code >::value, detail::LssSetBitrateRequestWrapper< F > * >::type lely::canopen::make_lss_set_bitrate_request (ev_exec_t *exec, int bitrate, F &&con)
 Creates an LSS 'configure bit timing parameters' request with a completion task. More...
 
template<class F >
typename::std::enable_if< compat::is_invocable< F,::std::error_code >::value, detail::LssSwitchBitrateRequestWrapper< F > * >::type lely::canopen::make_lss_switch_bitrate_request (ev_exec_t *exec, int delay, F &&con)
 Creates an LSS 'activate bit timing parameters' request with a completion task. More...
 
template<class F >
typename::std::enable_if< compat::is_invocable< F,::std::error_code >::value, detail::LssStoreRequestWrapper< F > * >::type lely::canopen::make_lss_store_request (ev_exec_t *exec, F &&con)
 Creates an LSS 'store configuration' request with a completion task. More...
 
template<class F >
typename::std::enable_if< compat::is_invocable< F,::std::error_code, uint32_t >::value, detail::LssGetVendorIdRequestWrapper< F > * >::type lely::canopen::make_lss_get_vendor_id_request (ev_exec_t *exec, F &&con)
 Creates an LSS 'inquire identity vendor-ID' request with a completion task. More...
 
template<class F >
typename::std::enable_if< compat::is_invocable< F,::std::error_code, uint32_t >::value, detail::LssGetProductCodeRequestWrapper< F > * >::type lely::canopen::make_lss_get_product_code_request (ev_exec_t *exec, F &&con)
 Creates an LSS 'inquire identity product-code' request with a completion task. More...
 
template<class F >
typename::std::enable_if< compat::is_invocable< F,::std::error_code, uint32_t >::value, detail::LssGetRevisionRequestWrapper< F > * >::type lely::canopen::make_lss_get_revision_request (ev_exec_t *exec, F &&con)
 Creates an LSS 'inquire identity revision-number' request with a completion task. More...
 
template<class F >
typename::std::enable_if< compat::is_invocable< F,::std::error_code, uint32_t >::value, detail::LssGetSerialNrRequestWrapper< F > * >::type lely::canopen::make_lss_get_serial_nr_request (ev_exec_t *exec, F &&con)
 Creates an LSS 'inquire identity serial-number' request with a completion task. More...
 
template<class F >
typename::std::enable_if< compat::is_invocable< F,::std::error_code, uint8_t >::value, detail::LssGetIdRequestWrapper< F > * >::type lely::canopen::make_lss_get_id_request (ev_exec_t *exec, F &&con)
 Creates an LSS 'inquire node-ID' request with a completion task. More...
 
template<class F >
typename::std::enable_if< compat::is_invocable< F,::std::error_code, bool >::value, detail::LssIdNonConfigRequestWrapper< F > * >::type lely::canopen::make_lss_id_non_config_request (ev_exec_t *exec, F &&con)
 Creates an LSS 'identify non-configured remote slave' request with a completion task. More...
 
template<class F >
typename::std::enable_if< compat::is_invocable< F,::std::error_code, LssAddress >::value, detail::LssSlowscanRequestWrapper< F > * >::type lely::canopen::make_lss_slowscan_request (ev_exec_t *exec, const LssAddress &lo, const LssAddress &hi, F &&con)
 Creates an 'LSS Slowscan' request with a completion task. More...
 
template<class F >
typename::std::enable_if< compat::is_invocable< F,::std::error_code, LssAddress >::value, detail::LssFastscanRequestWrapper< F > * >::type lely::canopen::make_lss_fastscan_request (ev_exec_t *exec, const LssAddress &address, const LssAddress &mask, F &&con)
 Creates an 'LSS Fastscan' request with a completion task. More...
 

Detailed Description

This header file is part of the C++ CANopen application library; it contains the CANopen Layer Setting Services (LSS) master declarations.

For more information about the LSS protocol, see CiA 305 v3.0.0.

Author
J. S. Seldenthuis jseld.nosp@m.enth.nosp@m.uis@l.nosp@m.ely..nosp@m.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Definition in file lss_master.hpp.