More cleanup of my mess

pull/206/merge^2
dannybackx 8 years ago
parent 416538ff39
commit 31b84e695c
  1. 9
      Makefile
  2. 55
      serial/serbridge.c
  3. 3
      serial/serbridge.h

@ -99,15 +99,6 @@ MCU_ISP_PIN ?= 13
LED_CONN_PIN ?= 0 LED_CONN_PIN ?= 0
# GPIO pin used for "serial activity" LED, active low # GPIO pin used for "serial activity" LED, active low
LED_SERIAL_PIN ?= 14 LED_SERIAL_PIN ?= 14
#
# Default settings for access over TCP/IP connections
#
# Modes are 0 (unsecure), 1 (disabled), 2 (secure)
#
PORT1_MODE ?= 0
PORT1_PORTNUMBER ?= 23
PORT2_MODE ?= 0
PORT2_PORTNUMBER ?= 2323
# --------------- esp-link modules config options --------------- # --------------- esp-link modules config options ---------------

@ -16,8 +16,9 @@
#define syslog(X1...) #define syslog(X1...)
#endif #endif
static struct espconn serbridgeConn[2]; // plain bridging port static struct espconn serbridgeConn1; // plain bridging port
static esp_tcp serbridgeTcp[2]; static struct espconn serbridgeConn2; // programming port
static esp_tcp serbridgeTcp1, serbridgeTcp2;
static int8_t mcu_reset_pin, mcu_isp_pin; static int8_t mcu_reset_pin, mcu_isp_pin;
uint8_t in_mcu_flashing; // for disabling slip during MCU flashing uint8_t in_mcu_flashing; // for disabling slip during MCU flashing
@ -420,7 +421,7 @@ serbridgeConnectCb(void *arg)
connData[i].readytosend = true; connData[i].readytosend = true;
connData[i].conn_mode = cmInit; connData[i].conn_mode = cmInit;
// if it's the second port we start out in programming mode // if it's the second port we start out in programming mode
if (conn->proto.tcp->local_port == serbridgeConn[1].proto.tcp->local_port) if (conn->proto.tcp->local_port == serbridgeConn2.proto.tcp->local_port)
connData[i].conn_mode = cmPGMInit; connData[i].conn_mode = cmPGMInit;
espconn_regist_recvcb(conn, serbridgeRecvCb); espconn_regist_recvcb(conn, serbridgeRecvCb);
@ -469,33 +470,35 @@ serbridgeInitPins()
// Start transparent serial bridge TCP server on specified port (typ. 23) // Start transparent serial bridge TCP server on specified port (typ. 23)
void ICACHE_FLASH_ATTR void ICACHE_FLASH_ATTR
serbridgeInit() serbridgeInit(int port1, int port2)
{ {
serbridgeInitPins(); serbridgeInitPins();
os_memset(connData, 0, sizeof(connData)); os_memset(connData, 0, sizeof(connData));
os_memset(&serbridgeTcp[0], 0, sizeof(serbridgeTcp[0])); os_memset(&serbridgeTcp1, 0, sizeof(serbridgeTcp1));
os_memset(&serbridgeTcp[1], 0, sizeof(serbridgeTcp[1])); os_memset(&serbridgeTcp2, 0, sizeof(serbridgeTcp2));
}
// set-up the primary port for plain bridging
// Start transparent serial bridge TCP server on specified port (typ. 23) serbridgeConn1.type = ESPCONN_TCP;
void ICACHE_FLASH_ATTR serbridgeConn1.state = ESPCONN_NONE;
serbridgeStart(int ix, int port, int mode) serbridgeTcp1.local_port = port1;
{ serbridgeConn1.proto.tcp = &serbridgeTcp1;
if (ix < 0 || ix > 2) // FIXME hardcoded limit
return; espconn_regist_connectcb(&serbridgeConn1, serbridgeConnectCb);
if (0 < port && port < 65536) { espconn_accept(&serbridgeConn1);
// set-up the primary port for plain bridging espconn_tcp_set_max_con_allow(&serbridgeConn1, MAX_CONN);
serbridgeConn[ix].type = ESPCONN_TCP; espconn_regist_time(&serbridgeConn1, SER_BRIDGE_TIMEOUT, 0);
serbridgeConn[ix].state = ESPCONN_NONE;
serbridgeTcp[ix].local_port = port; // set-up the secondary port for programming
serbridgeConn[ix].proto.tcp = &serbridgeTcp[ix]; serbridgeConn2.type = ESPCONN_TCP;
serbridgeConn2.state = ESPCONN_NONE;
espconn_regist_connectcb(&serbridgeConn[ix], serbridgeConnectCb); serbridgeTcp2.local_port = port2;
espconn_accept(&serbridgeConn[ix]); serbridgeConn2.proto.tcp = &serbridgeTcp2;
espconn_tcp_set_max_con_allow(&serbridgeConn[ix], MAX_CONN);
espconn_regist_time(&serbridgeConn[ix], SER_BRIDGE_TIMEOUT, 0); espconn_regist_connectcb(&serbridgeConn2, serbridgeConnectCb);
} espconn_accept(&serbridgeConn2);
espconn_tcp_set_max_con_allow(&serbridgeConn2, MAX_CONN);
espconn_regist_time(&serbridgeConn2, SER_BRIDGE_TIMEOUT, 0);
} }
int ICACHE_FLASH_ATTR serbridgeInMCUFlashing() int ICACHE_FLASH_ATTR serbridgeInMCUFlashing()

@ -31,8 +31,7 @@ typedef struct serbridgeConnData {
} serbridgeConnData; } serbridgeConnData;
// port1 is transparent&programming, second port is programming only // port1 is transparent&programming, second port is programming only
void ICACHE_FLASH_ATTR serbridgeInit(); void ICACHE_FLASH_ATTR serbridgeInit(int port1, int port2);
void ICACHE_FLASH_ATTR serbridgeStart(int ix, int port, int mode);
void ICACHE_FLASH_ATTR serbridgeInitPins(void); void ICACHE_FLASH_ATTR serbridgeInitPins(void);
void ICACHE_FLASH_ATTR serbridgeUartCb(char *buf, short len); void ICACHE_FLASH_ATTR serbridgeUartCb(char *buf, short len);
void ICACHE_FLASH_ATTR serbridgeReset(); void ICACHE_FLASH_ATTR serbridgeReset();

Loading…
Cancel
Save