diff --git a/libuavcan/CMakeLists.txt b/libuavcan/CMakeLists.txt index 7d23d707b0..f36514b0dc 100644 --- a/libuavcan/CMakeLists.txt +++ b/libuavcan/CMakeLists.txt @@ -121,7 +121,7 @@ if (DEBUG_BUILD) if (COMPILER_IS_GCC_COMPATIBLE) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror -pedantic -Wfloat-equal -Wconversion") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wsign-conversion -Wcast-align -Wmissing-declarations -Wlogical-op") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wtype-limits -Wno-error=array-bounds") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wdouble-promotion -Wswitch-enum -Wtype-limits -Wno-error=array-bounds") set(cpp03_flags "-std=c++03 -Wno-variadic-macros -Wno-long-long") set(optim_flags "-O3 -DNDEBUG -g0") else () diff --git a/libuavcan/include/uavcan/data_type.hpp b/libuavcan/include/uavcan/data_type.hpp index 168adbe921..cc64c29d6f 100644 --- a/libuavcan/include/uavcan/data_type.hpp +++ b/libuavcan/include/uavcan/data_type.hpp @@ -19,10 +19,11 @@ class UAVCAN_EXPORT TransferCRC; enum DataTypeKind { DataTypeKindService, - DataTypeKindMessage, - NumDataTypeKinds + DataTypeKindMessage }; +static const uint8_t NumDataTypeKinds = 2; + static inline DataTypeKind getDataTypeKindForTransferType(const TransferType tt) { diff --git a/libuavcan/include/uavcan/transport/transfer.hpp b/libuavcan/include/uavcan/transport/transfer.hpp index 6300eb4b18..7e5d5b8821 100644 --- a/libuavcan/include/uavcan/transport/transfer.hpp +++ b/libuavcan/include/uavcan/transport/transfer.hpp @@ -19,10 +19,11 @@ enum TransferType { TransferTypeServiceResponse = 0, TransferTypeServiceRequest = 1, - TransferTypeMessageBroadcast = 2, - NumTransferTypes = 3 + TransferTypeMessageBroadcast = 2 }; +static const uint8_t NumTransferTypes = 3; + class UAVCAN_EXPORT TransferPriority {