Skip to content

Commit 2314cb5

Browse files
authored
Merge pull request #8 from bitcraze/evoggy/router-split-fixes
Fix length and last packet issue in router
2 parents d77b6db + 4f52117 commit 2314cb5

File tree

3 files changed

+5
-5
lines changed

3 files changed

+5
-5
lines changed

main/cpx.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ void cpxInitRoute(const CPXTarget_t source, const CPXTarget_t destination, const
44
route->source = source;
55
route->destination = destination;
66
route->function = function;
7-
route->lastPacket = true;
87
}
98

109
void cpxRouteToPacked(const CPXRouting_t* route, CPXRoutingPacked_t* packed) {

main/esp_transport.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,5 @@ void espTransportSend(const CPXRoutablePacket_t* packet) {
6666
void espTransportReceive(CPXRoutablePacket_t* packet) {
6767
esp_routable_packet_t* buf = packet;
6868
xQueueReceive(espTxQueue, buf, portMAX_DELAY);
69+
packet->route.lastPacket = true;
6970
}

main/router.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,19 +101,19 @@ static void route(Receiver_t receive, CPXRoutablePacket_t* rxp, RouteContext_t*
101101
switch (destination) {
102102
case CPX_T_GAP8:
103103
ESP_LOGD("ROUTER", "%s [0x%02X] -> GAP8 [0x%02X] (%u)", routerName, source, destination, cpxDataLength);
104-
splitAndSend(rxp, context, spi_transport_send, SPI_TRANSPORT_MTU);
104+
splitAndSend(rxp, context, spi_transport_send, SPI_TRANSPORT_MTU - CPX_ROUTING_PACKED_SIZE);
105105
break;
106106
case CPX_T_STM32:
107107
ESP_LOGD("ROUTER", "%s [0x%02X] -> STM32 [0x%02X] (%u)", routerName, source, destination, cpxDataLength);
108-
splitAndSend(rxp, context, uart_transport_send, UART_TRANSPORT_MTU);
108+
splitAndSend(rxp, context, uart_transport_send, UART_TRANSPORT_MTU - CPX_ROUTING_PACKED_SIZE);
109109
break;
110110
case CPX_T_ESP32:
111111
ESP_LOGD("ROUTER", "%s [0x%02X] -> ESP32 [0x%02X] (%u)", routerName, source, destination, cpxDataLength);
112-
splitAndSend(rxp, context, espTransportSend, ESP_TRANSPORT_MTU);
112+
splitAndSend(rxp, context, espTransportSend, ESP_TRANSPORT_MTU - CPX_ROUTING_PACKED_SIZE);
113113
break;
114114
case CPX_T_HOST:
115115
ESP_LOGD("ROUTER", "%s [0x%02X] -> HOST [0x%02X] (%u)", routerName, source, destination, cpxDataLength);
116-
splitAndSend(rxp, context, wifi_transport_send, WIFI_TRANSPORT_MTU);
116+
splitAndSend(rxp, context, wifi_transport_send, WIFI_TRANSPORT_MTU - CPX_ROUTING_PACKED_SIZE);
117117
break;
118118
default:
119119
ESP_LOGW("ROUTER", "Cannot route from %s [0x%02X] to [0x%02X]", routerName, source, destination);

0 commit comments

Comments
 (0)