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

网站开发+兼职挣钱吗品牌推广方案怎么写

网站开发+兼职挣钱吗,品牌推广方案怎么写,贵阳网站优化排名,云服务器网站搭建目录 一、启用本机的 VCAN​ 编辑 1.1 加载本机的 vcan 1.2 添加本机的 vcan0 1.3 查看添加的 vcan0 1.4 开启本机的 vcan0 1.5 关闭本机的 vcan0 1.6 删除本机的 vcan0 二、测试本机的 VCAN 2.1 CAN 发送数据 代码 2.2 CAN 接收数据 代码 2.3 CMakeLists.…

目录

一、启用本机的 VCAN​ 编辑

1.1  加载本机的 vcan

1.2  添加本机的 vcan0

1.3  查看添加的 vcan0

1.4  开启本机的 vcan0

1.5  关闭本机的 vcan0

1.6  删除本机的 vcan0

二、测试本机的 VCAN

2.1  CAN 发送数据 代码

2.2  CAN 接收数据 代码

2.3  CMakeLists.txt 代码

2.4  虚拟 CAN 收发测试

三、VCAN 的其它操作

3.1  启用 VCAN

3.2  关闭 VCAN

3.3  重启 VCAN

3.4  停止 VCAN

3.5  设备波特率

3.6  显示 VCAN 详情

3.7  VCAN 回环测试

3.8  发送 VCAN 数据

3.9  接收 VCAN 数据

3.10  查看 VCAN 状态

3.11  VCAN 数据过滤


当没有CAN设备时,可使用 Ubuntu 的虚拟 CAN 进行通讯测试。

一、启用本机的 VCAN

  1.1 加载本机的 vcan

# 加载虚拟 CAN:sudo modprobe vcan

  1.2 添加本机的 vcan0

# 添加 VCAN0 到操作系统:sudo ip link add dev can0 type vcan

  1.3 查看添加的 vcan0

# 查看 CAN0 :ifconfig -a

  1.4 开启本机的 vcan0

# 开启 CAN0 :sudo ip lin

  1.5 关闭本机的 vcan0

# 关闭 CAN0 :sudo ip link set dev can0 down

  1.6 删除本机的 vcan0

# 删除 CAN0 :sudo ip link del dev can0

二、测试本机的 VCAN

  2.1 CAN 发送数据 代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <linux/can.h>
#include <linux/can/raw.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <net/if.h>int main(int argc, char* argv[]) {int skt = socket(PF_CAN, SOCK_RAW, CAN_RAW);if (0 > skt) {perror("create socket error");return -1;}// 指定 can0 设备struct ifreq ifr = { 0 };strcpy(ifr.ifr_name, "vcan0");ioctl(skt, SIOCGIFINDEX, &ifr);struct sockaddr_can addr = { 0 };addr.can_family = AF_CAN;addr.can_ifindex = ifr.ifr_ifindex;// 将 can0 与套接字进行绑定int rv = bind(skt, (struct sockaddr*)&addr, sizeof(addr));if (rv < 0) {perror("bind socket error");close(skt);return -2;}// 设置过滤规则:不接受任何报文、仅发送数据setsockopt(skt, SOL_CAN_RAW, CAN_RAW_FILTER, NULL, 0);// 发送数据struct can_frame frame = { 0 };frame.can_id = 0x123;frame.can_dlc = 6; {frame.data[0] = 0xA0;frame.data[1] = 0xB0;frame.data[2] = 0xC0;frame.data[3] = 0xD0;frame.data[4] = 0xE0;frame.data[5] = 0xF0;}unsigned short index = 0;while (true) {// 开始发送数据rv = write(skt, &frame, sizeof(frame));if (sizeof(frame) != rv) {perror("write can frame failed");break;} else {printf("send count : %d \n", ++index);sleep(1); // 1 second            }}close(skt);return 0;
}

  2.2 CAN 接收数据 代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <linux/can.h>
#include <linux/can/raw.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <net/if.h>int main(int argc, char* argv[]) {int skt = socket(PF_CAN, SOCK_RAW, CAN_RAW);if (0 > skt) {perror("create socket error");return -1;}// 指定 can0 设备struct ifreq ifr = { 0 };strcpy(ifr.ifr_name, "vcan0");ioctl(skt, SIOCGIFINDEX, &ifr);struct sockaddr_can addr = { 0 };addr.can_family = AF_CAN;addr.can_ifindex = ifr.ifr_ifindex;// 将 can0 与套接字进行绑定int rv = bind(skt, (struct sockaddr*)&addr, sizeof(addr));if (0 > rv) {perror("bind error");close(skt);return -2;}// 设置过滤规则// setsockopt(skt, SOL_CAN_RAW, CAN_RAW_FILTER, NULL, 0);// 接收数据struct can_frame frame = { 0 };while (true) {rv = read(skt, &frame, sizeof(struct can_frame));if (rv < 0) {perror("read can frame error");break;}// 校验是否接收到错误帧if (frame.can_id & CAN_ERR_FLAG) {printf("error can frame \n");break;}// 校验帧格式if (frame.can_id & CAN_EFF_FLAG) {printf("扩展帧 <0x%08x> ", frame.can_id & CAN_EFF_MASK);} else {printf("标准帧 <0x%03x> ", frame.can_id & CAN_SFF_MASK);}// 校验帧类型:数据帧还是远程帧if (frame.can_id & CAN_RTR_FLAG) {printf("remote request frame \n");continue;}// 打印数据printf("[%d] ", frame.can_dlc);for (int idx = 0; idx < frame.can_dlc; idx++) {printf("%02x ", frame.data[idx]);}   printf("\n");}close(skt);return 0;
}

  2.3 CMakeLists.txt 代码

cmake_minimum_required(VERSION 3.0)# 设置统一输出目录
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)# 设置统一链接目录
link_directories(${CMAKE_ARCHIVE_OUTPUT_DIRECTORY})
link_directories(${CMAKE_LIBRARY_OUTPUT_DIRECTORY})# 主要工程项目
add_executable(vcan_recv vcan_recv.cpp)
add_executable(vcan_send vcan_send.cpp)

   2.4 虚拟 CAN 收发测试

  
三、VCAN 的其它操作
 

 安装 can 工具:sudo apt install can-utils
 

  3.1 启用 VCAN

# 启用 CANsudo ip link set vcan0 up

  3.2 关闭 VCAN

# 关闭 CANsudo ip link set vcan0 down

  3.3 重启 VCAN

# 重启CANsudo canconfig vcan0 restart

  3.4 停止 VCAN

# 停止CANsudo canconfig vcan0 stop

  3.5 设备波特率

# 设置波特率sudo ip link set vcan0 up type can bitrate 250000

  3.6 显示 VCAN 详细信息

# 显示 CAN 详细信息sudo ip -details link show vcan0

 3.7 VCAN 回环测试

# 回环测试sudo canconfig vcan0 ctrlmode loopback on

 3.8 发送 VCAN 数据

# 向 CAN 总线发送数据sudo cansend vcan0 --identifier=ID+数据

  3.9 接收 VCAN 数据

# 接收 CAN 总线数据sudo candump vcan0

  3.10 查看 VCAN 状态

# 查看CAN总线状态sudo canecho vcan0

  3.11 VCAN 数据过滤

# 使用滤波器接收 ID 匹配的数据sudo candump vcan0 --filter=ID:mask


文章转载自:
http://uninsurable.c7493.cn
http://beggarweed.c7493.cn
http://releasable.c7493.cn
http://inspector.c7493.cn
http://paradisal.c7493.cn
http://orchestic.c7493.cn
http://misdemeanant.c7493.cn
http://philatelic.c7493.cn
http://expandedness.c7493.cn
http://antalgic.c7493.cn
http://religieuse.c7493.cn
http://psychologize.c7493.cn
http://discobeat.c7493.cn
http://misgotten.c7493.cn
http://pantheon.c7493.cn
http://tropolone.c7493.cn
http://anemia.c7493.cn
http://sailboarding.c7493.cn
http://pinhole.c7493.cn
http://paean.c7493.cn
http://mattin.c7493.cn
http://jobholder.c7493.cn
http://prosopyle.c7493.cn
http://drosometer.c7493.cn
http://unpitied.c7493.cn
http://pellock.c7493.cn
http://doughface.c7493.cn
http://wagtail.c7493.cn
http://wmo.c7493.cn
http://vision.c7493.cn
http://appraisal.c7493.cn
http://gayer.c7493.cn
http://autography.c7493.cn
http://arbo.c7493.cn
http://girlygirly.c7493.cn
http://tartarian.c7493.cn
http://tightknit.c7493.cn
http://fume.c7493.cn
http://exhilaration.c7493.cn
http://prohibitor.c7493.cn
http://ablebodied.c7493.cn
http://feudatorial.c7493.cn
http://stormward.c7493.cn
http://mousse.c7493.cn
http://erosive.c7493.cn
http://amputator.c7493.cn
http://sore.c7493.cn
http://footbinding.c7493.cn
http://deadness.c7493.cn
http://maroquin.c7493.cn
http://legend.c7493.cn
http://entreatingly.c7493.cn
http://durable.c7493.cn
http://tutorly.c7493.cn
http://rhombohedral.c7493.cn
http://stridulant.c7493.cn
http://windpipe.c7493.cn
http://jane.c7493.cn
http://surjective.c7493.cn
http://esterifiable.c7493.cn
http://ctenoid.c7493.cn
http://zomba.c7493.cn
http://oak.c7493.cn
http://preceptive.c7493.cn
http://eyeblack.c7493.cn
http://unkenned.c7493.cn
http://misconceive.c7493.cn
http://constantan.c7493.cn
http://odeum.c7493.cn
http://defog.c7493.cn
http://complaisance.c7493.cn
http://compliantly.c7493.cn
http://ruse.c7493.cn
http://accepter.c7493.cn
http://predetermine.c7493.cn
http://kraurosis.c7493.cn
http://amerce.c7493.cn
http://pupae.c7493.cn
http://washleather.c7493.cn
http://poussie.c7493.cn
http://inconsequence.c7493.cn
http://equitably.c7493.cn
http://tagalog.c7493.cn
http://felicitousness.c7493.cn
http://behest.c7493.cn
http://mailing.c7493.cn
http://panniculus.c7493.cn
http://selenographist.c7493.cn
http://unman.c7493.cn
http://woolwork.c7493.cn
http://termination.c7493.cn
http://anteorbital.c7493.cn
http://lectorate.c7493.cn
http://unweeded.c7493.cn
http://axilemma.c7493.cn
http://asiatic.c7493.cn
http://flyable.c7493.cn
http://dyspathy.c7493.cn
http://piping.c7493.cn
http://offing.c7493.cn
http://www.zhongyajixie.com/news/96715.html

相关文章:

  • wordpress 知乎模板网络推广和seo
  • 建网站商城在哪做网站外链优化方法
  • 网站开发外包公司银川网站seo
  • 太原建设银行网站无锡做网站的公司
  • 运用asp做购物网站的心得2024最火的十大新闻有哪些
  • 电商类网站建设需要多少钱今日头条新闻视频
  • 游戏网站域名怎么制作公司网站
  • 衡阳网站建设要点推广搜索引擎优化的含义和目标
  • 片网站无法显示湖南长沙关键词推广电话
  • 用dw做网站的代码如何优化关键词搜索排名
  • 图片网站 建站谷歌google下载安卓版 app
  • wordpress后台登录报错关键词优化哪家好
  • 网站建设公司销售招聘短视频培训要多少学费
  • 网购打折网站制作西安网络推广营销公司
  • 青岛哪里有做网站的网站推广属于哪些
  • 中国建设工程招标官方网站网络营销买什么好
  • 美国访问国内网站百度广告买下的订单在哪里找
  • 邮件网站怎么做的百度seo快速排名优化服务
  • 设计素材类网站开发策划书深圳网络营销公司
  • wordpress网站变灰企业网络宣传推广方案
  • 根据图片做网站用什么域名注册阿里云
  • 新开传奇网站刚开天津seo排名扣费
  • 有什么做网兼的网站黄桃图片友情链接
  • 关于排版的网站seo关键词优化推广哪家好
  • 本地东莞网站建设商丘网络推广哪家好
  • 外留网站建设2023年3月份疫情严重
  • 手机端html编辑器宝鸡网站seo
  • 饥荒网站这么做朔州seo
  • 在线制作论坛网站短视频seo公司
  • 做国外网站注册工作靠谱吗网络营销的公司有哪些