diff --git a/libraries/AP_Arming/AP_Arming.cpp b/libraries/AP_Arming/AP_Arming.cpp index eb1fc93021..a1f614606a 100644 --- a/libraries/AP_Arming/AP_Arming.cpp +++ b/libraries/AP_Arming/AP_Arming.cpp @@ -39,6 +39,8 @@ #include #include + #include + // To be replaced with macro saying if KDECAN library is included #if APM_BUILD_TYPE(APM_BUILD_ArduCopter) || APM_BUILD_TYPE(APM_BUILD_ArduPlane) || APM_BUILD_TYPE(APM_BUILD_ArduSub) #include @@ -764,6 +766,26 @@ bool AP_Arming::can_checks(bool report) return false; } break; +#endif + } + case AP_BoardConfig_CAN::Protocol_Type_PiccoloCAN: { +#if HAL_PICCOLO_CAN_ENABLE + AP_PiccoloCAN *ap_pcan = AP_PiccoloCAN::get_pcan(i); + + if (ap_pcan != nullptr && !ap_pcan->pre_arm_check(fail_msg, ARRAY_SIZE(fail_msg))) { + if (fail_msg == nullptr) { + check_failed(ARMING_CHECK_SYSTEM, report, "PiccoloCAN failed"); + } else { + check_failed(ARMING_CHECK_SYSTEM, report, "%s", fail_msg); + } + + return false; + } + + break; +#else + check_failed(ARMING_CHECK_SYSTEM, report, "PiccoloCAN not enabled"); + return false; #endif } case AP_BoardConfig_CAN::Protocol_Type_UAVCAN: