docs(): Добавлены комментарии к коду EtherCAT

This commit is contained in:
algin 2024-07-29 15:07:44 +03:00
parent 256499f7b4
commit 802b85ae5c
2 changed files with 51 additions and 0 deletions

View File

@ -98,6 +98,34 @@ private:
}; };
/*
* EtherCAT Command
*
* Типы параметров шаблона должны быть struct Type и struct Dir или их синонимы
*
* Возможные значения первого параметра шаблона (синонимы):
*
* EcatCommand< AP, ... >
* EcatCommand< B, ... >
* EcatCommand< FP, ... >
* EcatCommand< L, ... >
*
* Возможные значения второго параметра шаблона (синонимы):
*
* EcatCommand< ... ,RD >
* EcatCommand< ... ,WR >
* EcatCommand< ... ,RW >
* EcatCommand< ... ,RMW >
* EcatCommand< ... ,NO >
*
* Так же можно использовать готовые синонимы EcatCommand<>:
*
* APRD, APWR, APRW, ARMW
* BRD, BWR, BRW, NOP
* FPRD, FPWR, FPRW, FRMW
* LRD, LWR, LRW, NOP
*
*/
template<typename TypeT, typename DirT> template<typename TypeT, typename DirT>
class EcatCommand : public EcatCommandBase { class EcatCommand : public EcatCommandBase {
static_assert(std::is_base_of<TypeBase, TypeT>::value == true, "TypeT should be derived from command::TypeBase"); static_assert(std::is_base_of<TypeBase, TypeT>::value == true, "TypeT should be derived from command::TypeBase");

View File

@ -110,6 +110,29 @@ private:
}; };
/*
* EtherCAT Datagram
*
* Первый параметр шаблона должен быть class EcatCommand
*
* Возможные значения первого параметра шаблона:
*
* EcatDatagram< BWR, DataType >
* или
* EcatDatagram< EcatCommand< B, WR >, DataType >
*
* EcatDatagram< LWR, DataType >
* или
* EcatDatagram< EcatCommand< L, WR >, DataType >
*
* Пример:
*
* datagram::EcatDatagram<command::BWR, DataType > a{ {{broadcast, address}}, expected_wkc, data };
* datagram::EcatDatagram<command::LWR, DataType > b{ {{logic, address}}, expected_wkc, data };
*
* auto queue = a + b;
*
*/
template<typename CommandT, typename... DataTypes> template<typename CommandT, typename... DataTypes>
class EcatDatagram : public IEcatDatagram { class EcatDatagram : public IEcatDatagram {
static_assert(std::is_base_of<command::EcatCommandBase, CommandT>::value == true, "CommandT should be derived from ECatCommandBase"); static_assert(std::is_base_of<command::EcatCommandBase, CommandT>::value == true, "CommandT should be derived from ECatCommandBase");