aboutsummaryrefslogtreecommitdiff
path: root/firmwares/wifishield/wifiHD/src/ard_utils.h
diff options
context:
space:
mode:
authorCristian Maglie <c.maglie@bug.st>2013-03-28 12:27:11 +0100
committerCristian Maglie <c.maglie@bug.st>2013-03-28 12:27:11 +0100
commitc6dcde62afdfa6b90d7427fa1e6ecbac51c35a05 (patch)
tree372eec1b28967be869e8f3b9dcfd305d0bfc80b2 /firmwares/wifishield/wifiHD/src/ard_utils.h
parentf567db75733f539bf064b7ca639f52e823823c06 (diff)
parent802eaa96c74918255dcca264e9f0ca39885d1090 (diff)
Merge branch 'wifishield-bugfix'
Diffstat (limited to 'firmwares/wifishield/wifiHD/src/ard_utils.h')
-rw-r--r--firmwares/wifishield/wifiHD/src/ard_utils.h58
1 files changed, 43 insertions, 15 deletions
diff --git a/firmwares/wifishield/wifiHD/src/ard_utils.h b/firmwares/wifishield/wifiHD/src/ard_utils.h
index 4b31c46..323b328 100644
--- a/firmwares/wifishield/wifiHD/src/ard_utils.h
+++ b/firmwares/wifishield/wifiHD/src/ard_utils.h
@@ -36,9 +36,12 @@
#define SIGN2_DN LED2_DN
#define SIGN2_TL LED2_TL
-#define DEB_PIN_UP() gpio_set_gpio_pin(DEB_PIN_GPIO)
-#define DEB_PIN_DN() gpio_clr_gpio_pin(DEB_PIN_GPIO)
-#define DEB_PIN_ENA() gpio_enable_gpio_pin(DEB_PIN_GPIO);
+#define DEB_PIN_UP(X) gpio_set_gpio_pin(DEB##X##_PIN_GPIO)
+#define DEB_PIN_DN(X) gpio_clr_gpio_pin(DEB##X##_PIN_GPIO)
+#define DEB_PIN_ENA(X) gpio_enable_gpio_pin(DEB##X##_PIN_GPIO)
+#define DEB_PIN_TOGGLE(X) gpio_tgl_gpio_pin(DEB##X##_PIN_GPIO)
+#define DEB_PIN_TRIGGER(X) DEB_PIN_DN(X); DEB_PIN_UP(X);
+
#else
#define SIGN0_UP()
@@ -51,9 +54,11 @@
#define SIGN2_DN()
#define SIGN2_TL()
-#define DEB_PIN_UP()
-#define DEB_PIN_DN()
-#define DEB_PIN_ENA()
+#define DEB_PIN_UP(X)
+#define DEB_PIN_DN(X)
+#define DEB_PIN_ENA(X)
+#define DEB_PIN_TOGGLE(X)
+#define DEB_PIN_TRIGGER(X)
//#define TOGGLE_SIG0
#endif
@@ -119,8 +124,16 @@
#define PUT_DATA_INT(INT, BYTE, IDX) { \
- uint16_t _int = INT; \
- BYTE[IDX] = (uint8_t)((_int & 0xff00)>>8); \
+ uint16_t _int = INT; \
+ BYTE[IDX] = 2; \
+ BYTE[IDX+1] = (uint8_t)((_int & 0xff00)>>8); \
+ BYTE[IDX+2] = (uint8_t)(_int & 0xff); \
+}
+
+#define PUT_DATA_INT_NO(INT, BYTE, IDX) { \
+ uint16_t _int = INT; \
+ BYTE[IDX] = 2; \
+ BYTE[IDX+2] = (uint8_t)((_int & 0xff00)>>8); \
BYTE[IDX+1] = (uint8_t)(_int & 0xff); \
}
@@ -201,7 +214,7 @@
#define STATSPI_TIMEOUT_ERROR() \
statSpi.timeoutIntErr++; \
statSpi.rxErr++; \
- statSpi.lastError = err; \
+ statSpi.lastError = SPI_TIMEOUT_ERROR; \
statSpi.status = spi_getStatus(ARD_SPI);
#define STATSPI_DISALIGN_ERROR() \
@@ -228,11 +241,16 @@
#define STATSPI_OVERRIDE_ERROR()
#endif
-#define DUMP_TCP_STATE(TTCP) \
- INFO_TCP("ttcp:%p tpcb:%p state:%d lpcb:%p state:%d\n", \
- TTCP, TTCP->tpcb, (TTCP->tpcb)?TTCP->tpcb->state:0, \
- TTCP->lpcb, (TTCP->lpcb)?TTCP->lpcb->state:0);
-
+#define DUMP_TCP_STATE(TTCP) do {\
+ int i = getCurrClientConnId(); \
+ INFO_TCP("%d] ttcp:%p tpcb:%p state:%d lpcb:%p state:%d left:%d sent:%d\n", \
+ i, TTCP, TTCP->tpcb[i], (TTCP->tpcb[i])?TTCP->tpcb[i]->state:0, \
+ TTCP->lpcb, (TTCP->lpcb)?TTCP->lpcb->state:0, \
+ (TTCP->tpcb[i])?TTCP->left[i]:0, (TTCP->tpcb[i])?TTCP->buff_sent[i]:0); \
+ } while(0);
+
+#define Mode2Str(_Mode) ((_Mode==0)?"TRANSMIT":"RECEIVE")
+#define ProtMode2Str(_protMode) ((_protMode==0)?"TCP":"UDP")
typedef struct sData
{
@@ -246,7 +264,13 @@ struct pbuf;
void init_pBuf();
-void insert_pBuf(struct pbuf* q, uint8_t sock, void* _pcb);
+uint8_t* insert_pBuf(struct pbuf* q, uint8_t sock, void* _pcb);
+
+uint8_t* insertBuf(uint8_t sock, uint8_t* buf, uint16_t len);
+
+uint8_t* mergeBuf(uint8_t sock, uint8_t** buf, uint16_t* _len);
+
+uint16_t clearBuf(uint8_t sock);
tData* get_pBuf(uint8_t sock);
@@ -260,8 +284,12 @@ bool getTcpData(uint8_t sock, void** payload, uint16_t* len);
bool getTcpDataByte(uint8_t sock, uint8_t* payload, uint8_t peek);
+uint16_t getAvailTcpDataByte(uint8_t sock);
+
bool isAvailTcpDataByte(uint8_t sock);
uint8_t freeTcpData(uint8_t sock);
+void freeAllTcpData(uint8_t sock);
+
#endif /* ARD_UTILS_H_ */