Lely core libraries  2.3.4
sdo.hpp File Reference
#include <lely/coapp/sdo_error.hpp>
#include <lely/coapp/type_traits.hpp>
#include <lely/ev/future.hpp>
#include <chrono>
#include <limits>
#include <memory>
#include <string>
#include <utility>
Include dependency graph for sdo.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

class  lely::canopen::detail::SdoRequestBase
 
class  lely::canopen::detail::SdoDownloadRequestBase< T >
 
class  lely::canopen::detail::SdoDownloadDcfRequestBase
 
class  lely::canopen::detail::SdoUploadRequestBase< T >
 
class  lely::canopen::SdoDownloadRequest< T >
 An SDO download (i.e., write) request. More...
 
class  lely::canopen::SdoDownloadDcfRequest
 A series of SDO download (i.e., write) requests corresponding to the entries in a concise DCF. More...
 
class  lely::canopen::SdoUploadRequest< T >
 An SDO upload (i.e., read) request. More...
 
class  lely::canopen::detail::SdoDownloadRequestWrapper< T >
 
class  lely::canopen::detail::SdoDownloadDcfRequestWrapper
 
class  lely::canopen::detail::SdoUploadRequestWrapper< T >
 
class  lely::canopen::Sdo
 A Client-SDO queue. More...
 

Namespaces

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

Typedefs

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

Functions

SdoFuture< void > lely::canopen::make_empty_sdo_future ()
 Returns an SDO future with a shared state that is immediately ready, containing a successful result of type void. More...
 
template<class T , class V = typename ::std::decay<T>::type>
SdoFuture< V > lely::canopen::make_ready_sdo_future (T &&value)
 Returns an SDO future with a shared state that is immediately ready, containing a successful result constructed from std::forward<T>(value). More...
 
template<class T >
SdoFuture< T > lely::canopen::make_error_sdo_future (uint8_t id, uint16_t idx, uint8_t subidx, ::std::error_code ec)
 Returns an SDO future with a shared state that is immediately ready, containing a failure result constructed with make_sdo_exception_ptr(uint8_t, uint16_t, uint8_t, ::std::error_code). More...
 
template<class T >
SdoFuture< T > lely::canopen::make_error_sdo_future (uint8_t id, uint16_t idx, uint8_t subidx, ::std::error_code ec, const ::std::string &what_arg)
 Returns an SDO future with a shared state that is immediately ready, containing a failure result constructed with make_sdo_exception_ptr(uint8_t, uint16_t, uint8_t, ::std::error_code, const ::std::string&). More...
 
template<class T >
SdoFuture< T > lely::canopen::make_error_sdo_future (uint8_t id, uint16_t idx, uint8_t subidx, ::std::error_code ec, const char *what_arg)
 Returns an SDO future with a shared state that is immediately ready, containing a failure result constructed with make_sdo_exception_ptr(uint8_t, uint16_t, uint8_t, ::std::error_code, const char*). More...
 
inline ::std::chrono::milliseconds lely::canopen::detail::from_sdo_timeout (int timeout)
 Converts an SDO timeout to a duration.
 
template<class Rep , class Period >
int lely::canopen::detail::to_sdo_timeout (const ::std::chrono::duration< Rep, Period > &d)
 Converts a duration to an SDO timeout.
 
template<class T , class U , class F >
detail::SdoDownloadRequestWrapper< T > * lely::canopen::make_sdo_download_request (ev_exec_t *exec, uint16_t idx, uint8_t subidx, U &&value, F &&con, bool block=false, const ::std::chrono::milliseconds &timeout={})
 Creates an SDO download request with a completion task. More...
 
template<class F >
detail::SdoDownloadDcfRequestWrapper * lely::canopen::make_sdo_download_dcf_request (ev_exec_t *exec, const uint8_t *begin, const uint8_t *end, F &&con, const ::std::chrono::milliseconds &timeout={})
 Creates a series of SDO download requests, corresponding to the entries in a concise DCF, with a completion task. More...
 
template<class F >
detail::SdoDownloadDcfRequestWrapper * lely::canopen::make_sdo_download_dcf_request (ev_exec_t *exec, const char *path, F &&con, const ::std::chrono::milliseconds &timeout={})
 Creates a series of SDO download requests, corresponding to the entries in a concise DCF, with a completion task. More...
 
template<class T , class F >
detail::SdoUploadRequestWrapper< T > * lely::canopen::make_sdo_upload_request (ev_exec_t *exec, uint16_t idx, uint8_t subidx, F &&con, bool block=false, const ::std::chrono::milliseconds &timeout={})
 Creates an SDO upload request with a completion task. More...
 

Detailed Description

This header file is part of the C++ CANopen master library; it contains the Client-SDO queue declarations.

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 sdo.hpp.