123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #ifndef __SER_BRIDGE_H__
- #define __SER_BRIDGE_H__
- #include <ip_addr.h>
- #include <c_types.h>
- #include <espconn.h>
- #define MAX_CONN 4
- #define SER_BRIDGE_TIMEOUT 300 // 300 seconds = 5 minutes
- // Send buffer size
- #define MAX_TXBUFFER (2*1460)
- enum connModes {
- cmInit = 0, // initialization mode: nothing received yet
- cmPGMInit, // initialization mode for programming
- cmTransparent, // transparent mode
- cmPGM, // Arduino/AVR/ARM programming mode
- cmTelnet, // use telnet escape sequences for programming mode
- };
- typedef struct serbridgeConnData {
- struct espconn *conn;
- enum connModes conn_mode; // connection mode
- uint8_t telnet_state;
- uint16 txbufferlen; // length of data in txbuffer
- char *txbuffer; // buffer for the data to send
- char *sentbuffer; // buffer sent, awaiting callback to get freed
- uint32_t txoverflow_at; // when the transmitter started to overflow
- bool readytosend; // true, if txbuffer can be sent by espconn_sent
- } serbridgeConnData;
- // port1 is transparent&programming, second port is programming only
- void ICACHE_FLASH_ATTR serbridgeInit(int port1, int port2);
- void ICACHE_FLASH_ATTR serbridgeInitPins(void);
- void ICACHE_FLASH_ATTR serbridgeUartCb(char *buf, short len);
- void ICACHE_FLASH_ATTR serbridgeReset();
- int ICACHE_FLASH_ATTR serbridgeInMCUFlashing();
- // callback when receiving UART chars when in programming mode
- extern void (*programmingCB)(char *buffer, short length);
- #endif /* __SER_BRIDGE_H__ */
|