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 ...
随机推荐
- Codeforces 909C - Python Indentation
909C - Python Indentation 思路:dp. http://www.cnblogs.com/Leohh/p/8135525.html 可以参考一下这个博客,我的dp是反过来的,这样 ...
- 我为什么放弃使用mybatis3的mapper注解了
原文链接 最近在使用MyBatis3做项目.在使用注解实现Mapper的时候遇到了比较奇葩的问题:在实现数据的batch insert的时候总是报错.好不容易可以正常插入了,但是又不能返回自增的主键i ...
- How to implement connection pool in spark streaming
在spark streaming的文档里,有这么一段: def sendPartition(iter): # ConnectionPool is a static, lazily initialize ...
- ThreadLocal实现原理
一.ThreadLocal介绍 这是一个线程的局部变量.也就是说,只有当前线程可以访问.既然是只有当前线程可以访问的数据,自然是线程安全的. 为每一个线程分配不同的对象,需要在应用 ...
- 20170729xlVba SSC_RECENT100
Public Sub Recent100() Dim WebText As String Dim Reg As Object, Mh As Object, OneMh As Object Dim i ...
- 2018焦作网络赛Mathematical Curse
题意:开始有个数k,有个数组和几个运算符.遍历数组的过程中花费一个运算符和数组当前元素运算.运算符必须按顺序花费,并且最后要花费完.问得到最大结果. 用maxv[x][y]记录到第x个元素,用完了第y ...
- Objections vs. excuses
Objections are healthy. When someone is being offered a new opportunity or product, it's not unusual ...
- Lucky Array CodeForces - 121E (线段树,好题)
题目链接 题目大意: 定义只含数字$4,7$的数字为幸运数, 给定序列, 区间加正数, 区间询问多少个幸运数 题解: 对于每一个数, 求出它和第一个比它大的幸运数之差, 则问题转化为区间加,查询$0$ ...
- CentOS 7 Install Gitlab CE
https://hostpresto.com/community/tutorials/how-to-install-and-setup-gitlab-on-centos-7/ http://linux ...
- python-day7-字符串类型的内置方法
# name='egon' #name=str('egon')# print(type(name)) #优先掌握# 移除空白strip# msg=' hello '# print(msg)# prin ...