mirror of
https://github.com/arduino/Arduino.git
synced 2024-11-30 11:24:12 +01:00
69 lines
1.9 KiB
C
Executable File
69 lines
1.9 KiB
C
Executable File
/*! \file edp.h \brief Emerald Data Protocol System. */
|
|
//*****************************************************************************
|
|
//
|
|
// File Name : 'edp.h'
|
|
// Title : Emerald Data Protocol System
|
|
// Author : Pascal Stang - Copyright (C) 2003
|
|
// Created : 2003.07.01
|
|
// Revised : 2003.07.21
|
|
// Version : 0.1
|
|
// Target MCU : Atmel AVR series
|
|
// Editor Tabs : 4
|
|
//
|
|
// This code is distributed under the GNU Public License
|
|
// which can be found at http://www.gnu.org/licenses/gpl.txt
|
|
//
|
|
//*****************************************************************************
|
|
|
|
#ifndef EDP_H
|
|
#define EDP_H
|
|
|
|
#include "edpdefs.h"
|
|
|
|
// defines
|
|
//#define EDP_DEBUG
|
|
// edp reply buffer size
|
|
#ifndef EDP_REPLY_BUFFER_SIZE
|
|
#define EDP_REPLY_BUFFER_SIZE 128
|
|
#endif
|
|
// edpSendCommand return values
|
|
#define EDP_COMMAND_OK 0
|
|
#define EDP_COMMAND_NODEV 1
|
|
// edpGetCommandReply return values
|
|
#define EDP_REPLY_OK 0
|
|
#define EDP_REPLY_BADCHKSUM 1
|
|
|
|
// structs and typedefs
|
|
typedef struct
|
|
{
|
|
u08 SrcAddr;
|
|
u08 Command;
|
|
u08 Data[];
|
|
} EdpCommand;
|
|
|
|
typedef struct
|
|
{
|
|
u08 Length;
|
|
u08 Data[];
|
|
} EdpReply;
|
|
|
|
// typedefs
|
|
typedef u08 (*EdpSlaveHandlerFuncType)(u08 edpCmdLength, EdpCommand* edpCmd,
|
|
u08 edpReplyLengthMax, EdpReply* edpReply);
|
|
|
|
// functions
|
|
void edpInit(void);
|
|
void edpSetSlaveHandler(EdpSlaveHandlerFuncType edpSlaveHandlerFunction);
|
|
|
|
// ************ EDP Master operations ************
|
|
u08 edpSendCommand(u08 deviceAddr, u08 cmdLength, EdpCommand* edpCommand);
|
|
u08 edpGetCommandReply(u08* responseCode, EdpReply** edpReply);
|
|
//u08 edpSendCommand(u08 deviceAddr, u08 sendLength, u08* sendData);
|
|
//u08 edpGetCommandReply(u08* responseCode, u08* replyLength, u08** replyData);
|
|
|
|
// ************ EDP Slave operations ************
|
|
void edpSlaveReceiveService(u08 receiveDataLength, u08* receiveData);
|
|
u08 edpSlaveTransmitService(u08 transmitDataLengthMax, u08* transmitData);
|
|
|
|
#endif
|