diff options
| author | Yuval Adam <yuval@y3xz.com> | 2015-03-13 12:24:52 +0200 |
|---|---|---|
| committer | Yuval Adam <yuval@y3xz.com> | 2015-03-13 12:24:52 +0200 |
| commit | 4085ae3ddfbbf10c8ccbd3dccd43452c40a1fe40 (patch) | |
| tree | ac63581949a49511136e7e9e47d265bfb4119b26 /nfclib/snep.h | |
| parent | 788db64b8642bf31de6930d18a62177c64163ee0 (diff) | |
Add bootloader, nfclib and sensorlib
Diffstat (limited to 'nfclib/snep.h')
| -rw-r--r-- | nfclib/snep.h | 206 |
1 files changed, 206 insertions, 0 deletions
diff --git a/nfclib/snep.h b/nfclib/snep.h new file mode 100644 index 0000000..561c688 --- /dev/null +++ b/nfclib/snep.h @@ -0,0 +1,206 @@ +//*****************************************************************************
+//
+// snep.h - Simple NDEF Exchange Protocol deffinitions
+//
+// Copyright (c) 2014 Texas Instruments Incorporated. All rights reserved.
+// Software License Agreement
+//
+// Texas Instruments (TI) is supplying this software for use solely and
+// exclusively on TI's microcontroller products. The software is owned by
+// TI and/or its suppliers, and is protected under applicable copyright
+// laws. You may not combine this software with "viral" open-source
+// software in order to form a larger program.
+//
+// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
+// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
+// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
+// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
+// DAMAGES, FOR ANY REASON WHATSOEVER.
+//
+// This is part of revision 2.1.0.12573 of the Tiva Firmware Development Package.
+//
+//*****************************************************************************
+#ifndef __NFC_SNEP_H__
+#define __NFC_SNEP_H__
+
+#include "types.h"
+
+//*****************************************************************************
+//
+//! \addtogroup nfc_snep_api NFC SNEP API Functions
+//! @{
+//
+//*****************************************************************************
+
+//*****************************************************************************
+//
+// This size is used to limit the maximum size of the incoming NDEF message.
+// The maximum is dependent on the Maximum Information Units (MIU) defined in
+// the LLCP layer.
+// For example for MIU = 248, SNEP_MAX_BUFFER = 248
+//
+//*****************************************************************************
+//
+//! This is the maximum size of a fragment that is sent/received.
+//
+#define SNEP_MAX_BUFFER 248
+
+//
+//! Maximum size of the incoming payload.
+//
+#define SNEP_MAX_PAYLOAD 20000
+
+//
+//! Simple NDEF protocol version specified in the specification.
+//
+#define SNEP_VERSION 0x10
+
+//*****************************************************************************
+//
+// List of SNEP Commands
+//
+//*****************************************************************************
+
+//*****************************************************************************
+//
+//! SNEPCommand request / responses enumeration.
+//
+//*****************************************************************************
+typedef enum
+{
+ //
+ // SNEP request field value
+ //
+
+ //! See SNEP V1.0 Section 4.1
+ SNEP_REQUEST_CONTINUE = 0x00,
+
+ //! See SNEP V1.0 Section 4.2
+ SNEP_REQUEST_GET = 0x01,
+
+ //! See SNEP V1.0 Section 4.3
+ SNEP_REQUEST_PUT = 0x02,
+ // 03h-7Eh Reserved for future use
+
+ //! See SNEP V1.0 Section 4.4
+ SNEP_REQUEST_REJECT = 0x7F,
+ // 80h-FFh Reserved for response field values
+
+ //
+ // See SNEP Response Field Values
+ //
+ // 00h-7Fh Reserved for request field values
+
+ //! See SNEP V1.0 Section 5.1
+ SNEP_RESPONSE_CONTINUE = 0x80,
+
+ //! See SNEP V1.0 Section 5.2
+ SNEP_RESPONSE_SUCCESS = 0x81,
+
+ //! See SNEP V1.0 Section 5.3
+ SNEP_RESPONSE_NOT_FOUND = 0xC0,
+
+ //! See SNEP V1.0 Section 5.4
+ SNEP_RESPONSE_EXCESS_DATA = 0xC1,
+
+ //! See SNEP V1.0 Section 5.5
+ SNEP_RESPONSE_BAD_REQUEST = 0xC2,
+
+ //! See SNEP V1.0 Section 5.6
+ SNEP_RESPONSE_NOT_IMPLEMENTED = 0xE0,
+
+ //! See SNEP V1.0 Section 5.7
+ SNEP_RESPONSE_UNSUPPORTED_VER = 0xE1,
+
+ //! See SNEP V1.0 Section 5.8
+ SNEP_RESPONSE_REJECT = 0xFF
+}tSNEPCommands;
+
+//*****************************************************************************
+//
+//! SNEP Connection Status Enumeration.
+//
+//*****************************************************************************
+typedef enum
+{
+ //! No ongoing transaction to/from the client
+ SNEP_CONNECTION_IDLE = 0x00,
+
+ //! Wrong version received
+ SNEP_WRONG_VERSION_RECEIVED,
+
+ //! Received first fragment
+ SNEP_CONNECTION_RECEIVED_FIRST_PACKET,
+
+ //! Received n fragment
+ SNEP_CONNECTION_RECEIVING_N_FRAGMENTS,
+
+ //! Waiting for continue response
+ SNEP_CONNECTION_WAITING_FOR_CONTINUE,
+
+ //! Waiting for success response
+ SNEP_CONNECTION_WAITING_FOR_SUCCESS,
+
+ //! Sending n fragment
+ SNEP_CONNECTION_SENDING_N_FRAGMENTS,
+
+ //! Send completed
+ SNEP_CONNECTION_SEND_COMPLETE,
+
+ //! Receive completed
+ SNEP_CONNECTION_RECEIVE_COMPLETE,
+
+ //! Received excess size request.
+ SNEP_CONNECTION_EXCESS_SIZE
+}tSNEPConnectionStatus;
+
+//*****************************************************************************
+//
+//! RX packet status enumeration.
+//
+//*****************************************************************************
+typedef enum
+{
+ //
+ //! No pending received data
+ //
+ RECEIVED_NO_FRAGMENT = 0,
+
+ //
+ //! First fragment received from the client
+ //
+ RECEIVED_FIRST_FRAGMENT,
+
+ //
+ //! N fragment received from the client
+ RECEIVED_N_FRAGMENT,
+
+ //! Last fragment received from the client - packet completed
+ RECEIVED_FRAGMENT_COMPLETED
+}tPacketStatus;
+
+//*****************************************************************************
+//
+// Function Prototypes
+//
+//*****************************************************************************
+void SNEP_init(void);
+void SNEP_setMaxPayload(uint8_t ui8MaxPayload);
+tStatus SNEP_setupPacket(uint8_t * pui8PacketPtr, uint32_t ui32PacketLength);
+uint8_t SNEP_sendRequest(uint8_t * pui8DataPtr, tSNEPCommands eRequestCmd);
+uint8_t SNEP_sendResponse(uint8_t * pui8DataPtr, tSNEPCommands eResponseCmd);
+void SNEP_processReceivedData(uint8_t * pui8RxBuffer, uint8_t ui8RxLength);
+void SNEP_getReceiveStatus(tPacketStatus * peReceiveFlag, uint8_t * length,
+ uint8_t ** pui8DataPtr);
+tSNEPConnectionStatus SNEP_getProtocolStatus(void);
+void SNEP_setProtocolStatus(tSNEPConnectionStatus eProtocolStatus);
+
+//*****************************************************************************
+//
+// Close the Doxygen group.
+//! @}
+//
+//*****************************************************************************
+
+#endif // __NFC_SNEP_H__
|
