Vector - CAPL - 诊断模块函数(流控制帧)

news2024/9/21 14:51:50

目录

CanTpIsUseFlowControlBlockSize & CanTpUseFlowControlBlockSize

代码示例

CanTpGetOneFlowControlValue & CanTpSetOneFlowControlValue

代码示例

CanTpGetAckMode & CanTpSetAckMode & CanTpGetAckResult & CanTpSetAckResult

代码示例


CanTpIsUseFlowControlBlockSize & CanTpUseFlowControlBlockSize

功能:

CanTpIsUseFlowControlBlockSize:检查连接传输数据时是否使用流量控制帧中的块大小值。

CanTpUseFlowControlBlockSize:配置在连接传输数据时是否使用流量控制帧中的块大小值。

Flag:

        0:不评估接收到的流量控制帧,而是使用通过 CanTpSetBlockSize 设置的固定块大小值。

        1:评估第一个接收到的流量控制帧并将其块大小值用于整个数据传输。

        2:默认值; 评估每个接收到的流量控制帧并调整所使用的块大小。

代码示例

连接不应使用接收方请求的块大小值,而应使用固定值 8。


CanTpSetBlockSize( handle, 8);
CanTpUseFlowControlBlockSize( handle, 0);

CanTpGetOneFlowControlValue & CanTpSetOneFlowControlValue

功能:获取或设置块大小值 (0—255),这意味着后面不再有流量控制帧。 按照标准的定义,默认值为 0。 另一个典型值是 255。

代码示例

连接使用块大小值 255 来指示接收方将不再发送流量控制帧。

CanTpSetOneFlowControlValue( handle, 255);

CanTpGetAckMode & CanTpSetAckMode & CanTpGetAckResult & CanTpSetAckResult

功能:

        CanTpGetAckMode:返回确认流控制发送的状态。

        CanTpSetAckMode:获取确认流控制结果字节值。

        CanTpGetAckResult:取消/激活确认流控制帧的发送。

        CanTpSetAckResult:设置确认流控制结果字节值。

说明:

        ISO TP 指定无确认的数据传输,即发送方无法得到接收方已正确接收所有数据的任何确认。 可以使用这些功能激活此标准行为的扩展 - 请注意,所有通信合作伙伴都必须实现此扩展!

        接收器在正确接收到预期的最后一个数据帧(单帧或连续帧)后,将向发送器发送确认流控制帧(FC.Ack,新类型)。 如果发生错误,接收器将不会发送该帧,即发送器将遇到流量控制超时。

        发送节点在发送完最后一个数据帧后等待 FC.Ack。 如果在 N_Bs 超时内未收到此类帧,则会通过调用 CAPL 函数 CanTp_ErrorInd(2) 来报告传输错误。

Format of FC.Ack:

        PCI byte #1: 流量状态 0xF
        PCI byte #2: AckRes 0(默认,可覆盖)
        PCI byte #3 etc.:(保留)0

代码示例

        按<Space>键,激活数据库连接的确认传输并将数据发送到接收器。 打印接收方返回的结果以表示成功的数据传输,或者如果未收到确认则报告错误。

On key ' ' {
  BYTE data[20];
  CanTpSetAckMode( CanTpGetDBConnection(), 1);
  CanTpSendData(CanTpGetDBConnection(), data, elcount(data));
}

CanTp_SendCon( long handle, dword count) {
  write( "Successful transfer of %d byte on connection %d: %d"
  , count, handle, CanTpGetAckResult( handle));
}

CanTp_ErrorInd( long handle, long error) {
  if(CanTpGetAckMode( handle) == 1 && error == 2)
    write( "No ACK for data on connection %d!"
    , handle);
}

        带确认的单帧传输(正常寻址)。

Id Data bytes
441 [05] 53 68 6f 72 74 00 00 // Single Frame, 5 byte
442 [3f 00 00] 00 00 00 00 00 // FlowControl.Ack, AckRes = 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/855929.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL5.7数据库、Navicat Premium1.6可视化工具安装教程【详细教程】

文章目录 一、MySQL、Navicat、注册机地址二、安装&#xff08;一&#xff09;、MySQL安装&#xff08;二&#xff09;、Navicat Premium安装&#xff08;三&#xff09;、集活Navicat Premium 三、遇到的问题1、Are you sure your navicat has not beenpatched/modified befor…

android开发之Android 自定义滑动解锁View

自定义滑动解锁View 需求如下&#xff1a; 近期需要做一个类似屏幕滑动解锁的功能&#xff0c;右划开始&#xff0c;左划暂停。 需求效果图如下 实现效果展示 自定义view如下 /** Desc 自定义滑动解锁View Author ZY Mail sunnyfor98gmail.com Date 2021/5/17 11:52 *…

测评HTTP代理的透明匿名?

在我们日常的网络冒险中&#xff0c;你是否曾听说过HTTP代理的透明匿名特性&#xff1f;这些神秘的工具就像是网络世界中的隐身斗士&#xff0c;让我们能够在互联网的迷雾中保护自己的身份和隐私。那么&#xff0c;让我们一起揭开HTTP代理的面纱&#xff0c;探索其中的奥秘吧&a…

opencv安装报错解决方案

菜鸟程序员写代码5分钟&#xff0c;配环境5小时 这里记录一下opencv配置报错&#xff0c;其实之前碰到过很多遍了 情况1&#xff1a;安装的时候卡在这一块 Building wheel for opencv-python (pyproject.toml) 解决方案&#xff1a;在安装指令后加--verbose pip install o…

并发三大特性和JMM

一、并发三大特性 1、原子性 一个或多个操作&#xff0c;要么全部执行且在执行过程中不被任何因素打断&#xff0c;要么全部不执行。在Java中&#xff0c;对基本数据类型的读取和赋值操作是原子性操作&#xff08;64位处理器&#xff09;。不采取任何的原子性保障措施的自增操…

微信小程序 map地图(轨迹)

allMarkers效果图 废话少说直接上马&#xff08;最后是我遇到的问题&#xff09; cover-view是气泡弹窗&#xff0c;可以自定义弹窗&#xff0c;要配合js&#xff1a;customCallout&#xff0c;如果是非自定义的话&#xff1a;callout&#xff08;可以修改颜色、边框宽度、圆角…

《Zookeeper》源码分析(五)之 ServerCnxnFactory的工作原理(上)

目录 AcceptThread数据结构构造函数run() SelectorThread数据结构processAcceptedConnections()select()processInterestOpsUpdateRequests() 本文开始分析 ServerCnxnFactory的工作原理&#xff0c;按照顺序我们这样分析&#xff1a; 建立连接监听读写事件处理读写就绪的事件…

【图像去噪的滤波器】非局部均值滤波器的实现,用于鲁棒的图像去噪研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Selenium 自动化测试实战笔记1

1. 安装 selenium pip install selenium 3.11.0 # 安装指定版本 pip install selenium -U # 安装最新版本 pip show selenium # 查看当前版本 pip uninstall selenium # 卸载 报错解决1&#xff1a; 带上代理 pip install selenium -i http://mirrors.aliyun.com/…

C++项目:在线五子棋对战(网页版)

项目介绍 本项⽬主要实现⼀个⽹⻚版的五⼦棋对战游戏&#xff0c;其主要⽀持以下核⼼功能&#xff1a; • 用户管理:实现用户注册&#xff0c;用户登录、获取用户信息、用户天梯分数记录、用户比赛场次记录等。 • 匹配对战:实现两个玩家在网页端根据天梯分数匹配游戏对⼿&…

图的遍历之 深度优先搜索和广度优先搜索

深度优先搜索的图文介绍 1. 深度优先搜索介绍 图的深度优先搜索(Depth First Search)&#xff0c;和树的先序遍历比较类似。 它的思想&#xff1a;假设初始状态是图中所有顶点均未被访问&#xff0c;则从某个顶点v出发&#xff0c;首先访问该顶点&#xff0c;然后依次从它的各…

亚马逊 EC2服务器下部署java环境

1. jdk 1.8 安装 1.1 下载jdk包 官网 Java Downloads | Oracle tar.gz 包 下载下来 1.2 本地连接 服务器 我用的是亚马逊的ec2 系统是 ubuntu 的 ssh工具是 Mobaxterm , 公有dns 创建实例时的秘钥 链接 Mobaxterm 因为使用的 ubuntu 所以登录的 名称 就是 ubuntu 然后 …

Leetcode每日一题:2681. 英雄的力量(2023.8.1 C++)

目录 2681. 英雄的力量 题目描述&#xff1a; 实现代码与解析&#xff1a; 数学规律 原理思路&#xff1a; 2681. 英雄的力量 题目描述&#xff1a; 给你一个下标从 0 开始的整数数组 nums &#xff0c;它表示英雄的能力值。如果我们选出一部分英雄&#xff0c;这组英雄的…

【kubeadm的配置安装】

目录 一、环境准备二、所有节点安装docker三、部署K8S集群1、查看镜像2、初始化kubeadm方法一&#xff1a;1、修改配置文件2、在线拉取镜像3、初始化 master 方法二、 3、设定kubectl4、所有节点部署网络插件flannel 四、部署 Dashboard1、在 master01 节点上操作 master&#…

分布式事务面试题

一、事务简介 事务(Transaction)是操作数据库中某个数据项的一个程序执行单元(unit)。 事务应该具有4个属性&#xff1a;原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。 1.1、名词解释 事务&#xff1a;事务是由一组操作构成的可靠的独立的工作单元&#x…

【前端】Vue生命周期函数(详细讲解+中文图解)

目录 一、何为生命周期1、含义2、理解 二、生命周期定义&#xff08;官网&#xff09;1、vue22、vue3 三、生命周期图解1、vue2生命周期图解2、vue3生命周期图解 四、Vue的生命周期五、Vue2生命周期和Vue3生命周期的区别六、Vue生命周期的主要阶段以及8个周期函数1、options AP…

BM5 合并k个已排序的链表 javascript

描述 合并 k 个升序的链表并将结果作为一个升序的链表返回其头节点。 数据范围&#xff1a; 示例1 输入&#xff1a; [{1,2,3},{4,5,6,7}] 返回值&#xff1a; {1,2,3,4,5,6,7}示例2 输入&#xff1a; [{1,2},{1,4,5},{6}] 返回值&#xff1a; {1,1,2,4,5,6}解题思路 利用两个…

Python numpy中的correlate相关性详解

看代码看见这个方法&#xff0c;记录一下&#xff0c;这个是人家官网的链接np.correlate 云里雾里的&#xff0c;其实就是两个数组点乘&#xff0c;不同模式就是错位点乘&#xff0c;直接看代码 a是原本的数组&#xff0c;v就是滤波器&#xff0c;对应相乘 import numpy as …

分布式 - 消息队列Kafka:Kafka生产者发送消息的3种方式

文章目录 1. Kafka 生产者2. kafaka 命令行操作3. Kafka 生产者发送消息流程4. Kafka 生产者发送消息的3种方式1. 发送即忘记2. 同步发送3. 异步发送 5. Kafka 消息对象 ProducerRecord 1. Kafka 生产者 Kafka 生产者是指使用 Apache Kafka 消息系统的应用程序&#xff0c;它们…

什么是React?React与VU的优缺点有哪些?

什么是React&#xff1f;什么是VUE&#xff1f; 维基百科上的概念解释&#xff0c;Vue.js是一个用于创建用户界面的开源MVVM前端JavaScript框架&#xff0c;也是一个创建单页应用的Web应用框架。Vue.js由尤雨溪&#xff08;Evan You&#xff09;创建&#xff0c;由他和其他活跃…