Hi there
I'm struggling with the usbd_cdc_acm example.
I want combine the ble_app_uart and the usbd_cdc_acm example to use my ble central role with nus and usb at the pca10059.
For my project I have to add a communication stack, which is coded in c++11.
it works with the ble_app_uart peripheral example, but not with the usbd.
There are two files which are struggeling against c++.
app_usbd_cdc_acm.h and app_usbd_cdc_acm_internal.h
and this is the problem:
//app_usbd_cdc_acm.h
typedef enum app_usbd_cdc_acm_user_event_e {
APP_USBD_CDC_ACM_USER_EVT_RX_DONE, /**< User event RX_DONE. */
APP_USBD_CDC_ACM_USER_EVT_TX_DONE, /**< User event TX_DONE. */
APP_USBD_CDC_ACM_USER_EVT_PORT_OPEN, /**< User event PORT_OPEN. */
APP_USBD_CDC_ACM_USER_EVT_PORT_CLOSE, /**< User event PORT_CLOSE. */
} app_usbd_cdc_acm_user_event_t;
// app_usbd_cdc_acm_internal.h
/*lint -save -e165*/
/**
* @brief Forward declaration of @ref app_usbd_cdc_acm_user_event_e.
*
*/
enum app_usbd_cdc_acm_user_event_e;
/*lint -restore*/
/**
* @brief User event handler.
*
* @param[in] p_inst Class instance.
* @param[in] event User event.
*
*/
typedef void (*app_usbd_cdc_acm_user_ev_handler_t)(app_usbd_class_inst_t const * p_inst,
enum app_usbd_cdc_acm_user_event_e event);
the errors are:
Compiling file: main.cpp
In file included from .//components/libraries/usbd/class/cdc/acm/app_usbd_cdc_acm.h:58,
from .//main.cpp:57:
.//components/libraries/usbd/class/cdc/acm/app_usbd_cdc_acm_internal.h:64:6: error: use of enum 'app_usbd_cdc_acm_user_event_e' without previous declaration
enum app_usbd_cdc_acm_user_event_e;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.//components/libraries/usbd/class/cdc/acm/app_usbd_cdc_acm_internal.h:76:55: error: use of enum 'app_usbd_cdc_acm_user_event_e' without previous declaration
enum app_usbd_cdc_acm_user_event_e event);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from .//main.cpp:59:
I tryed to do the enum class app_usbd_cdc_acm_user_event_e: int {...} conversion but it doesn't work. Just caused some weird errors. I tryed some other things but nothing helped.
I'm using sdk15.3 with s140. Compiling with gnu-arm (arm.none-eabi -g++ and -gcc) version <gcc-arm-none-eabi-8-2018-q4-major> and working with eclipse.
Everything works when I change main.cpp to .c and compile in C.
Maybe someone has a solution for this.
Greetings N3210