inicial
This commit is contained in:
38
include/I2C_COM_API.hpp
Normal file
38
include/I2C_COM_API.hpp
Normal file
@ -0,0 +1,38 @@
|
||||
// Comandos del cronómetro
|
||||
enum ChronoCommands
|
||||
{
|
||||
ForceStart = 0x01, // Forzar inicio
|
||||
ForceStop = 0x02, // Forzar detención
|
||||
ForceReset = 0x04 // Forcer reinicio del cronómetro
|
||||
};
|
||||
|
||||
// Modos de operación del dispositivo
|
||||
enum DeviceModes
|
||||
{
|
||||
CHRONO = 0x00 // Modo Cronómetro
|
||||
};
|
||||
|
||||
// Estructura para un comando de la API sin datos
|
||||
struct ChronoAPICommand
|
||||
{
|
||||
const static char type = 0xAA; // Cabecera de Comando
|
||||
ChronoCommands command; // Comando solicitado
|
||||
};
|
||||
|
||||
// Unión genérica para serializar y des-serializar tipos
|
||||
template <typename T>
|
||||
union buffer
|
||||
{
|
||||
T data;
|
||||
uint8_t buffer[sizeof(T)];
|
||||
};
|
||||
|
||||
// Función para enviar un buffer por I2C
|
||||
template <typename T>
|
||||
void SendBuffer(buffer<T> buffer)
|
||||
{
|
||||
Wire.flush();
|
||||
Wire.beginTransmission(0x26);
|
||||
Wire.write(buffer.buffer, sizeof(T));
|
||||
Wire.endTransmission();
|
||||
}
|
||||
Reference in New Issue
Block a user