mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-27 02:06:27 +08:00
PX4 work queue: extend to UARTs
This commit is contained in:
@@ -66,9 +66,20 @@ static constexpr wq_config_t I2C4{"wq:I2C4", 1400, -12};
|
|||||||
|
|
||||||
static constexpr wq_config_t att_pos_ctrl{"wq:att_pos_ctrl", 6600, -11}; // PX4 att/pos controllers, highest priority after sensors
|
static constexpr wq_config_t att_pos_ctrl{"wq:att_pos_ctrl", 6600, -11}; // PX4 att/pos controllers, highest priority after sensors
|
||||||
|
|
||||||
|
static constexpr wq_config_t hp_default{"wq:hp_default", 1800, -12};
|
||||||
|
|
||||||
static constexpr wq_config_t uavcan{"uavcan", 2400, -13};
|
static constexpr wq_config_t uavcan{"uavcan", 2400, -13};
|
||||||
|
|
||||||
static constexpr wq_config_t hp_default{"wq:hp_default", 1800, -12};
|
static constexpr wq_config_t UART0{"wq:UART0", 1400, -14};
|
||||||
|
static constexpr wq_config_t UART1{"wq:UART1", 1400, -15};
|
||||||
|
static constexpr wq_config_t UART2{"wq:UART2", 1400, -16};
|
||||||
|
static constexpr wq_config_t UART3{"wq:UART3", 1400, -17};
|
||||||
|
static constexpr wq_config_t UART4{"wq:UART4", 1400, -18};
|
||||||
|
static constexpr wq_config_t UART5{"wq:UART5", 1400, -19};
|
||||||
|
static constexpr wq_config_t UART6{"wq:UART6", 1400, -20};
|
||||||
|
static constexpr wq_config_t UART7{"wq:UART7", 1400, -21};
|
||||||
|
static constexpr wq_config_t UART8{"wq:UART8", 1400, -22};
|
||||||
|
|
||||||
static constexpr wq_config_t lp_default{"wq:lp_default", 1700, -50};
|
static constexpr wq_config_t lp_default{"wq:lp_default", 1700, -50};
|
||||||
|
|
||||||
static constexpr wq_config_t test1{"wq:test1", 800, 0};
|
static constexpr wq_config_t test1{"wq:test1", 800, 0};
|
||||||
@@ -107,5 +118,13 @@ WorkQueue *WorkQueueFindOrCreate(const wq_config_t &new_wq);
|
|||||||
*/
|
*/
|
||||||
const wq_config_t &device_bus_to_wq(uint32_t device_id);
|
const wq_config_t &device_bus_to_wq(uint32_t device_id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Map a serial device path (eg /dev/ttyS1) to a work queue.
|
||||||
|
*
|
||||||
|
* @param device_id The device path.
|
||||||
|
* @return A work queue configuration.
|
||||||
|
*/
|
||||||
|
const wq_config_t &serial_port_to_wq(const char *serial);
|
||||||
|
|
||||||
|
|
||||||
} // namespace px4
|
} // namespace px4
|
||||||
|
|||||||
@@ -162,6 +162,45 @@ device_bus_to_wq(uint32_t device_id_int)
|
|||||||
return wq_configurations::hp_default;
|
return wq_configurations::hp_default;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const wq_config_t &
|
||||||
|
serial_port_to_wq(const char *serial)
|
||||||
|
{
|
||||||
|
if (serial == nullptr) {
|
||||||
|
return wq_configurations::hp_default;
|
||||||
|
|
||||||
|
} else if (strstr(serial, "ttyS0")) {
|
||||||
|
return wq_configurations::UART0;
|
||||||
|
|
||||||
|
} else if (strstr(serial, "ttyS1")) {
|
||||||
|
return wq_configurations::UART1;
|
||||||
|
|
||||||
|
} else if (strstr(serial, "ttyS2")) {
|
||||||
|
return wq_configurations::UART2;
|
||||||
|
|
||||||
|
} else if (strstr(serial, "ttyS3")) {
|
||||||
|
return wq_configurations::UART3;
|
||||||
|
|
||||||
|
} else if (strstr(serial, "ttyS4")) {
|
||||||
|
return wq_configurations::UART4;
|
||||||
|
|
||||||
|
} else if (strstr(serial, "ttyS5")) {
|
||||||
|
return wq_configurations::UART5;
|
||||||
|
|
||||||
|
} else if (strstr(serial, "ttyS6")) {
|
||||||
|
return wq_configurations::UART6;
|
||||||
|
|
||||||
|
} else if (strstr(serial, "ttyS7")) {
|
||||||
|
return wq_configurations::UART7;
|
||||||
|
|
||||||
|
} else if (strstr(serial, "ttyS8")) {
|
||||||
|
return wq_configurations::UART8;
|
||||||
|
}
|
||||||
|
|
||||||
|
PX4_ERR("unknown serial port: %s", serial);
|
||||||
|
|
||||||
|
return wq_configurations::hp_default;
|
||||||
|
}
|
||||||
|
|
||||||
static void *
|
static void *
|
||||||
WorkQueueRunner(void *context)
|
WorkQueueRunner(void *context)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user