how to check CAN frame
1. check buffer size
getsockopt(s, SOL_SOCKET, SO_SNDBUF,&snd_size, &optlen);
setsockopt(s, SOL_SOCKET, SO_SNDBUF,&snd_size, &optlen);
setsockopt(s,SOL_SOCKET,SO_RCVBUF, (char *)&rcv_size, optlen);
//RE:https://blog.csdn.net/fuyuehua22/article/details/38232769
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <assert.h> int main(int argc,char **argv)
{
int err = -; /* 返回值 */
int s = -; /* socket描述符 */
int snd_size = ; /* 发送缓冲区大小 */
int rcv_size = ; /* 接收缓冲区大小 */
socklen_t optlen; /* 选项值长度 */ /*建立一个TCP套接字 */
s = socket(PF_INET,SOCK_STREAM,);
if( s == -){
printf("建立套接字错误\n");
return -;
} /* 先读取缓冲区设置的情况,获得原始发送缓冲区大小*/
optlen = sizeof(snd_size);
err = getsockopt(s, SOL_SOCKET, SO_SNDBUF,&snd_size, &optlen);
if(err<){
printf("获取发送缓冲区大小错误\n");
}
/*打印原始缓冲区设置情况*/ /*获得原始接收缓冲区大小*/
optlen = sizeof(rcv_size);
err = getsockopt(s, SOL_SOCKET, SO_RCVBUF, &rcv_size, &optlen);
if(err<){
printf("获取接收缓冲区大小错误\n");
} printf(" 发送缓冲区原始大小为: %d 字节\n",snd_size);
printf(" 接收缓冲区原始大小为: %d 字节\n",rcv_size); /*设置发送缓冲区大小*/
snd_size = *; /* 发送缓冲区大小为8K */
optlen = sizeof(snd_size);
err = setsockopt(s, SOL_SOCKET, SO_SNDBUF, &snd_size, optlen);
if(err<){
printf("设置发送缓冲区大小错误\n");
} /*设置接收缓冲区大小*/
rcv_size = *; /* 接收缓冲区大小为8K */
optlen = sizeof(rcv_size);
err = setsockopt(s,SOL_SOCKET,SO_RCVBUF, (char *)&rcv_size, optlen);
if(err<){
printf("设置接收缓冲区大小错误\n");
} /*检查上述缓冲区设置的情况,获得修改后发送缓冲区大小 */
optlen = sizeof(snd_size);
err = getsockopt(s, SOL_SOCKET, SO_SNDBUF,&snd_size, &optlen);
if(err<){
printf("获取发送缓冲区大小错误\n");
} /*获得修改后接收缓冲区大小 */
optlen = sizeof(rcv_size);
err = getsockopt(s, SOL_SOCKET, SO_RCVBUF,(char *)&rcv_size, &optlen);
if(err<){
printf("获取接收缓冲区大小错误\n");
} /* 打印结果 */
printf(" 发送缓冲区大小为: %d 字节\n",snd_size);
printf(" 接收缓冲区大小为: %d 字节\n",rcv_size); close(s);
return ;
}
2. 查看统计:
cat /proc/net/can/stats
eg:
nvidia@tegra-ubuntu:~/zrj/laneseg_TRT$ cat /proc/net/can/stats transmitted frames (TXF)
received frames (RXF)
matched frames (RXMF) % total match ratio (RXMR)
frames/s total tx rate (TXR)
frames/s total rx rate (RXR) % current match ratio (CRXMR)
frames/s current tx rate (CTXR)
frames/s current rx rate (CRXR) % max match ratio (MRXMR)
frames/s max tx rate (MTXR)
frames/s max rx rate (MRXR) current receive list entries (CRCV)
maximum receive list entries (MRCV)
3. ifconfig can1
nvidia@tegra-ubuntu:~/zrj/laneseg_TRT$ ifconfig can1
can1 Link encap:UNSPEC HWaddr ---------------
UP RUNNING NOARP MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (589.8 KB) TX bytes: (2.0 MB)
Interrupt:
4. other tools.
CANoe or CANPro etc...
END
how to check CAN frame的更多相关文章
- ORA 各种oraclesql错误
ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出 ...
- SQL错误码
///////////////////////////////////////////////////////////////ORA-00001: 违反唯一约束条件 (.)ORA-00017: 请求会 ...
- Python入门之树莓派
Linux命令行$+命令 pwd显示当前目录 ls列表 cd改变当前目录,/ sudo超级用户输入,特权来操作系统相关设置或删除文件 sudo apt-get install 安装程序 sudo ...
- 蓝牙的L2CAP协议
1.概述 L2CAP能向上层提供面向连接的或者无连接的数据服务,拥有multiplexing capability and segmentation and reassembly operat ...
- [转]PictureEx.h和PictureEx.cpp源文件
要显示一个gif,网上找了个,子类化了MFCl图片控件,用着方便,记一下 转自:http://www.bccn.net/Article/net/vcnet/jszl/200709/6386.html ...
- WebDriver(Selenium2) 常见异常及处理方法
http://uniquepig.iteye.com/blog/1568197 Exception NoSuchElementException Solutions 1. Check the l ...
- 原创:vsphere概念深入系列四:Nic Teaming若干问题
参考文档:http://www.hyper-v.nu/archives/marcve/2013/01/lbfo-hyper-v-switch-qos-and-actual-performance-pa ...
- Unity3D关于VR的Demo(一)
https://blog.csdn.net/qq_15807167/article/details/52048998?locationNum=8&fps=1 阅读数:9716 最近有点忙,只有 ...
- Oracle 11g trace events
oracle的events,是我们在做自己的软件系统时可以借鉴的 Oracle 11g trace eventsORA-10001: control file crash event1ORA-1000 ...
随机推荐
- Java 面向对象之接口、多态
01接口的概念 A:接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成 ...
- Java并发编程:Callable、Future和FutureTask(转)
Java并发编程:Callable.Future和FutureTask 在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口. 这2种方式都有一 ...
- 深度学习框架Keras安装
环境:Windows 10 64位 版本!版本!版本!不要下载最新版本的! 一点要按照这个来!安装顺序也最好不要错! 首先安装DirectX SDK工具包 ,这是链接:https://www.micr ...
- 《剑指offer》第二十三题(链表中环的入口结点)
// 面试题23:链表中环的入口结点 // 题目:一个链表中包含环,如何找出环的入口结点?例如,在图3.8的链表中, // 环的入口结点是结点3. #include <iostream> ...
- RabbitMQ入门_11_DLX
参考资料:https://www.rabbitmq.com/dlx.html 队列中的消息可能会成为死信消息(dead lettered).让消息成为死信消息的事件有: 消息被取消确认(nack 或 ...
- angular5 路由传参的几种方式
此处介绍三种方式 方式一: 问号后面带的参数, 例如:/product?id=1&name=iphone还可以是: [routerLink]="['/books']" [q ...
- JELLYFISH - Fast, Parallel k-mer Counting for DNA
kmer分析其实是非常耗费计算资源的,如果我们自己写脚本来分析kmer的话,首先要将所有的序列打断成一定长度的kmer,然后将所有的kmer存储起来,最后统计每个kmer出现的频率,或者统计出现指定次 ...
- Struts2 简介图
Struts2官方提供的,strus2的内部工作机制图解.
- 『Nltk』常用方法
引言 在nltk的介绍文章中,前面几篇主要介绍了nltk自带的数据(书籍和语料),感觉系统学习意义不大,用到哪里看到那里就行(笑),所以这里会从一些常用功能开始,适当略过对于数据本体的介绍. 文本处理 ...
- @XmlAccessorType @XmlType 详解
例子: @XmlAccessorType(XmlAccessType.FIELD) String name=”CY”; } public static void main(String[] args) ...