当前位置: 首页 > news >正文

广西长长路桥建设有限公司网站做网站设计师的感想

广西长长路桥建设有限公司网站,做网站设计师的感想,职业生涯规划大赛时间,wordpress土豆插件简介 UAVCAN是一种轻量级协议,旨在通过CAN总线在航空航天和机器人应用中实现可靠通信。要实现通信,最基本需要data_type_ id, signature、数据结构、设备程序初始化。 添加设备数据结构文件(.uavcan格式) 1.在以下路径添加设备数据结构文件,根据设备类…

简介

UAVCAN是一种轻量级协议,旨在通过CAN总线在航空航天和机器人应用中实现可靠通信。要实现通信,最基本需要data_type_ id, signature、数据结构、设备程序初始化。

添加设备数据结构文件(.uavcan格式)

1.在以下路径添加设备数据结构文件,根据设备类型选择对应的文件夹。这里使用actuator示例。

/ardupilot/modules/DroneCAN/DSDL/uavcan/equipment/actuator

2.新添加2018.HimarkServos.uavcan(发布功能)和2019.HimarkStatus.uavcan(订阅功能)
在这里插入图片描述
3.在2018.HimarkServos.uavcan和2019.HimarkStatus.uavcan中添加数据类型:(参考其他uavcan文件格式)
在这里插入图片描述
!](https://img-blog.csdnimg.cn/d7639dd3bcc94717904cb09daf01db76.png)

使用libuavcan_dsdlc生成.hpp头文件

1.要生成.hpp文件,需要使用libuavcan_dsdlc编译生成,基于python,可以在wscript文件配置自动生成。(生成.hpp文件后可以注释这段代码)

参考路径:Ardupilot/ArduCopter/wscript
在文件内添加以下代码:
bld(# build libcanard headerssource=bld.path.ant_glob("modules/DroneCAN/DSDL/**/*.uavcan"),rule="python3 ${SRCROOT}/modules/uavcan/libuavcan/dsdl_compiler/libuavcan_dsdlc --outdir ${BUILDROOT}/modules/DroneCAN/libcanard/dsdlc_generated ${SRCROOT}/modules/DroneCAN/DSDL/uavcan ${SRCROOT}/modules/DroneCAN/DSDL/ardupilot ${SRCROOT}/modules/DroneCAN/DSDL/com ${SRCROOT}/modules/DroneCAN/DSDL/dronecan",group='dynamic_sources',
)

2.配置board类型 (以雷迅CUAVv5为例)

./waf configure --board CUAVv5

3.根据机架类型编译工程

./waf copter

4.在以下路径可以找到生成.hpp文件
在这里插入图片描述
5.复制对应的HimarServos.hpp与HimarkStatus.hpp文件到以下路径

/Ardupilot/libraries/AP_UAVCAN/dsdl/

6.如果需要自定义签名,则需要在HimarkServos.hpp\HimarkStatus.hpp文件中修改
在这里插入图片描述

UAVCAN新设备调用

1.包含新设备头文件

#include <AP_UAVCAN/dsdl/HimarkServos.hpp>
#include <AP_UAVCAN/dsdl/HimarkStatus.hpp>

2.新添加发布信息接口

// himark servo
static uavcan::Publisher<uavcan::equipment::actuator::HimarkServos>* srv_out_array[HAL_MAX_CAN_PROTOCOL_DRIVERS];

3.新添加订阅服务接口

// handler Himark servo status
UC_REGISTRY_BINDER(HimarkStatusCb, uavcan::equipment::actuator::HimarkStatus);
static uavcan::Subscriber<uavcan::equipment::actuator::HimarkStatus, HimarkStatusCb> *himark_srv_status_listener[HAL_MAX_CAN_PROTOCOL_DRIVERS];

4.在void AP_UAVCAN::init()函数中添加设备初始化

//servo
srv_out_array[driver_index] = new uavcan::Publisher<uavcan::equipment::actuator::HimarkServos>(*_node);
srv_out_array[driver_index]->setTxTimeout(uavcan::MonotonicDuration::fromMSec(2));
srv_out_array[driver_index]->setPriority(uavcan::TransferPriority::OneLowerThanHighest);
himark_srv_status_listener[driver_index] = new uavcan::Subscriber<uavcan::equipment::actuator::HimarkStatus, HimarkStatusCb>(*_node);
if (himark_srv_status_listener[driver_index]) {himark_srv_status_listener[driver_index]->start(HimarkStatusCb(this, &handle_himark_srv_status));
}

5.发布服务实现
在这里插入图片描述
6.订阅服务实现
在这里插入图片描述
7.在AP_UAVCAN.H添加HimarkStatusCb类
在这里插入图片描述
8.在uavcan类里添加函数接口

public:
/ himark srv output /
void himark_srv_send_actuator(void);
static void handle_himark_srv_status(AP_UAVCAN* ap_uavcan, uint8_t node_id, const HimarkStatusCb &cb);

结束

UAVCAN新设备已经添加完成,可通信测试。

http://www.yayakq.cn/news/152761/

相关文章:

  • 培训会网站建设昆明网络推广招聘
  • 手机的网站建设目标是什么意思科技是第一生产力人才是第一资源创新是第一动力判断题
  • 做汽车团购的网站有哪些高端建设网站公司
  • 系统开发网站沈阳seo网站推广
  • 画家网站建设博罗网站设计
  • 鞍山制作网站哪家好广西网络推广怎么做
  • 厦门营销网站建设公司科技创新的重要性和意义
  • 移动端网站建设推广方案网站照片要求
  • 普通网站做网站开发风险协议
  • 濮阳市网站建设公司软件开发制作流程图
  • 网站的ftp地址怎么查自建站工具
  • 深圳国税局网站怎么做票种核定wordpress下载的插件怎么用
  • 企业还做网站吗手机免费制图软件
  • 科技网站配色方案网站建设商家公司
  • 长沙商城网站开发wordpress 开启链接
  • 做销售用什么网站好飘雪影院手机免费观看免费
  • 集团公司中英文网站模板壹舍设计公司
  • 学做网站论坛 可以吗中国网站设计师
  • 网站后台用什么开发网络营销方式研究心得1500
  • 免费制作论坛网站模板ppt免费下载雷锋网站
  • 平邑做网站的北京代理记账公司电话
  • 寿县城乡建设局网站在微信上做彩票网站有哪些
  • 那些彩票广告网站怎么做的做电影网站资源怎么
  • 北京市住房城乡建设门户网站做网站大公司有哪些
  • 在网站做电子画册做产品表情的网站
  • 成都网站建设四易维达做自媒体有哪些网站
  • 科技公司网站源码微信小程序电商平台开发
  • 免费的ppt下载网站网站收录减少
  • 成功案例网站建设灵台县门户网站
  • php网站开发实训实践总结模块化wordpress主题