Giter Site home page Giter Site logo

arpinerap / arduino-easycomma Goto Github PK

View Code? Open in Web Editor NEW

This project forked from luisllamasbinaburo/arduino-easycomma

0.0 2.0 0.0 9 KB

Librería de Arduino para recibir arrays de enteros separados por coma u otro separador

Home Page: https://www.luisllamas.es/libreria-arduino-easycomma/

License: Apache License 2.0

C++ 100.00%

arduino-easycomma's Introduction

Librería Arduino EasyComma

Librería para Arduino para leer de forma sencilla una serie de enteros enviados por el puerto de serie. Es una forma fácil de comunicarnos con nuestro proyecto, sobre todo en desarrollos sencillos o en primeras etapas. En desarrollos más avanzados, en general, preferiremos el envío directo de bytes como la librería ComCenter

Más información https://www.luisllamas.es/libreria-arduino-easycomma/

Instrucciones de uso

Un objeto EasyComma se inicializa indicando su capacidad, que es el número máximo de enteros que puede almacenar el objeto. Para recibir datos empleamos el método Recieve(), que llamaremos frecuentemente en el bucle de control.

Durante la recepción, EasyComma comprueba si existen datos por recibir. Si es así, los procesa, y almacena los valores recibidos en el array de enteros interno. Por defecto, el separador entre enteros es la coma (',') y el separador entre grupos de enteros el salto de línea ('\n'), aunque podemos cambiarlos por cualquier otro carácter.

Cuando la recepción de un paquete se termina, se ejecuta la acción de callback que pasamos a la función Recieve(). Esto permite liberar al bucle principal de las funciones.

En caso de recibir más enteros que la capacidad con la que hemos creado EasyComma, se vuelve a escribir el array desde su principio, de forma similar a un buffer circular. De esta forma, los datos almacenados en EasyComma son siempre los últimos N valores recibidos.

La clase EasyComma disponer de los métodos Count() que devuelve el número de valores recibidos en el último paquete de enteros, y LastIndex() que devuelve la última posición en la que se ha escrito, empleado cuando tenemos desbordamiento del array interno.

Constructor

EasyComma(size_t capacity);

Usar la librería

// Acceder a los elementos recibidos
int& operator[](const size_t index);
	
// Separador entre integer recibidos
char Separator = ',';

// Separador entre grupos recibidos
char EndSeparator = '\n';

// Obtiene la capacidad 
size_t Capacity();

// Obtiene la cantidad de objetos almacenados
size_t Count();

// Obtiene el indice del ultimo elemento almacenado
size_t LastIndex();

// Devuelve true si el número de elementos del último paquete es mayor que la capacidad
bool IsOverflow();

Ejemplos

La librería EasyComma incluye los siguientes ejemplos para ilustrar su uso.

  • EasyComma: Ejemplo general de uso de la clase EasyComma.
#include "EasyCommaLib.h"

EasyComma easyComma(4);

void setup() 
{
  Serial.begin(9600);
}

void loop() 
{
  easyComma.Recieve(
  []() {  
    auto servoNum = easyComma[0];
    auto delayMs = easyComma[1];
  });
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.