wip: onboard pid
This commit is contained in:
@@ -24,8 +24,7 @@ if MICROROS
|
||||
select RING_BUFFER
|
||||
config MICROROS_TRANSPORT_SERIAL_USB
|
||||
bool "micro-ROS USB serial transport"
|
||||
select RING_BUFFER
|
||||
select USB_DEVICE_STACK
|
||||
select RING_BUFFER
|
||||
config MICROROS_TRANSPORT_UDP
|
||||
bool "micro-ROS UDP network transport"
|
||||
|
||||
@@ -106,7 +105,7 @@ if MICROROS
|
||||
|
||||
config MICROROS_XRCE_DDS_MTU
|
||||
string "micro-ROS transport MTU"
|
||||
default "62"
|
||||
default "512"
|
||||
|
||||
config MICROROS_XRCE_DDS_HISTORIC
|
||||
string "micro-ROS middleware memory slots"
|
||||
|
||||
@@ -66,58 +66,20 @@ static void uart_fifo_callback(const struct device *dev, void * user_data){
|
||||
bool zephyr_transport_open(struct uxrCustomTransport * transport){
|
||||
zephyr_transport_params_t * params = (zephyr_transport_params_t*) transport->args;
|
||||
|
||||
int ret;
|
||||
uint32_t baudrate, dtr = 0U;
|
||||
|
||||
|
||||
params->uart_dev = device_get_binding("CDC_ACM_0");
|
||||
params->uart_dev = DEVICE_DT_GET(DT_NODELABEL(cdc_acm_uart0));
|
||||
if (!params->uart_dev) {
|
||||
printk("CDC ACM device not found\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
ret = usb_enable(NULL);
|
||||
if (ret != 0) {
|
||||
printk("Failed to enable USB\n");
|
||||
return false;
|
||||
if (!device_is_ready(params->uart_dev)) {
|
||||
printk("cdc0 not ready!\n");
|
||||
}
|
||||
|
||||
ring_buf_init(&out_ringbuf, sizeof(uart_out_buffer), uart_out_buffer);
|
||||
ring_buf_init(&in_ringbuf, sizeof(uart_in_buffer), uart_out_buffer);
|
||||
|
||||
printk("Waiting for agent connection\n");
|
||||
|
||||
while (true) {
|
||||
uart_line_ctrl_get(params->uart_dev, UART_LINE_CTRL_DTR, &dtr);
|
||||
if (dtr) {
|
||||
break;
|
||||
} else {
|
||||
/* Give CPU resources to low priority threads. */
|
||||
k_sleep(K_MSEC(100));
|
||||
}
|
||||
}
|
||||
|
||||
printk("Serial port connected!\n");
|
||||
|
||||
/* They are optional, we use them to test the interrupt endpoint */
|
||||
ret = uart_line_ctrl_set(params->uart_dev, UART_LINE_CTRL_DCD, 1);
|
||||
if (ret) {
|
||||
printk("Failed to set DCD, ret code %d\n", ret);
|
||||
}
|
||||
|
||||
ret = uart_line_ctrl_set(params->uart_dev, UART_LINE_CTRL_DSR, 1);
|
||||
if (ret) {
|
||||
printk("Failed to set DSR, ret code %d\n", ret);
|
||||
}
|
||||
|
||||
/* Wait 1 sec for the host to do all settings */
|
||||
k_busy_wait(1000*1000);
|
||||
|
||||
ret = uart_line_ctrl_get(params->uart_dev, UART_LINE_CTRL_BAUD_RATE, &baudrate);
|
||||
if (ret) {
|
||||
printk("Failed to get baudrate, ret code %d\n", ret);
|
||||
}
|
||||
|
||||
uart_irq_callback_set(params->uart_dev, uart_fifo_callback);
|
||||
|
||||
/* Enable rx interrupts */
|
||||
|
||||
Reference in New Issue
Block a user