No version for distro humble showing github. Known supported distros are highlighted in the buttons above.
Package symbol

cyberdog_embed_protocol package from bridges repo

cyberdog_grpc cyberdog_embed_protocol params protocol

ROS Distro
github

Package Summary

Tags No category tags.
Version 1.0.0
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description "ros消息服务定义文件 与app端通讯程序 can数据收发封装库"
Checkout URI https://github.com/miroboticslab/bridges.git
VCS Type git
VCS Version rolling
Last Updated 2024-01-17
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Easier to use peripherals with toml description file

Additional Links

No additional links.

Maintainers

  • ZhengJunyuan

Authors

No additional authors.

EMBED_PROTOCOL

English Version

embed_protocol是一个通用的外设抽象类,可动态灵活的配置基于某种通信协议外设的数据解析方式,且所有通信协议都被抽象为一种描述文件,该文件通过外部加载的形式载入,可在不重新编译软件源代码的情况下进行更改,为防止改动出现错误,每一个描述文件都在初始编译态预置在了程序内部,当外部文件缺失或出现错误的情况下可自动载入内部预置文件(TBD)

实例通过载入不同描述文件以兼容不同的通信传输协议以及格式,简化了使用外设设备的方法,现在只需要关心消息的使用与指令数据的下发,从复杂的消息编码、解码、发送和接收中解放了出来,不同的通信传输协议也有了统一的通用接口


1.结构简介

整个功能包使用命名空间embed_protocol

功能目录结构如下:

include
├── embed_protocol
│   ├── can_protocol.hpp
│   ├── embed_protocol.hpp
│   ├── common.hpp
│   └── protocol_base.hpp
└── embed_parser
    └── can_parser.hpp

  • embed_protocol : 通用设备,用于存放主体代码
    • common.hpp : 通用及工具代码
    • embed_protocol.hpp : 对外统一接口
    • protocol_base.hpp : 不同协议的基类接口
    • [实现] can_protocol.hpp : CAN协议传输的功能实现,从protocol_base派生
  • embed_parser : 通用解析器,用于存放协议解析代码
    • [实现] can_parser.hpp : CAN协议传输的解析实现

描述文件存放目录见 : cyberdog_bridges/README.md规定

Class Protocol

该类用于对外的主要接口:

#define XNAME(x) (#x)
#define LINK_VAR(var) LinkVar( \
    XNAME(var), \
    cyberdog::embed::ProtocolData(sizeof((var)), static_cast<void *>(&(var))))

namespace embed
{
template<typename TDataClass>
class Protocol
{
public:
  explicit Protocol(const std::string & protocol_toml_path);

  std::shared_ptr<TDataClass> GetData();

  // please use "#define LINK_VAR(var)" instead
  void LinkVar(const std::string origin_name, const ProtocolData & var);

  bool Operate(const std::string & CMD, const std::vector<uint8_t> & data = std::vector<uint8_t>());

  bool SendSelfData();

  void SetDataCallback(std::function<void(std::shared_ptr<TDataClass>)> callback);

  StateCollector & GetErrorCollector();
};  // class Protocol
}  // namespace embed

构造函数,通过外部描述文件创建实例对象

explicit Protocol(const std::string & protocol_toml_path, bool for_send = false);

  • protocol_toml_path : 描述文件地址
  • for_send : 通过toml描述文件发送,或通过toml描述文件接收(默认为接收)

获取自定TDataClass类型数据 : 返回指向内部数据的shared_ptr

std::shared_ptr<TDataClass> GetData();

Note : 一般用于LINK_DATAfor_send设备的数据装填,接收请使用回调函数方式

链接TDataClass数据,以便通过各种传输协议解析出变量到TDataClass中

void LinkVar(const std::string origin_name, const ProtocolData & var);

Note : 一般使用宏LINK_VAR(var)代替,详细用法见下方example

设备操作函数,下发指令及数据 : 返回是否完整发送成功

bool Operate(const std::string & CMD, const std::vector<uint8_t> & data = std::vector<uint8_t>());

  • CMD : 指令字符串(描述文件中规定)
  • data : 指令所携带数据

GetData()修改的内部数据通过解析协议发送出去 : 返回是否完整发送成功

bool SendSelfData();

Note : 如设备不为发送模式(即for_send=false),设备同样可以进行发送,但不建议在非测试时使用

设置接收回调函数

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cyberdog_embed_protocol at Robotics Stack Exchange

No version for distro jazzy showing github. Known supported distros are highlighted in the buttons above.
Package symbol

cyberdog_embed_protocol package from bridges repo

cyberdog_grpc cyberdog_embed_protocol params protocol

ROS Distro
github

Package Summary

Tags No category tags.
Version 1.0.0
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description "ros消息服务定义文件 与app端通讯程序 can数据收发封装库"
Checkout URI https://github.com/miroboticslab/bridges.git
VCS Type git
VCS Version rolling
Last Updated 2024-01-17
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Easier to use peripherals with toml description file

Additional Links

No additional links.

Maintainers

  • ZhengJunyuan

Authors

No additional authors.

EMBED_PROTOCOL

English Version

embed_protocol是一个通用的外设抽象类,可动态灵活的配置基于某种通信协议外设的数据解析方式,且所有通信协议都被抽象为一种描述文件,该文件通过外部加载的形式载入,可在不重新编译软件源代码的情况下进行更改,为防止改动出现错误,每一个描述文件都在初始编译态预置在了程序内部,当外部文件缺失或出现错误的情况下可自动载入内部预置文件(TBD)

实例通过载入不同描述文件以兼容不同的通信传输协议以及格式,简化了使用外设设备的方法,现在只需要关心消息的使用与指令数据的下发,从复杂的消息编码、解码、发送和接收中解放了出来,不同的通信传输协议也有了统一的通用接口


1.结构简介

整个功能包使用命名空间embed_protocol

功能目录结构如下:

include
├── embed_protocol
│   ├── can_protocol.hpp
│   ├── embed_protocol.hpp
│   ├── common.hpp
│   └── protocol_base.hpp
└── embed_parser
    └── can_parser.hpp

  • embed_protocol : 通用设备,用于存放主体代码
    • common.hpp : 通用及工具代码
    • embed_protocol.hpp : 对外统一接口
    • protocol_base.hpp : 不同协议的基类接口
    • [实现] can_protocol.hpp : CAN协议传输的功能实现,从protocol_base派生
  • embed_parser : 通用解析器,用于存放协议解析代码
    • [实现] can_parser.hpp : CAN协议传输的解析实现

描述文件存放目录见 : cyberdog_bridges/README.md规定

Class Protocol

该类用于对外的主要接口:

#define XNAME(x) (#x)
#define LINK_VAR(var) LinkVar( \
    XNAME(var), \
    cyberdog::embed::ProtocolData(sizeof((var)), static_cast<void *>(&(var))))

namespace embed
{
template<typename TDataClass>
class Protocol
{
public:
  explicit Protocol(const std::string & protocol_toml_path);

  std::shared_ptr<TDataClass> GetData();

  // please use "#define LINK_VAR(var)" instead
  void LinkVar(const std::string origin_name, const ProtocolData & var);

  bool Operate(const std::string & CMD, const std::vector<uint8_t> & data = std::vector<uint8_t>());

  bool SendSelfData();

  void SetDataCallback(std::function<void(std::shared_ptr<TDataClass>)> callback);

  StateCollector & GetErrorCollector();
};  // class Protocol
}  // namespace embed

构造函数,通过外部描述文件创建实例对象

explicit Protocol(const std::string & protocol_toml_path, bool for_send = false);

  • protocol_toml_path : 描述文件地址
  • for_send : 通过toml描述文件发送,或通过toml描述文件接收(默认为接收)

获取自定TDataClass类型数据 : 返回指向内部数据的shared_ptr

std::shared_ptr<TDataClass> GetData();

Note : 一般用于LINK_DATAfor_send设备的数据装填,接收请使用回调函数方式

链接TDataClass数据,以便通过各种传输协议解析出变量到TDataClass中

void LinkVar(const std::string origin_name, const ProtocolData & var);

Note : 一般使用宏LINK_VAR(var)代替,详细用法见下方example

设备操作函数,下发指令及数据 : 返回是否完整发送成功

bool Operate(const std::string & CMD, const std::vector<uint8_t> & data = std::vector<uint8_t>());

  • CMD : 指令字符串(描述文件中规定)
  • data : 指令所携带数据

GetData()修改的内部数据通过解析协议发送出去 : 返回是否完整发送成功

bool SendSelfData();

Note : 如设备不为发送模式(即for_send=false),设备同样可以进行发送,但不建议在非测试时使用

设置接收回调函数

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cyberdog_embed_protocol at Robotics Stack Exchange

No version for distro kilted showing github. Known supported distros are highlighted in the buttons above.
Package symbol

cyberdog_embed_protocol package from bridges repo

cyberdog_grpc cyberdog_embed_protocol params protocol

ROS Distro
github

Package Summary

Tags No category tags.
Version 1.0.0
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description "ros消息服务定义文件 与app端通讯程序 can数据收发封装库"
Checkout URI https://github.com/miroboticslab/bridges.git
VCS Type git
VCS Version rolling
Last Updated 2024-01-17
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Easier to use peripherals with toml description file

Additional Links

No additional links.

Maintainers

  • ZhengJunyuan

Authors

No additional authors.

EMBED_PROTOCOL

English Version

embed_protocol是一个通用的外设抽象类,可动态灵活的配置基于某种通信协议外设的数据解析方式,且所有通信协议都被抽象为一种描述文件,该文件通过外部加载的形式载入,可在不重新编译软件源代码的情况下进行更改,为防止改动出现错误,每一个描述文件都在初始编译态预置在了程序内部,当外部文件缺失或出现错误的情况下可自动载入内部预置文件(TBD)

实例通过载入不同描述文件以兼容不同的通信传输协议以及格式,简化了使用外设设备的方法,现在只需要关心消息的使用与指令数据的下发,从复杂的消息编码、解码、发送和接收中解放了出来,不同的通信传输协议也有了统一的通用接口


1.结构简介

整个功能包使用命名空间embed_protocol

功能目录结构如下:

include
├── embed_protocol
│   ├── can_protocol.hpp
│   ├── embed_protocol.hpp
│   ├── common.hpp
│   └── protocol_base.hpp
└── embed_parser
    └── can_parser.hpp

  • embed_protocol : 通用设备,用于存放主体代码
    • common.hpp : 通用及工具代码
    • embed_protocol.hpp : 对外统一接口
    • protocol_base.hpp : 不同协议的基类接口
    • [实现] can_protocol.hpp : CAN协议传输的功能实现,从protocol_base派生
  • embed_parser : 通用解析器,用于存放协议解析代码
    • [实现] can_parser.hpp : CAN协议传输的解析实现

描述文件存放目录见 : cyberdog_bridges/README.md规定

Class Protocol

该类用于对外的主要接口:

#define XNAME(x) (#x)
#define LINK_VAR(var) LinkVar( \
    XNAME(var), \
    cyberdog::embed::ProtocolData(sizeof((var)), static_cast<void *>(&(var))))

namespace embed
{
template<typename TDataClass>
class Protocol
{
public:
  explicit Protocol(const std::string & protocol_toml_path);

  std::shared_ptr<TDataClass> GetData();

  // please use "#define LINK_VAR(var)" instead
  void LinkVar(const std::string origin_name, const ProtocolData & var);

  bool Operate(const std::string & CMD, const std::vector<uint8_t> & data = std::vector<uint8_t>());

  bool SendSelfData();

  void SetDataCallback(std::function<void(std::shared_ptr<TDataClass>)> callback);

  StateCollector & GetErrorCollector();
};  // class Protocol
}  // namespace embed

构造函数,通过外部描述文件创建实例对象

explicit Protocol(const std::string & protocol_toml_path, bool for_send = false);

  • protocol_toml_path : 描述文件地址
  • for_send : 通过toml描述文件发送,或通过toml描述文件接收(默认为接收)

获取自定TDataClass类型数据 : 返回指向内部数据的shared_ptr

std::shared_ptr<TDataClass> GetData();

Note : 一般用于LINK_DATAfor_send设备的数据装填,接收请使用回调函数方式

链接TDataClass数据,以便通过各种传输协议解析出变量到TDataClass中

void LinkVar(const std::string origin_name, const ProtocolData & var);

Note : 一般使用宏LINK_VAR(var)代替,详细用法见下方example

设备操作函数,下发指令及数据 : 返回是否完整发送成功

bool Operate(const std::string & CMD, const std::vector<uint8_t> & data = std::vector<uint8_t>());

  • CMD : 指令字符串(描述文件中规定)
  • data : 指令所携带数据

GetData()修改的内部数据通过解析协议发送出去 : 返回是否完整发送成功

bool SendSelfData();

Note : 如设备不为发送模式(即for_send=false),设备同样可以进行发送,但不建议在非测试时使用

设置接收回调函数

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cyberdog_embed_protocol at Robotics Stack Exchange

No version for distro rolling showing github. Known supported distros are highlighted in the buttons above.
Package symbol

cyberdog_embed_protocol package from bridges repo

cyberdog_grpc cyberdog_embed_protocol params protocol

ROS Distro
github

Package Summary

Tags No category tags.
Version 1.0.0
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description "ros消息服务定义文件 与app端通讯程序 can数据收发封装库"
Checkout URI https://github.com/miroboticslab/bridges.git
VCS Type git
VCS Version rolling
Last Updated 2024-01-17
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Easier to use peripherals with toml description file

Additional Links

No additional links.

Maintainers

  • ZhengJunyuan

Authors

No additional authors.

EMBED_PROTOCOL

English Version

embed_protocol是一个通用的外设抽象类,可动态灵活的配置基于某种通信协议外设的数据解析方式,且所有通信协议都被抽象为一种描述文件,该文件通过外部加载的形式载入,可在不重新编译软件源代码的情况下进行更改,为防止改动出现错误,每一个描述文件都在初始编译态预置在了程序内部,当外部文件缺失或出现错误的情况下可自动载入内部预置文件(TBD)

实例通过载入不同描述文件以兼容不同的通信传输协议以及格式,简化了使用外设设备的方法,现在只需要关心消息的使用与指令数据的下发,从复杂的消息编码、解码、发送和接收中解放了出来,不同的通信传输协议也有了统一的通用接口


1.结构简介

整个功能包使用命名空间embed_protocol

功能目录结构如下:

include
├── embed_protocol
│   ├── can_protocol.hpp
│   ├── embed_protocol.hpp
│   ├── common.hpp
│   └── protocol_base.hpp
└── embed_parser
    └── can_parser.hpp

  • embed_protocol : 通用设备,用于存放主体代码
    • common.hpp : 通用及工具代码
    • embed_protocol.hpp : 对外统一接口
    • protocol_base.hpp : 不同协议的基类接口
    • [实现] can_protocol.hpp : CAN协议传输的功能实现,从protocol_base派生
  • embed_parser : 通用解析器,用于存放协议解析代码
    • [实现] can_parser.hpp : CAN协议传输的解析实现

描述文件存放目录见 : cyberdog_bridges/README.md规定

Class Protocol

该类用于对外的主要接口:

#define XNAME(x) (#x)
#define LINK_VAR(var) LinkVar( \
    XNAME(var), \
    cyberdog::embed::ProtocolData(sizeof((var)), static_cast<void *>(&(var))))

namespace embed
{
template<typename TDataClass>
class Protocol
{
public:
  explicit Protocol(const std::string & protocol_toml_path);

  std::shared_ptr<TDataClass> GetData();

  // please use "#define LINK_VAR(var)" instead
  void LinkVar(const std::string origin_name, const ProtocolData & var);

  bool Operate(const std::string & CMD, const std::vector<uint8_t> & data = std::vector<uint8_t>());

  bool SendSelfData();

  void SetDataCallback(std::function<void(std::shared_ptr<TDataClass>)> callback);

  StateCollector & GetErrorCollector();
};  // class Protocol
}  // namespace embed

构造函数,通过外部描述文件创建实例对象

explicit Protocol(const std::string & protocol_toml_path, bool for_send = false);

  • protocol_toml_path : 描述文件地址
  • for_send : 通过toml描述文件发送,或通过toml描述文件接收(默认为接收)

获取自定TDataClass类型数据 : 返回指向内部数据的shared_ptr

std::shared_ptr<TDataClass> GetData();

Note : 一般用于LINK_DATAfor_send设备的数据装填,接收请使用回调函数方式

链接TDataClass数据,以便通过各种传输协议解析出变量到TDataClass中

void LinkVar(const std::string origin_name, const ProtocolData & var);

Note : 一般使用宏LINK_VAR(var)代替,详细用法见下方example

设备操作函数,下发指令及数据 : 返回是否完整发送成功

bool Operate(const std::string & CMD, const std::vector<uint8_t> & data = std::vector<uint8_t>());

  • CMD : 指令字符串(描述文件中规定)
  • data : 指令所携带数据

GetData()修改的内部数据通过解析协议发送出去 : 返回是否完整发送成功

bool SendSelfData();

Note : 如设备不为发送模式(即for_send=false),设备同样可以进行发送,但不建议在非测试时使用

设置接收回调函数

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cyberdog_embed_protocol at Robotics Stack Exchange

Package symbol

cyberdog_embed_protocol package from bridges repo

cyberdog_grpc cyberdog_embed_protocol params protocol

ROS Distro
github

Package Summary

Tags No category tags.
Version 1.0.0
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description "ros消息服务定义文件 与app端通讯程序 can数据收发封装库"
Checkout URI https://github.com/miroboticslab/bridges.git
VCS Type git
VCS Version rolling
Last Updated 2024-01-17
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Easier to use peripherals with toml description file

Additional Links

No additional links.

Maintainers

  • ZhengJunyuan

Authors

No additional authors.

EMBED_PROTOCOL

English Version

embed_protocol是一个通用的外设抽象类,可动态灵活的配置基于某种通信协议外设的数据解析方式,且所有通信协议都被抽象为一种描述文件,该文件通过外部加载的形式载入,可在不重新编译软件源代码的情况下进行更改,为防止改动出现错误,每一个描述文件都在初始编译态预置在了程序内部,当外部文件缺失或出现错误的情况下可自动载入内部预置文件(TBD)

实例通过载入不同描述文件以兼容不同的通信传输协议以及格式,简化了使用外设设备的方法,现在只需要关心消息的使用与指令数据的下发,从复杂的消息编码、解码、发送和接收中解放了出来,不同的通信传输协议也有了统一的通用接口


1.结构简介

整个功能包使用命名空间embed_protocol

功能目录结构如下:

include
├── embed_protocol
│   ├── can_protocol.hpp
│   ├── embed_protocol.hpp
│   ├── common.hpp
│   └── protocol_base.hpp
└── embed_parser
    └── can_parser.hpp

  • embed_protocol : 通用设备,用于存放主体代码
    • common.hpp : 通用及工具代码
    • embed_protocol.hpp : 对外统一接口
    • protocol_base.hpp : 不同协议的基类接口
    • [实现] can_protocol.hpp : CAN协议传输的功能实现,从protocol_base派生
  • embed_parser : 通用解析器,用于存放协议解析代码
    • [实现] can_parser.hpp : CAN协议传输的解析实现

描述文件存放目录见 : cyberdog_bridges/README.md规定

Class Protocol

该类用于对外的主要接口:

#define XNAME(x) (#x)
#define LINK_VAR(var) LinkVar( \
    XNAME(var), \
    cyberdog::embed::ProtocolData(sizeof((var)), static_cast<void *>(&(var))))

namespace embed
{
template<typename TDataClass>
class Protocol
{
public:
  explicit Protocol(const std::string & protocol_toml_path);

  std::shared_ptr<TDataClass> GetData();

  // please use "#define LINK_VAR(var)" instead
  void LinkVar(const std::string origin_name, const ProtocolData & var);

  bool Operate(const std::string & CMD, const std::vector<uint8_t> & data = std::vector<uint8_t>());

  bool SendSelfData();

  void SetDataCallback(std::function<void(std::shared_ptr<TDataClass>)> callback);

  StateCollector & GetErrorCollector();
};  // class Protocol
}  // namespace embed

构造函数,通过外部描述文件创建实例对象

explicit Protocol(const std::string & protocol_toml_path, bool for_send = false);

  • protocol_toml_path : 描述文件地址
  • for_send : 通过toml描述文件发送,或通过toml描述文件接收(默认为接收)

获取自定TDataClass类型数据 : 返回指向内部数据的shared_ptr

std::shared_ptr<TDataClass> GetData();

Note : 一般用于LINK_DATAfor_send设备的数据装填,接收请使用回调函数方式

链接TDataClass数据,以便通过各种传输协议解析出变量到TDataClass中

void LinkVar(const std::string origin_name, const ProtocolData & var);

Note : 一般使用宏LINK_VAR(var)代替,详细用法见下方example

设备操作函数,下发指令及数据 : 返回是否完整发送成功

bool Operate(const std::string & CMD, const std::vector<uint8_t> & data = std::vector<uint8_t>());

  • CMD : 指令字符串(描述文件中规定)
  • data : 指令所携带数据

GetData()修改的内部数据通过解析协议发送出去 : 返回是否完整发送成功

bool SendSelfData();

Note : 如设备不为发送模式(即for_send=false),设备同样可以进行发送,但不建议在非测试时使用

设置接收回调函数

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cyberdog_embed_protocol at Robotics Stack Exchange

No version for distro galactic showing github. Known supported distros are highlighted in the buttons above.
Package symbol

cyberdog_embed_protocol package from bridges repo

cyberdog_grpc cyberdog_embed_protocol params protocol

ROS Distro
github

Package Summary

Tags No category tags.
Version 1.0.0
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description "ros消息服务定义文件 与app端通讯程序 can数据收发封装库"
Checkout URI https://github.com/miroboticslab/bridges.git
VCS Type git
VCS Version rolling
Last Updated 2024-01-17
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Easier to use peripherals with toml description file

Additional Links

No additional links.

Maintainers

  • ZhengJunyuan

Authors

No additional authors.

EMBED_PROTOCOL

English Version

embed_protocol是一个通用的外设抽象类,可动态灵活的配置基于某种通信协议外设的数据解析方式,且所有通信协议都被抽象为一种描述文件,该文件通过外部加载的形式载入,可在不重新编译软件源代码的情况下进行更改,为防止改动出现错误,每一个描述文件都在初始编译态预置在了程序内部,当外部文件缺失或出现错误的情况下可自动载入内部预置文件(TBD)

实例通过载入不同描述文件以兼容不同的通信传输协议以及格式,简化了使用外设设备的方法,现在只需要关心消息的使用与指令数据的下发,从复杂的消息编码、解码、发送和接收中解放了出来,不同的通信传输协议也有了统一的通用接口


1.结构简介

整个功能包使用命名空间embed_protocol

功能目录结构如下:

include
├── embed_protocol
│   ├── can_protocol.hpp
│   ├── embed_protocol.hpp
│   ├── common.hpp
│   └── protocol_base.hpp
└── embed_parser
    └── can_parser.hpp

  • embed_protocol : 通用设备,用于存放主体代码
    • common.hpp : 通用及工具代码
    • embed_protocol.hpp : 对外统一接口
    • protocol_base.hpp : 不同协议的基类接口
    • [实现] can_protocol.hpp : CAN协议传输的功能实现,从protocol_base派生
  • embed_parser : 通用解析器,用于存放协议解析代码
    • [实现] can_parser.hpp : CAN协议传输的解析实现

描述文件存放目录见 : cyberdog_bridges/README.md规定

Class Protocol

该类用于对外的主要接口:

#define XNAME(x) (#x)
#define LINK_VAR(var) LinkVar( \
    XNAME(var), \
    cyberdog::embed::ProtocolData(sizeof((var)), static_cast<void *>(&(var))))

namespace embed
{
template<typename TDataClass>
class Protocol
{
public:
  explicit Protocol(const std::string & protocol_toml_path);

  std::shared_ptr<TDataClass> GetData();

  // please use "#define LINK_VAR(var)" instead
  void LinkVar(const std::string origin_name, const ProtocolData & var);

  bool Operate(const std::string & CMD, const std::vector<uint8_t> & data = std::vector<uint8_t>());

  bool SendSelfData();

  void SetDataCallback(std::function<void(std::shared_ptr<TDataClass>)> callback);

  StateCollector & GetErrorCollector();
};  // class Protocol
}  // namespace embed

构造函数,通过外部描述文件创建实例对象

explicit Protocol(const std::string & protocol_toml_path, bool for_send = false);

  • protocol_toml_path : 描述文件地址
  • for_send : 通过toml描述文件发送,或通过toml描述文件接收(默认为接收)

获取自定TDataClass类型数据 : 返回指向内部数据的shared_ptr

std::shared_ptr<TDataClass> GetData();

Note : 一般用于LINK_DATAfor_send设备的数据装填,接收请使用回调函数方式

链接TDataClass数据,以便通过各种传输协议解析出变量到TDataClass中

void LinkVar(const std::string origin_name, const ProtocolData & var);

Note : 一般使用宏LINK_VAR(var)代替,详细用法见下方example

设备操作函数,下发指令及数据 : 返回是否完整发送成功

bool Operate(const std::string & CMD, const std::vector<uint8_t> & data = std::vector<uint8_t>());

  • CMD : 指令字符串(描述文件中规定)
  • data : 指令所携带数据

GetData()修改的内部数据通过解析协议发送出去 : 返回是否完整发送成功

bool SendSelfData();

Note : 如设备不为发送模式(即for_send=false),设备同样可以进行发送,但不建议在非测试时使用

设置接收回调函数

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cyberdog_embed_protocol at Robotics Stack Exchange

No version for distro iron showing github. Known supported distros are highlighted in the buttons above.
Package symbol

cyberdog_embed_protocol package from bridges repo

cyberdog_grpc cyberdog_embed_protocol params protocol

ROS Distro
github

Package Summary

Tags No category tags.
Version 1.0.0
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description "ros消息服务定义文件 与app端通讯程序 can数据收发封装库"
Checkout URI https://github.com/miroboticslab/bridges.git
VCS Type git
VCS Version rolling
Last Updated 2024-01-17
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Easier to use peripherals with toml description file

Additional Links

No additional links.

Maintainers

  • ZhengJunyuan

Authors

No additional authors.

EMBED_PROTOCOL

English Version

embed_protocol是一个通用的外设抽象类,可动态灵活的配置基于某种通信协议外设的数据解析方式,且所有通信协议都被抽象为一种描述文件,该文件通过外部加载的形式载入,可在不重新编译软件源代码的情况下进行更改,为防止改动出现错误,每一个描述文件都在初始编译态预置在了程序内部,当外部文件缺失或出现错误的情况下可自动载入内部预置文件(TBD)

实例通过载入不同描述文件以兼容不同的通信传输协议以及格式,简化了使用外设设备的方法,现在只需要关心消息的使用与指令数据的下发,从复杂的消息编码、解码、发送和接收中解放了出来,不同的通信传输协议也有了统一的通用接口


1.结构简介

整个功能包使用命名空间embed_protocol

功能目录结构如下:

include
├── embed_protocol
│   ├── can_protocol.hpp
│   ├── embed_protocol.hpp
│   ├── common.hpp
│   └── protocol_base.hpp
└── embed_parser
    └── can_parser.hpp

  • embed_protocol : 通用设备,用于存放主体代码
    • common.hpp : 通用及工具代码
    • embed_protocol.hpp : 对外统一接口
    • protocol_base.hpp : 不同协议的基类接口
    • [实现] can_protocol.hpp : CAN协议传输的功能实现,从protocol_base派生
  • embed_parser : 通用解析器,用于存放协议解析代码
    • [实现] can_parser.hpp : CAN协议传输的解析实现

描述文件存放目录见 : cyberdog_bridges/README.md规定

Class Protocol

该类用于对外的主要接口:

#define XNAME(x) (#x)
#define LINK_VAR(var) LinkVar( \
    XNAME(var), \
    cyberdog::embed::ProtocolData(sizeof((var)), static_cast<void *>(&(var))))

namespace embed
{
template<typename TDataClass>
class Protocol
{
public:
  explicit Protocol(const std::string & protocol_toml_path);

  std::shared_ptr<TDataClass> GetData();

  // please use "#define LINK_VAR(var)" instead
  void LinkVar(const std::string origin_name, const ProtocolData & var);

  bool Operate(const std::string & CMD, const std::vector<uint8_t> & data = std::vector<uint8_t>());

  bool SendSelfData();

  void SetDataCallback(std::function<void(std::shared_ptr<TDataClass>)> callback);

  StateCollector & GetErrorCollector();
};  // class Protocol
}  // namespace embed

构造函数,通过外部描述文件创建实例对象

explicit Protocol(const std::string & protocol_toml_path, bool for_send = false);

  • protocol_toml_path : 描述文件地址
  • for_send : 通过toml描述文件发送,或通过toml描述文件接收(默认为接收)

获取自定TDataClass类型数据 : 返回指向内部数据的shared_ptr

std::shared_ptr<TDataClass> GetData();

Note : 一般用于LINK_DATAfor_send设备的数据装填,接收请使用回调函数方式

链接TDataClass数据,以便通过各种传输协议解析出变量到TDataClass中

void LinkVar(const std::string origin_name, const ProtocolData & var);

Note : 一般使用宏LINK_VAR(var)代替,详细用法见下方example

设备操作函数,下发指令及数据 : 返回是否完整发送成功

bool Operate(const std::string & CMD, const std::vector<uint8_t> & data = std::vector<uint8_t>());

  • CMD : 指令字符串(描述文件中规定)
  • data : 指令所携带数据

GetData()修改的内部数据通过解析协议发送出去 : 返回是否完整发送成功

bool SendSelfData();

Note : 如设备不为发送模式(即for_send=false),设备同样可以进行发送,但不建议在非测试时使用

设置接收回调函数

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cyberdog_embed_protocol at Robotics Stack Exchange

No version for distro melodic showing github. Known supported distros are highlighted in the buttons above.
Package symbol

cyberdog_embed_protocol package from bridges repo

cyberdog_grpc cyberdog_embed_protocol params protocol

ROS Distro
github

Package Summary

Tags No category tags.
Version 1.0.0
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description "ros消息服务定义文件 与app端通讯程序 can数据收发封装库"
Checkout URI https://github.com/miroboticslab/bridges.git
VCS Type git
VCS Version rolling
Last Updated 2024-01-17
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Easier to use peripherals with toml description file

Additional Links

No additional links.

Maintainers

  • ZhengJunyuan

Authors

No additional authors.

EMBED_PROTOCOL

English Version

embed_protocol是一个通用的外设抽象类,可动态灵活的配置基于某种通信协议外设的数据解析方式,且所有通信协议都被抽象为一种描述文件,该文件通过外部加载的形式载入,可在不重新编译软件源代码的情况下进行更改,为防止改动出现错误,每一个描述文件都在初始编译态预置在了程序内部,当外部文件缺失或出现错误的情况下可自动载入内部预置文件(TBD)

实例通过载入不同描述文件以兼容不同的通信传输协议以及格式,简化了使用外设设备的方法,现在只需要关心消息的使用与指令数据的下发,从复杂的消息编码、解码、发送和接收中解放了出来,不同的通信传输协议也有了统一的通用接口


1.结构简介

整个功能包使用命名空间embed_protocol

功能目录结构如下:

include
├── embed_protocol
│   ├── can_protocol.hpp
│   ├── embed_protocol.hpp
│   ├── common.hpp
│   └── protocol_base.hpp
└── embed_parser
    └── can_parser.hpp

  • embed_protocol : 通用设备,用于存放主体代码
    • common.hpp : 通用及工具代码
    • embed_protocol.hpp : 对外统一接口
    • protocol_base.hpp : 不同协议的基类接口
    • [实现] can_protocol.hpp : CAN协议传输的功能实现,从protocol_base派生
  • embed_parser : 通用解析器,用于存放协议解析代码
    • [实现] can_parser.hpp : CAN协议传输的解析实现

描述文件存放目录见 : cyberdog_bridges/README.md规定

Class Protocol

该类用于对外的主要接口:

#define XNAME(x) (#x)
#define LINK_VAR(var) LinkVar( \
    XNAME(var), \
    cyberdog::embed::ProtocolData(sizeof((var)), static_cast<void *>(&(var))))

namespace embed
{
template<typename TDataClass>
class Protocol
{
public:
  explicit Protocol(const std::string & protocol_toml_path);

  std::shared_ptr<TDataClass> GetData();

  // please use "#define LINK_VAR(var)" instead
  void LinkVar(const std::string origin_name, const ProtocolData & var);

  bool Operate(const std::string & CMD, const std::vector<uint8_t> & data = std::vector<uint8_t>());

  bool SendSelfData();

  void SetDataCallback(std::function<void(std::shared_ptr<TDataClass>)> callback);

  StateCollector & GetErrorCollector();
};  // class Protocol
}  // namespace embed

构造函数,通过外部描述文件创建实例对象

explicit Protocol(const std::string & protocol_toml_path, bool for_send = false);

  • protocol_toml_path : 描述文件地址
  • for_send : 通过toml描述文件发送,或通过toml描述文件接收(默认为接收)

获取自定TDataClass类型数据 : 返回指向内部数据的shared_ptr

std::shared_ptr<TDataClass> GetData();

Note : 一般用于LINK_DATAfor_send设备的数据装填,接收请使用回调函数方式

链接TDataClass数据,以便通过各种传输协议解析出变量到TDataClass中

void LinkVar(const std::string origin_name, const ProtocolData & var);

Note : 一般使用宏LINK_VAR(var)代替,详细用法见下方example

设备操作函数,下发指令及数据 : 返回是否完整发送成功

bool Operate(const std::string & CMD, const std::vector<uint8_t> & data = std::vector<uint8_t>());

  • CMD : 指令字符串(描述文件中规定)
  • data : 指令所携带数据

GetData()修改的内部数据通过解析协议发送出去 : 返回是否完整发送成功

bool SendSelfData();

Note : 如设备不为发送模式(即for_send=false),设备同样可以进行发送,但不建议在非测试时使用

设置接收回调函数

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cyberdog_embed_protocol at Robotics Stack Exchange

No version for distro noetic showing github. Known supported distros are highlighted in the buttons above.
Package symbol

cyberdog_embed_protocol package from bridges repo

cyberdog_grpc cyberdog_embed_protocol params protocol

ROS Distro
github

Package Summary

Tags No category tags.
Version 1.0.0
License Apache License, Version 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Description "ros消息服务定义文件 与app端通讯程序 can数据收发封装库"
Checkout URI https://github.com/miroboticslab/bridges.git
VCS Type git
VCS Version rolling
Last Updated 2024-01-17
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Easier to use peripherals with toml description file

Additional Links

No additional links.

Maintainers

  • ZhengJunyuan

Authors

No additional authors.

EMBED_PROTOCOL

English Version

embed_protocol是一个通用的外设抽象类,可动态灵活的配置基于某种通信协议外设的数据解析方式,且所有通信协议都被抽象为一种描述文件,该文件通过外部加载的形式载入,可在不重新编译软件源代码的情况下进行更改,为防止改动出现错误,每一个描述文件都在初始编译态预置在了程序内部,当外部文件缺失或出现错误的情况下可自动载入内部预置文件(TBD)

实例通过载入不同描述文件以兼容不同的通信传输协议以及格式,简化了使用外设设备的方法,现在只需要关心消息的使用与指令数据的下发,从复杂的消息编码、解码、发送和接收中解放了出来,不同的通信传输协议也有了统一的通用接口


1.结构简介

整个功能包使用命名空间embed_protocol

功能目录结构如下:

include
├── embed_protocol
│   ├── can_protocol.hpp
│   ├── embed_protocol.hpp
│   ├── common.hpp
│   └── protocol_base.hpp
└── embed_parser
    └── can_parser.hpp

  • embed_protocol : 通用设备,用于存放主体代码
    • common.hpp : 通用及工具代码
    • embed_protocol.hpp : 对外统一接口
    • protocol_base.hpp : 不同协议的基类接口
    • [实现] can_protocol.hpp : CAN协议传输的功能实现,从protocol_base派生
  • embed_parser : 通用解析器,用于存放协议解析代码
    • [实现] can_parser.hpp : CAN协议传输的解析实现

描述文件存放目录见 : cyberdog_bridges/README.md规定

Class Protocol

该类用于对外的主要接口:

#define XNAME(x) (#x)
#define LINK_VAR(var) LinkVar( \
    XNAME(var), \
    cyberdog::embed::ProtocolData(sizeof((var)), static_cast<void *>(&(var))))

namespace embed
{
template<typename TDataClass>
class Protocol
{
public:
  explicit Protocol(const std::string & protocol_toml_path);

  std::shared_ptr<TDataClass> GetData();

  // please use "#define LINK_VAR(var)" instead
  void LinkVar(const std::string origin_name, const ProtocolData & var);

  bool Operate(const std::string & CMD, const std::vector<uint8_t> & data = std::vector<uint8_t>());

  bool SendSelfData();

  void SetDataCallback(std::function<void(std::shared_ptr<TDataClass>)> callback);

  StateCollector & GetErrorCollector();
};  // class Protocol
}  // namespace embed

构造函数,通过外部描述文件创建实例对象

explicit Protocol(const std::string & protocol_toml_path, bool for_send = false);

  • protocol_toml_path : 描述文件地址
  • for_send : 通过toml描述文件发送,或通过toml描述文件接收(默认为接收)

获取自定TDataClass类型数据 : 返回指向内部数据的shared_ptr

std::shared_ptr<TDataClass> GetData();

Note : 一般用于LINK_DATAfor_send设备的数据装填,接收请使用回调函数方式

链接TDataClass数据,以便通过各种传输协议解析出变量到TDataClass中

void LinkVar(const std::string origin_name, const ProtocolData & var);

Note : 一般使用宏LINK_VAR(var)代替,详细用法见下方example

设备操作函数,下发指令及数据 : 返回是否完整发送成功

bool Operate(const std::string & CMD, const std::vector<uint8_t> & data = std::vector<uint8_t>());

  • CMD : 指令字符串(描述文件中规定)
  • data : 指令所携带数据

GetData()修改的内部数据通过解析协议发送出去 : 返回是否完整发送成功

bool SendSelfData();

Note : 如设备不为发送模式(即for_send=false),设备同样可以进行发送,但不建议在非测试时使用

设置接收回调函数

File truncated at 100 lines see the full file

CHANGELOG
No CHANGELOG found.

Package Dependencies

System Dependencies

No direct system dependencies.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged cyberdog_embed_protocol at Robotics Stack Exchange