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 ...
随机推荐
- C# 二进制图片串互转
C# byte数组与Image的相互转换 功能需求: 1.把一张图片(png bmp jpeg bmp gif)转换为byte数组存放到数据库. 2.把从数据库读取的byte数组转换为Image对 ...
- SpringMVC实现多种数据类型绑定
绑定基本数据类型 Java基本数据类型int的默认值是0,在使用int进行url传递参数时,参数key是必须写的,其值也只能是int类型的,否则将会报错. 比如方法: @RequestMapping( ...
- Codeforces C - String Reconstruction
C - String Reconstruction 方法一:把确定的点的父亲节点设为下一个点,这样访问过的点的根节点都是没访问过的点. 代码: #include<bits/stdc++.h> ...
- Codeforces 447D - DZY Loves Modification
447D - DZY Loves Modification 思路:将行和列分开考虑.用优先队列,计算出行操作i次的幸福值r[i],再计算出列操作i次的幸福值c[i].然后将行取i次操作和列取k-i次操 ...
- 雷林鹏分享:C# 类(Class)
C# 类(Class) 当您定义一个类时,您定义了一个数据类型的蓝图.这实际上并没有定义任何的数据,但它定义了类的名称意味着什么,也就是说,类的对象由什么组成及在这个对象上可执行什么操作.对象是类的实 ...
- 新概念 Lesson 1 Excuse me!
xu言: 从哪里跌倒,就从哪里爬起来.希望这次真的能够坚持下去... standard ['stændəd] pronunciation [prə,nʌnsɪ'eɪʃ(ə)n] basic ...
- WPF全屏
https://blog.onedevjob.com/2010/10/19/fixing-full-screen-wpf-windows/ 让窗口重绘 Visibility = Visibility. ...
- 浏览器编辑web页面的方法
F12打开控制台执行 document.body.contentEditable='true'; 这样就可以随便修改了
- python-day33--进程间通信(IPC)
方式:队列(推荐使用) 一.基本情况 1.可以往队列里放任意类型的数据 2. 队列:先进先出 3. q=Queue(3) #可以设置队列中最多可以进入多少个值,也可以不设置 q.put('first' ...
- Java连接各种数据库的实例
1.Oracle8/8i/9i数据库(thin模式) Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); ...