usb_cables: add function to get connector from pin

This commit is contained in:
King Kévin 2019-12-13 14:45:14 +01:00
parent 43046dee48
commit fc6a7a6d3d
2 changed files with 25 additions and 0 deletions

View File

@ -4541,6 +4541,26 @@ void usb_cables_connectors_float(const struct usb_connector_t** connectors, uint
}
}
const struct usb_connector_t* usb_cables_get_connector(uint8_t pin)
{
if (pin >= LENGTH(usb_pins)) { // verify input parameter
return NULL;
}
for (uint8_t connector_i = 0; connector_i < LENGTH(usb_connectors); connector_i++) { // go though every connector
const struct usb_connector_t* connector = usb_connectors[connector_i]; // get connector
if (NULL == connector) { // verify connector
continue;
}
for (uint8_t pin_i = 0; pin_i < connector->pins_nb; pin_i++) { // check every pin of connector
if (connector->pins[pin_i] == pin) { // the connector pin against provided pin
return connector;
}
}
}
return NULL;
}
uint8_t usb_cables_check_pins(const struct usb_pin_t* pin1, const struct usb_pin_t* pin2)
{
cm3_assert(pin1 && pin2);

View File

@ -82,6 +82,11 @@ void usb_cables_connector_float(const struct usb_connector_t* connector);
* @param[in] connectors_nb numbers of connectors
*/
void usb_cables_connectors_float(const struct usb_connector_t** connectors, uint8_t connectors_nb);
/** get connector from pin
* @param[in] pin pin index in usb_pins
* @return corresponding connector (NULL if none found)
*/
const struct usb_connector_t* usb_cables_get_connector(uint8_t pin);
/** test if two pins are connected
* @param[in] pin1 first pin
* @param[in] pin2 second pin