arduino / arduino/ArduinoCore-API

Suggest adding I2C_writeAnything to Wire library

Abierto
#62 7 comentarios 1 reacción 1 asignado Reclamado por @cmaglie Ver en GitHub
enhancement
Lenguaje dominante
C++
Estrellas
306
Forks
150
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

I have the following small template library on my page about I2C ( http://www.gammon.com.au/i2c ):

``` C++
template unsigned int I2C_writeAnything (const T& value)
{
Wire.write((byte *) &value, sizeof (value));
return sizeof (value);
} // end of I2C_writeAnything

template unsigned int I2C_readAnything(T& value)
{
byte * p = (byte*) &value;
unsigned int i;
for (i = 0; i < sizeof value; i++)
*p++ = Wire.read();
return i;
} // end of I2C_readAnything
```

It has been suggested to me that I request that you include this in the standard Wire library (Wire.h). This lets you more easily send things like floats or structs via I2C. For example:

``` C++
float fnum = 42.666;
Wire.beginTransmission (SLAVE_ADDRESS);
I2C_writeAnything (fnum);
Wire.endTransmission ();
```

Being a template function it won't add any bloat unless you actually use it.

Related request: https://github.com/arduino/Arduino/issues/3692

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.