AutoSar AP CM原始数据流传输接口总结

一、原始数据流传输接口概述

自适应 AUTOSAR 通信管理通常基于面向服务的通信,但对于高级驾驶辅助系统(ADAS)应用,高效传输原始二进制数据流很重要,原始数据二进制流 API 为此提供了解决方案。它能与车辆外部传感器高效通信,通信通过套接字在网络上进行,从ara::com架构看,该 API 是静态的,属于ara::com命名空间但独立于中间件服务。

二、功能描述

原始数据二进制流 API 可在客户端和服务器端使用,两者都能发送和接收数据,但有不同的操作顺序:

  • 客户端:连接(Connect)→读数据 / 写数据(ReadData/WriteData)→关闭(Shutdown)。
  • 服务器端:等待连接(WaitForConnection)→读数据 / 写数据(ReadData/WriteData)→关闭(Shutdown)。

三、类和模型

  1. ara::com::raw定义了RawDataStream类,客户端是ara::com::raw::RawDataStreamClient对象,服务器端是ara::com::raw::RawDataStreamServer对象。
  2. 构造函数:
    • RawDataStreamClient(const ara::com::InstanceSpecifier& instance);
    • RawDataStreamServer(const ara::com::InstanceSpecifier& instance);
  3. 析构函数:
    • ~RawDataStreamClient();
    • ~RawDataStreamServer();
  4. 清单模型定义了网络上原始数据流部署的参数,包括传输方式、网络端点、端口、套接字选项和安全属性等。

四、方法

  1. 超时参数:RawDataStream的客户端和服务器的相关方法都有可选超时参数,以毫秒为单位,决定方法的超时时间。
  2. 具体方法:
    • WaitForConnection:仅服务器端可用,用于等待客户端连接,仅在 TCP 时使用。
    • Connect:仅客户端可用,用于建立与 TCP 服务器的连接,对于 UDP 不执行操作。
    • Shutdown:客户端和服务器端都可用,用于关闭通信。
    • ReadData:从套接字连接读取字节,成功返回包含读取数据指针和字节数的结构体,失败返回错误码。
    • WriteData:将字节写入套接字连接,成功返回实际写入的字节数,失败返回错误码。

示例代码

RawDataStreamClient(const ara::com::InstanceSpecifier& instance);
RawDataStreamServer(const ara::com::InstanceSpecifier& instance);

连接方法:

ara::core::Result<void> Connect();
ara::core::Result<void> Connect(std::chrono::milliseconds timeout);

读取数据方法:

ara::core::Result<ReadDataResult> ReadData(size_t length);
ara::core::Result<ReadDataResult> ReadData(size_t length,std::chrono::milliseconds timeout);struct ReadDataResult
{std::unique_ptr<ara::core::Byte[]> data;size_t numberOfBytes;
};

写入数据方法:

ara::core::Result<size_t> WriteData(std::unique_ptr<ara::core::Byte[]> data,size_t length);
ara::core::Result<size_t> WriteData(std::unique_ptr<ara::core::Byte[]> data,size_t length,std::chrono::milliseconds timeout);

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

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

相关文章

【CTF刷题9】2024.10.19

[MoeCTF 2021]babyRCE 考点&#xff1a;关键词过滤&#xff08;绕过方法参考往期博客&#xff09; 来源&#xff1a;nssctf <?php$rce $_GET[rce]; if (isset($rce)) {if (!preg_match("/cat|more|less|head|tac|tail|nl|od|vi|vim|sort|flag| |\;|[0-9]|\*|\|\%|\&g…

TiDB 关联子查询及半连接的优化实践

作者&#xff1a; 数据源的TiDB学习之路 原文来源&#xff1a; https://tidb.net/blog/e9563a23 导读 TiDB 针对子查询语句会执行多种 子查询相关的优化 &#xff0c;以提升子查询的执行性能。半连接语句和关联子查询语句是常用的两类子查询&#xff0c;TiDB 优化器默认包…

《浙江工业大学学报》

《浙江工业大学学报》 国际标准刊号&#xff1a;ISSN 1006-4303&#xff0c;国内统一刊号&#xff1a;CN 33-1193/T。 本刊主要报道本校各学科最新的研究成果&#xff0c;并择优刊登相关学科的外稿。覆盖的学科主要有化学工程、机械工程、信息工程、建筑工程以及生物与环境工…

图像中的数值计算

目录 图像读取与形状图像数据展示图像数据操作超出范围的像素值处理 图像读取与形状 使用cv2.imread函数读取图像文件。图像的形状通过shape属性获取&#xff0c;格式为(高度, 宽度, 颜色通道数)。 import cv2img1 cv2.imread(bg.jpg) img2 cv2.imread(fish.jpg)print(img1…

Linux服务器安装SRAToolkit教程

SRAToolkit是由NCBI&#xff08;美国国家生物技术信息中心&#xff09;提供的一个工具集&#xff0c;用于下载、读取和转换SRA&#xff08;Sequence Read Archive&#xff09;格式的数据文件。这些数据文件包含了大规模的核酸序列数据&#xff0c;对于基因组学研究至关重要。本…

pytorch激活函数介绍

在 PyTorch 中,激活函数(Activation Functions)是神经网络中重要的非线性组件,用于引入非线性,使网络能够学习复杂的函数关系。以下是 PyTorch 中常见的激活函数及其特点: 1. ReLU (Rectified Linear Unit) 函数: torch.nn.ReLU()公式: ReLU(x)=max⁡(0,x)特点: 常用于隐…

python-代码技巧

python-代码技巧 简单tips1、多个列表循环遍历2、使用map对列表中多个文件进行批量操作 仅个人笔记使用&#xff0c;感谢点赞关注 简单tips 1、多个列表循环遍历 dataTypes ["train","test"] dataStations ["1","2","3"…

Bean的实例化方式

1. 通过构造方法实例化&#xff08;Constructor Instantiation&#xff09; 这是最常见的方式&#xff0c;Spring通过调用类的构造方法来创建Bean实例。 XML配置示例 <bean id"userDao" class"com.example.UserDao" />Spring容器在加载时调用User…

【C语言】自定义类型:结构体--结构体内存对齐(用于计算结构体的大小)

结构体内存对齐 结构体内存对齐用于计算结构体的大小。 &#xff08;1&#xff09;对齐规则 1&#xff09;&#xff09;结构体的第一个成员对齐到和结构体变量起始位置偏移量为0的地址处。 2&#xff09;&#xff09;其他成员变量要对齐到某个数字&#xff08;对齐数&#…

C++中的vector使用与实现

一、vector的使用 1.1 vector的定义 是一种类模板 template < class T, class Alloc allocator<T> > class vector; 其中的模板参数Alloc是在使用空间配置器&#xff08;内存池&#xff09;&#xff0c;并给了缺省值&#xff0c;暂时不深究 1.2遍历方式 1.…

FFmpeg 4.3 音视频-多路H265监控录放C++开发四 :RGB颜色

一 RGB 的意义&#xff1f; 为什么要从RGB 开始讲起呢&#xff1f; 因为最终传输到显卡显示器的颜色都是RGB 即使能处理YUV的API&#xff0c;本质上也是帮你做了从 YUV 到 RGB的转换。 RGB888 表示 R 占8bit&#xff0c;G 占8bit&#xff0c;B 占8bit&#xff0c;也就是每一…

Gin框架操作指南10:服务器与高级功能

官方文档地址&#xff08;中文&#xff09;&#xff1a;https://gin-gonic.com/zh-cn/docs/ 注&#xff1a;本教程采用工作区机制&#xff0c;所以一个项目下载了Gin框架&#xff0c;其余项目就无需重复下载&#xff0c;想了解的读者可阅读第一节&#xff1a;Gin操作指南&#…

STM32端与C#端的连接与交互[外设][代码记录]

1. 通过UART串口进行通信 STM32 端代码&#xff08;UART通信&#xff09;&#xff1a; #include "stm32f1xx_hal.h"UART_HandleTypeDef huart1;void SystemClock_Config(void); static void MX_GPIO_Init(void); static void MX_USART1_UART_Init(void);int main(v…

手撕布隆过滤器:原理解析与面试心得

前言 说来话长&#xff0c;话来说长。前些天我投了一些日常实习的简历&#xff0c;结果足足等了两个礼拜才收到面试通知&#xff0c;看来如今的行情确实是挺紧张的。当时我是满怀信心去的&#xff0c;心想这次一定要好好拷打面试官一番&#xff0c;结果没想到&#xff0c;自我…

QT程序报错解决方案:Cannot queue arguments of type ‘QTextCharFormat‘ 或 ‘QTextCursor‘

项目场景&#xff1a; 项目场景&#xff1a;基于QT实现的C某程序&#xff0c;搭载在Linux环境中。 问题描述 执行程序时&#xff0c;发现log中报错如下内容&#xff1a; QObject::connect: Cannot queue arguments of type QTextCharFormat (Make sure QTextCharFormat is r…

Cesium for UE-04-一些说明

目前主要做webgis的工作&#xff0c;UE官方对web的支持截止到了4.23版本&#xff0c;即使是4.23版本之后的4.xx版本也有办法支持&#xff0c;已经有大佬开源了一些方法和工具&#xff0c;不再介绍。即使是4.23想要输出为h5&#xff0c;也是有一定的折腾门槛的。最重要的是【Ces…

腰背肌筋膜炎有哪些治疗方法

腰背肌筋膜炎主要表现为腰背部的疼痛、酸胀、僵硬、活动受限等症状。在疾病初期&#xff0c;症状可能相对较轻&#xff0c;通过休息、保暖、适当的物理治疗等&#xff0c;往往可以缓解症状&#xff0c;此时病情不算严重。如果患者不重视&#xff0c;继续保持不良的生活习惯&…

微服务架构 --- 使用RabbitMQ进行异步处理

目录 一.什么是RabbitMQ&#xff1f; 二.异步调用处理逻辑&#xff1a; 三.RabbitMQ的基本使用&#xff1a; 1.安装&#xff1a; 2.架构图&#xff1a; 3.RabbitMQ控制台的使用&#xff1a; &#xff08;1&#xff09;Exchanges 交换机&#xff1a; &#xff08;2&#…

MES系列-报表和分析

MES系列-报表和分析 MES系列文章目录 ISA-95制造业中企业和控制系统的集成的国际标准-(1) ISA-95制造业中企业和控制系统的集成的国际标准-(2) ISA-95制造业中企业和控制系统的集成的国际标准-(3) ISA-95制造业中企业和控制系统的集成的国际标准-(4) ISA-95制造业中企业和控制…

1.1_Metasploit (MSF) 工具使用

MetaSploit 漏洞利用框架 模块功能 模块功能Auxiliary信息收集&#xff0c;漏洞扫描等辅助功能Payloads漏洞验证代码Exploits包含漏洞利用脚本Encoders绕过检测和过滤Evasion绕过杀软PostExploits 执行成功&#xff0c;向目标主机发送的一些功能指令Nops溢出攻击 目录说明 目录…