summaryrefslogtreecommitdiff
path: root/boards/ek-tm4c1294xl/drivers/exosite_hal_lwip.h
blob: 87f5759657e9b9aac0eec1097152c2be3f612231 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
//*****************************************************************************
//
// exosite_hal_lwip.h - Abstraction layer between Excosite and eth_client_lwip.
//
// Copyright (c) 2013-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 EK-TM4C1294XL Firmware Package.
//
//*****************************************************************************

#ifndef EXOSITE_HAL_LWIP_H
#define EXOSITE_HAL_LWIP_H

#include <stdint.h>
#include <stdbool.h>

//*****************************************************************************
//
// If building with a C++ compiler, make all of the definitions in this header
// have a C binding.
//
//*****************************************************************************
#ifdef __cplusplus
extern "C"
{
#endif

//*****************************************************************************
//
// Proxy Config.
//
//*****************************************************************************
extern bool g_bUseProxy;
extern char g_pcProxyAddress[50];
extern uint16_t g_ui16ProxyPort;

//*****************************************************************************
//
// Exosite Config.
//
//*****************************************************************************
#define EXOSITE_ADDRESS         "m2.exosite.com"
#define EXOSITE_PORT            80

//*****************************************************************************
//
// Meta Structure.
//
//*****************************************************************************
#define EXOMETA_ADDR_OFFSET                  0

//*****************************************************************************
//
// Maximum length for the serial number.
//
//*****************************************************************************
#define EXOSITE_HAL_SN_MAXLENGTH             25

//*****************************************************************************
//
// Maximum size for the circular receive buffer.
//
//*****************************************************************************
#define RECEIVE_BUFFER_SIZE                 1024

//*****************************************************************************
//
// EEPROM status.
//
//*****************************************************************************
#define EEPROM_INITALIZED                   1
#define EEPROM_IDLE                         2
#define EEPROM_READING                      3
#define EEPROM_WRITING                      4
#define EEPROM_ERASING                      5
#define EEPROM_ERROR                        6

//*****************************************************************************
//
// Flag indexes for g_sExosite.ui32Flags
//
//*****************************************************************************
#define FLAG_ENET_INIT          0
#define FLAG_CONNECTED          1
#define FLAG_DNS_INIT           2
#define FLAG_PROXY_SET          3
#define FLAG_BUSY               4
#define FLAG_SENT               5
#define FLAG_RECEIVED           6
#define FLAG_CONNECT_WAIT       7

//*****************************************************************************
//
// Prototypes.
//
//*****************************************************************************
typedef void (* tExositeEventHandler)(uint32_t ui32Event, void* pvData1,
                                      uint16_t ui16Size1, void* pvData2,
                                      uint16_t ui16Size2);

int exoHAL_ReadUUID(unsigned char ucIfNbr, unsigned char * pucUUIDBuf);
void exoHAL_EnableMeta(void);
void exoHAL_EraseMeta(void);
void exoHAL_WriteMetaItem(unsigned char * pucBuffer, int iLength, int iOffset);
void exoHAL_ReadMetaItem(unsigned char * pucBuffer, int iLength, int iOffset);
void exoHAL_SocketClose(long ulSocket);
long exoHAL_SocketOpenTCP(unsigned char *pucServer);
long exoHAL_ServerConnect(long ulSocket);
unsigned char exoHAL_SocketSend(long lSocket, char * pcBuffer, int iLength);
unsigned char exoHAL_SocketRecv(long lSocket, char * pcBuffer, int iLength);
void exoHAL_MSDelay(unsigned short usDelay);
void exoHAL_Tick(unsigned long ulDelay);

//*****************************************************************************
//
// Mark the end of the C bindings section for C++ compilers.
//
//*****************************************************************************
#ifdef __cplusplus
}
#endif

#endif //EXOSITE_HAL_LWIP_H