From 7db8d3ad78e0082d19f872231f9e236b0584043e Mon Sep 17 00:00:00 2001 From: JacobCrabill Date: Tue, 15 Mar 2022 17:45:34 -0700 Subject: [PATCH] HACK: Disable SO_TIMESTAMP in uavcan_v1 temporarily while bringing up H7 SocketCAN driver --- .../cubepilot/cubeorange/socketcan.px4board | 12 +++++++ src/drivers/uavcan_v1/CanardSocketCAN.cpp | 36 +++++++++---------- 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/boards/cubepilot/cubeorange/socketcan.px4board b/boards/cubepilot/cubeorange/socketcan.px4board index 90da927eac..9ebc42b594 100644 --- a/boards/cubepilot/cubeorange/socketcan.px4board +++ b/boards/cubepilot/cubeorange/socketcan.px4board @@ -4,7 +4,19 @@ CONFIG_DRIVERS_IRLOCK=n CONFIG_DRIVERS_PCA9685=n CONFIG_DRIVERS_PCA9685_PWM_OUT=n CONFIG_DRIVERS_RPM=n +CONFIG_DRIVERS_UAVCAN=n CONFIG_MODULES_ATTITUDE_ESTIMATOR_Q=n CONFIG_MODULES_LOCAL_POSITION_ESTIMATOR=n CONFIG_MODULES_ROVER_POS_CONTROL=n CONFIG_MODULES_TEMPERATURE_COMPENSATION=n +CONFIG_DRIVERS_UAVCAN_V1=y +CONFIG_UAVCAN_V1_BMS_SUBSCRIBER=y +CONFIG_UAVCAN_V1_ESC_CONTROLLER=y +CONFIG_UAVCAN_V1_ESC_SUBSCRIBER=y +CONFIG_UAVCAN_V1_GNSS_PUBLISHER=y +CONFIG_UAVCAN_V1_GNSS_SUBSCRIBER_0=y +CONFIG_UAVCAN_V1_GNSS_SUBSCRIBER_1=y +CONFIG_UAVCAN_V1_READINESS_PUBLISHER=y +CONFIG_UAVCAN_V1_UORB_ACTUATOR_OUTPUTS_PUBLISHER=y +CONFIG_UAVCAN_V1_UORB_SENSOR_GPS_PUBLISHER=y +CONFIG_UAVCAN_V1_UORB_SENSOR_GPS_SUBSCRIBER=y diff --git a/src/drivers/uavcan_v1/CanardSocketCAN.cpp b/src/drivers/uavcan_v1/CanardSocketCAN.cpp index 81e78735c4..f5da2d42bd 100644 --- a/src/drivers/uavcan_v1/CanardSocketCAN.cpp +++ b/src/drivers/uavcan_v1/CanardSocketCAN.cpp @@ -79,29 +79,29 @@ int CanardSocketCAN::init() addr.can_family = AF_CAN; addr.can_ifindex = ifr.ifr_ifindex; - const int on = 1; + // const int on = 1; /* RX Timestamping */ - if (setsockopt(_fd, SOL_SOCKET, SO_TIMESTAMP, &on, sizeof(on)) < 0) { - PX4_ERR("SO_TIMESTAMP is disabled"); - return -1; - } + // if (setsockopt(_fd, SOL_SOCKET, SO_TIMESTAMP, &on, sizeof(on)) < 0) { + // PX4_ERR("SO_TIMESTAMP is disabled"); + // return -1; + // } - /* NuttX Feature: Enable TX deadline when sending CAN frames - * When a deadline occurs the driver will remove the CAN frame - */ + // /* NuttX Feature: Enable TX deadline when sending CAN frames + // * When a deadline occurs the driver will remove the CAN frame + // */ - if (setsockopt(_fd, SOL_CAN_RAW, CAN_RAW_TX_DEADLINE, &on, sizeof(on)) < 0) { - PX4_ERR("CAN_RAW_TX_DEADLINE is disabled"); - return -1; - } + // if (setsockopt(_fd, SOL_CAN_RAW, CAN_RAW_TX_DEADLINE, &on, sizeof(on)) < 0) { + // PX4_ERR("CAN_RAW_TX_DEADLINE is disabled"); + // return -1; + // } - if (can_fd) { - if (setsockopt(_fd, SOL_CAN_RAW, CAN_RAW_FD_FRAMES, &on, sizeof(on)) < 0) { - PX4_ERR("no CAN FD support"); - return -1; - } - } + // if (can_fd) { + // if (setsockopt(_fd, SOL_CAN_RAW, CAN_RAW_FD_FRAMES, &on, sizeof(on)) < 0) { + // PX4_ERR("no CAN FD support"); + // return -1; + // } + // } if (bind(_fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) { PX4_ERR("bind");