Embedded_RingBuf_CPP 项目教程

Embedded_RingBuf_CPP 项目教程

Embedded_RingBuf_CPPA simple C++ Ring (Circular) Buffer Queuing Library for Programming with Arduino's and other Embedded platforms 项目地址:https://gitcode.com/gh_mirrors/em/Embedded_RingBuf_CPP

1. 项目的目录结构及介绍

Embedded_RingBuf_CPP/
├── examples/
│   ├── Interrupts/
│   ├── examples_no_arduino/
├── src/
│   ├── ringbuffer/
│   │   ├── cpp/
│   │   │   ├── ringbufferwrapper.h
├── LICENSE.txt
├── README.md
├── RingBufCPP.h
├── RingBufHelpers.h
├── keywords.txt
├── library.properties
  • examples/: 包含项目的示例代码,分为使用中断的示例 (Interrupts) 和不使用Arduino的示例 (examples_no_arduino)。
  • src/: 项目的源代码目录,包含C++实现的环形缓冲区 (ringbuffer/cpp/ringbufferwrapper.h)。
  • LICENSE.txt: 项目的许可证文件,采用MIT许可证。
  • README.md: 项目的说明文档。
  • RingBufCPP.h: 项目的主要头文件。
  • RingBufHelpers.h: 辅助功能的头文件。
  • keywords.txt: 关键词文件,用于Arduino IDE的语法高亮。
  • library.properties: 库的属性文件,用于Arduino库管理器。

2. 项目的启动文件介绍

项目的启动文件位于 src/ringbuffer/cpp/ringbufferwrapper.h。这个文件提供了C++类的封装,用于C实现的环形缓冲区。以下是启动文件的主要内容:

#include <ringbuffer/cpp/ringbufferwrapper.h>
#include <iostream>

#define ADD_SIZE 10

int main(int argc, char *argv[]) {
    std::cout << "Running Ring-Buffer wrapper main()\n";
    RingBufferWrapper ringBuffer(2048);
    if (!ringBuffer.isValid()) {
        std::cout << "Couldn't allocate the Ring Buffer\n";
        return -1;
    }

    uint8_t values[ADD_SIZE];
    for (int i = 0; i < ADD_SIZE; i++) {
        values[i] = i * 10;
    }

    uint32_t len = ringBuffer.appendMultiple(values, ADD_SIZE);
    std::cout << "Inserted: " << len << " Tried: " << ADD_SIZE << " Len Read: " << ringBuffer.length() << " Len Available: " << ringBuffer.freeSpace() << "\n";

    std::cout << "Array Values: ";
    while (!ringBuffer.empty()) {
        std::cout << (int)ringBuffer.getOne() << " ";
    }
    std::cout << "\n";

    std::cout << "Len Read: " << ringBuffer.length() << " Len Available: " << ringBuffer.freeSpace() << "\n";
    return 0;
}

3. 项目的配置文件介绍

项目的配置文件主要是 library.properties,这个文件用于Arduino库管理器。以下是配置文件的内容:

name=Embedded_RingBufCPP
version=1.0.0
author=wizard97
maintainer=wizard97
sentence=A simple ring (FIFO) buffer queuing library for embedded platforms such as Arduino's.
paragraph=This library is based on a previous one I wrote, only now in C++ instead of C.
category=Data Processing
url=https://github.com/wizard97/Embedded_RingBuf_CPP
architectures=*
  • name: 库的名称。
  • version: 库的版本号。
  • author: 库的作者。
  • maintainer: 库的维护者。
  • sentence: 库的简短描述。
  • paragraph: 库的详细描述。
  • category: 库的分类。
  • url: 库的GitHub地址。
  • architectures: 支持的架构。

Embedded_RingBuf_CPPA simple C++ Ring (Circular) Buffer Queuing Library for Programming with Arduino's and other Embedded platforms 项目地址:https://gitcode.com/gh_mirrors/em/Embedded_RingBuf_CPP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

富晓微Erik

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值