一、函数介绍:

1.1 RFM2gWrite

STDRFM2GCALL RFM2gWrite( RFM2GHANDLE rh, RFM2G_UINT32 Offset, void *Buffer, RFM2G_UINT32 Length );

说明:

RFM2gWrite()函数将一个或多个I/O数据缓冲区从应用程序传输到RFM2g节点,从指定的对齐内存偏移开始。

参数及返回值说明:

rh :打开RFM2g设备的句柄。

Offset :在指定偏移量位置开始写入数据。64MB卡的有效偏移值为0x0到0x3FFFFFF, 128MB卡的有效偏移值为0x0到0x7FFFFFF, 256MB卡的有效偏移值为0x0到0x0FFFFFFF。

Buffer: 要写入的数据。

Length: 写入的字节数长度,有效值为0 ~  ([RFM Size] ‐ rfmOffset)。

1.2 RFM2gRead

STDRFM2GCALL RFM2gRead( RFM2GHANDLE rh,RFM2G_UINT32 Offset,void *Buffer,RFM2G_UINT32 Length );

说明:

RFM2gRead()函数用于将一个或多个字节从RFM2g内存传输到系统内存。

参数及返回值说明:

rh :打开RFM2g设备的句柄。

Offset :在指定偏移量位置开始读取数据。64MB卡的有效偏移值为0x0到0x3FFFFFF, 128MB卡的有效偏移值为0x0到0x7FFFFFF, 256MB卡的有效偏移值为0x0到0x0FFFFFFF。

Buffer :要写入的数据。

Length :传输的字节数长度,有效值为0 ~  ([RFM Size] ‐ rfmOffset)。

二、示例

2.1 写入/读取字符数组数据:

写入字符串数据 “testrfm”,执行结果如图1:

bool WriteStringData(RFM2GHANDLE hd)
{RFM2G_STATUS result;RFM2G_UINT8 write_data[BUFFER_SIZE]= { 't','e','s','t','r','f','m'};    // 要写入的数据:testrfmresult = RFM2gWrite(hd, OFFSET_0, (void*)write_data, sizeof(write_data));    // 写入if (result != RFM2G_SUCCESS){std::cout << "数据写入失败!错误代码: " << result << std::endl;return false;}std::cout << "数据写入成功!" << std::endl;return true;
}

图1:

读取数据,结果如图2:

bool ReadStringData(RFM2GHANDLE hd)
{RFM2G_STATUS result;char read_data[BUFFER_SIZE]{0};    // 存储读取数据result = RFM2gRead(hd, 0x1, (void*)read_data, sizeof(read_data));    // 读取数据if (result != RFM2G_SUCCESS){std::cout << "数据读取失败!错误代码: " << result << std::endl;return false;}std::cout << read_data << std::endl;return true;
}

图2:

2.2 写入/读取结构体数据

循环5次写入结构体数据,结果如图3:

bool WriteStructData(RFM2GHANDLE hd)
{RFM2G_STATUS result;for (int i = 0; i < 5; i++){RFM2G_UINT8 write_data[BUFFER_SIZE]{};ChildInfo child{};child.age = i;std::string name = "LiMei_" + std::to_string(i);    // 给结构体赋值memcpy(child.name, name.c_str(), sizeof(name));child.weight = (double)(i + 10) / 2;memcpy(write_data, &child, sizeof(child));result = RFM2gWrite(hd, OFFSET_0 + i * sizeof(child), (void*)write_data, sizeof(write_data));    // 写入数据if (result != RFM2G_SUCCESS){std::cout << "数据写入失败!错误代码: " << result << std::endl;return false;}std::cout << "数据写入成功!" << std::endl;}return true;
}

图3:

写入的时候每条数据的偏移量都会增加 i * sizeof(child) 的值是为了不覆盖上一条数据,所以要空出每条数据的长度。

读取结构体数据,结果如图4:

bool ReadStructData(RFM2GHANDLE hd)
{RFM2G_STATUS result;for (int i = 0; i < 5; i++){ChildInfo child;char read_data[BUFFER_SIZE]{ 0 };    // 存储读取结果result = RFM2gRead(hd, OFFSET_0 + i * sizeof(child), (void*)read_data, sizeof(read_data));    // 读取数据if (result != RFM2G_SUCCESS){std::cout << "数据读取失败!错误代码: " << result << std::endl;return false;}else{memcpy(&child, read_data, sizeof(ChildInfo));std::cout << "age: " << child.age << "  name: " << child.name << "  weight: " << child.weight << std::endl;}}return true;
}

图4:

有问题欢迎指正~

完整代码链接:

RFM反射内存卡读写数据测试-c++-C++文档类资源-CSDN文库

反射内存卡读写测试(RFM2gRead和RFM2gWrite)-- C++相关推荐

  1. 反射内存卡学习及使用---rfm2g驱动安装

    目录 反射内存卡简介 一.测试环境搭建 二.rfm2g驱动安装 1.下载官方驱动 2.安装驱动 3.测试 反射内存卡简介 什么是反射内存卡?反射内存卡(RMN Reflective Memory Ne ...

  2. 一种基于PCI总线的反射内存卡设计

    一种基于PCI总线的反射内存卡设计 摘要: 对实时传输, 传统的以太网络由于传输协议开销的不确定性, 很难满足实时网络的要求, 实时网络是一种应用于高实时性要求的专用网络通信技术, 一般采用基于高速网 ...

  3. linux美国GE公司扫描机器,美国GE 反射内存卡

    一.概述: 美国GE 反射内存卡 二.详细说明: PCI5565 PCI-5565 PMC5565 VMIC5565 反射内存 反射内存卡 GE反射内存 反射内存主要特性: 1. 板载128Mbyte ...

  4. 在实现反射内存卡驱动程序DMA完成中断死机蓝屏纠结N天的一个低级BUG

    本人负责软件从应用层一直到驱动层的全部研发任务,通过对GE产品的公开的资料反复研究,一共近70个函数接口,现在都搞明白了,由于GE产品光盘手册开源了Linux和VxWorks平台的全部软件代码,唯独不 ...

  5. 反射内存 延时_一种基于反射内存卡的OpenDDS分布式通信方法与流程

    本发明属于分布式通信技术领域,尤其涉及一种基于反射内存卡的OpenDDS分布式通信方法. 背景技术: 随着分布式系统复杂程度的不断增加和研发规模的迅速扩大,系统集成的难度和风险都在大幅提高.提供实时系 ...

  6. PCI5565 PCI-5565 PMC5565 VMIC5565 反射内存 反射内存卡 GE反射内存

     板载128Mbyte内存  网络传输高速,实时,确定  高速光纤网络波特率可达2.125G  低延迟率:节点间百纳秒级延迟  数据可以在256个独立系统(节点)间共享  与操作系统,处理 ...

  7. 读写测试_UFS3.0手机闪存测试曝光 读写速度足以秒杀超极本!

    [手机中国新闻]2018年1月31日,固态技术协会(JEDEC)正式发布了UFS 3.0标准.相较于目前旗舰手机中常用的UFS 2.1闪存,UFS 3.0引入了HS-G4规范,每通道传输数据速率高达1 ...

  8. hadoop 基准测试与读写测试

    2019独角兽企业重金招聘Python工程师标准>>> hadoop 基准测试与读写测试 排序100G数据 /opt/cloudera/parcels/CDH/bin/yarn ja ...

  9. matlab画扇区,NFCDemo NFC读写测试 ,自动读取每个扇区 块的值 matlab 238万源代码下载- www.pudn.com...

    文件名称: NFCDemo下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 66 KB 上传时间: 2013-12-13 下载次数: 24 提 供 者: wuze ...

最新文章

  1. 17、Kubernetes容器交付介绍
  2. JavaScript强化教程——对象的值传递和引用传递
  3. ubuntu下php服务器搭建_Ubuntu服务器下搭建php运行环境的方法
  4. 用Docker之后还需要OpenStack吗
  5. 六大Web负载均衡原理与实现
  6. 修改MONGODB 最大连接数
  7. Activity 中的Toast在Activity销毁后报错,解决方法,把context改成应用的
  8. vscode自动修复eslint规范的插件及配置
  9. 安全随笔2:对称加密应用场景
  10. 推荐一款配有强大数据管理和可视化ETL的BI工具
  11. GitHub 免费开放开发者计划,增加系列新优势
  12. 算法导论——lec 12 平摊分析与优先队列
  13. android使用zxing生成二维码及带logo的二维码
  14. 信息收集----谷歌语句
  15. 适合普通大学生的前端开发学习路线
  16. 苦心研究两周,我特么终于搞懂啥是「元宇宙」了
  17. 2021年美赛资料准备
  18. 冬训成果何在?林丹无缘新赛季首冠状态成迷
  19. 【读书笔记】《比基尼口才》文皙铉
  20. mac下 iterm+Zsh+Oh My Zsh+tmux 配置方案

热门文章

  1. Mysql项目 github_GitHub开源项目2018-09-11更新精选
  2. 廖雪峰历时3个月打磨出价值1980的数据分析教程,终终终于免费啦!
  3. Macbook M1安装OpenCV
  4. Android 开发飞机大战
  5. JStorm-介绍-阿云栖社区
  6. 考虑说话人信息的对话摘要
  7. 微信小程序入坑: 写一个简化版知乎日报
  8. 联想台式计算机出厂号在哪里,联想电脑怎么查看主机编号_联想电脑编号在哪里【图】...
  9. 企业微信群管理员可以踢人吗?企业微信群怎么自动踢人?
  10. 嵌入式51单片机03-数码管系列