usb_cables: improve inter-connector test

This commit is contained in:
King Kévin 2019-12-08 14:55:05 +01:00
parent 9bcd7c94f0
commit 84c70a61d1
1 changed files with 5 additions and 1 deletions

View File

@ -1376,12 +1376,16 @@ void usb_cables_check_inter(const struct usb_connector_t** connectors, uint8_t c
}
usb_cables_connectors_float(connectors, connectors_nb); // ensure we start in a safe state
for (uint8_t connector_from = 0; connector_from < connectors_nb; connector_from++) { // test from every connector
for (uint8_t pin_from = 0; pin_from < connectors[connector_from]->pins_nb; pin_from++) { // test from every pin
for (uint8_t connector_to = 0; connector_to < connectors_nb; connector_to++) { // test to every connector (except itself)
for (uint8_t connector_to = connector_from + 1; connector_to < connectors_nb; connector_to++) { // test to every connector (except itself)
if (connector_to == connector_from) { // don't test the connector itself since we already did this test
continue;
}
if (connected && connected[connector_to]) { // we already found a connection to this connector
continue;
}
for (uint8_t pin_to = 0; pin_to < connectors[connector_to]->pins_nb; pin_to++) { // test to every pin
int8_t connections = usb_cables_check_pins(connectors[connector_from]->pins[pin_from].port, connectors[connector_from]->pins[pin_from].pin, connectors[connector_to]->pins[pin_to].port, connectors[connector_to]->pins[pin_to].pin);
if (connections > 0) {