Framework for reading and writing variables in real time on any MBED platform.

DistantIO

This is the C implementation of the DistantIO slave framework.

Library is working but slight API breaks may occur in the future. C++ version is also in development.

To get the master-side implementation, see https://github.com/Overdrivr/DistantIO

distantio.h

Committer:
Overdrivr
Date:
2015-09-15
Revision:
0:c4676d32d381
Child:
1:aaffeb93f99b

File content as of revision 0:c4676d32d381:

/*
 * distantio.h
 *
 *  Created on: Oct 13, 2014
 *      Author: B48923
 */

#ifndef DISTANTIO_H_
#define DISTANTIO_H_

#include <stdint.h>

#define PAYLOAD_SIZE 14
#define DATA_SIZE 8
#define VARIABLES_AMOUNT 256
#define GROUPS_AMOUNT 128

typedef enum dio_type dio_type;
enum dio_type
{
	dio_type_FLOAT = 0x00,
	dio_type_UINT8 = 0x01,
	dio_type_UINT16 = 0x02,
	dio_type_UINT32 = 0x03,
	dio_type_INT8 = 0x04,
	dio_type_INT16 = 0x05,
	dio_type_INT32 = 0x06,
};

typedef struct variable variable;
struct variable
{
	uint8_t* ptr;
	uint16_t size;
	uint8_t writeable;
	uint16_t id;
	dio_type type;
	char name[8];
	uint8_t send;
	uint8_t groupID;
};

typedef struct group group;
struct group
{
	char name[8];
	uint8_t groupID;
};

//typedef struct log log;
struct log
{
	variable variables[VARIABLES_AMOUNT];
	group groups[GROUPS_AMOUNT];
	uint16_t amount;
	uint8_t current_group_id;
};

void init_distantio();

uint8_t register_var(void* ptr, uint16_t size, dio_type type, uint8_t writeable, char* name);
void start_group(char* groupname);

void distantio_decode(uint8_t* data,uint16_t datasize);

// To call often
void send_variables();
void send_alive();

#endif /* DISTANTIO_H_ */