RMVL  1.0.0
RoboMaster Vision Library
模块 | | 宏定义 | 类型定义 | 枚举 | 函数
视觉库核心模块
视觉库核心模块 的协作图:

模块

 数据读写(I/O)
 
 卡尔曼滤波器库
 
 串口通信模块
 
 定时、计时模块
 

class  rm::GlobalSingleton< Tp >
 单例模板 更多...
 

宏定义

#define __RMVL_CAT__(x, y)   x##y
 
#define __RMVL_CAT_(x, y)   __RMVL_CAT__(x, y)
 
#define __RMVL_CAT(x, y)   __RMVL_CAT_(x, y)
 
#define __RMVL_EXPAND(x)   x
 
#define RMVL_Func   "<unknown>"
 
#define HIGHLIGHT_(msg...)
 
#define WARNING_(msg...)
 
#define PASS_(msg...)
 
#define ERROR_(msg...)
 
#define INFO_(msg...)
 
#define DEBUG_WARNING_(msg...)   WARNING_(msg)
 
#define DEBUG_ERROR_(msg...)   ERROR_(msg)
 
#define DEBUG_HIGHLIGHT_(msg...)   HIGHLIGHT_(msg)
 
#define DEBUG_INFO_(msg...)   INFO_(msg)
 
#define DEBUG_PASS_(msg...)   PASS_(msg)
 
#define RMVL_Error(code, msg)   rm::error(code, msg, RMVL_Func, __FILE__, __LINE__)
 调用错误处理程序 更多...
 
#define RMVL_Error_(code, fmt, args...)   rm::error(code, rm::format(fmt, args), RMVL_Func, __FILE__, __LINE__)
 调用错误处理程序 更多...
 
#define RMVL_Assert(expr)   (!!(expr)) ? (void(0)) : rm::error(RMVL_StsAssert, #expr, RMVL_Func, __FILE__, __LINE__)
 在运行时检查条件,如果失败则抛出异常 更多...
 
#define RMVL_DbgAssert(expr)   RMVL_Assert(expr)
 在 Debug 条件下或启用静态分析工具的情况下,在运行时检查条件,如果失败则抛出异常 更多...
 

类型定义

typedef int RMVLErrorCode
 重定义 int 为 RMVLErrorCode 更多...
 

枚举

enum  : RMVLErrorCode {
  RMVL_StsOk = 0 , RMVL_StsBackTrace = -1 , RMVL_StsError = -2 , RMVL_StsNoMem = -3 ,
  RMVL_StsBadArg = -4 , RMVL_StsBadSize = -5 , RMVL_StsNullPtr = -6 , RMVL_StsNotaNumber = -7 ,
  RMVL_StsDivByZero = -8 , RMVL_StsOutOfRange = -9 , RMVL_StsAssert = -10 , RMVL_StsInvFmt = -11 ,
  RMVL_BadDynamicType = -12
}
 RMVL 错误码 更多...
 

函数

const char * rmvlErrorStr (RMVLErrorCode status)
 

详细描述

宏定义说明

◆ __RMVL_CAT

#define __RMVL_CAT (   x,
 
)    __RMVL_CAT_(x, y)

◆ __RMVL_CAT_

#define __RMVL_CAT_ (   x,
 
)    __RMVL_CAT__(x, y)

◆ __RMVL_CAT__

#define __RMVL_CAT__ (   x,
 
)    x##y

◆ __RMVL_EXPAND

#define __RMVL_EXPAND (   x)    x

◆ DEBUG_ERROR_

#define DEBUG_ERROR_ (   msg...)    ERROR_(msg)

#include <rmvl/core/util.hpp>

◆ DEBUG_HIGHLIGHT_

#define DEBUG_HIGHLIGHT_ (   msg...)    HIGHLIGHT_(msg)

#include <rmvl/core/util.hpp>

◆ DEBUG_INFO_

#define DEBUG_INFO_ (   msg...)    INFO_(msg)

#include <rmvl/core/util.hpp>

◆ DEBUG_PASS_

#define DEBUG_PASS_ (   msg...)    PASS_(msg)

#include <rmvl/core/util.hpp>

◆ DEBUG_WARNING_

#define DEBUG_WARNING_ (   msg...)    WARNING_(msg)

#include <rmvl/core/util.hpp>

◆ ERROR_

#define ERROR_ (   msg...)

◆ HIGHLIGHT_

#define HIGHLIGHT_ (   msg...)

#include <rmvl/core/util.hpp>

值:
do \
{ \
printf("\033[35m[ INFO ] " msg); \
printf("\033[0m\n"); \
} while (false)

◆ INFO_

#define INFO_ (   msg...)

#include <rmvl/core/util.hpp>

值:
do \
{ \
printf("[ INFO ] " msg); \
printf("\n"); \
} while (false)
示例
samples/detector/hik/sample_hik_armor_collection.cpp , 以及 samples/detector/mv/sample_mv_armor_collection.cpp.

◆ PASS_

#define PASS_ (   msg...)

#include <rmvl/core/util.hpp>

值:
do \
{ \
printf("\033[32m[ PASS ] " msg); \
printf("\033[0m\n"); \
} while (false)
示例
samples/detector/hik/sample_hik_armor_collection.cpp , 以及 samples/detector/mv/sample_mv_armor_collection.cpp.

◆ RMVL_Assert

#define RMVL_Assert (   expr)    (!!(expr)) ? (void(0)) : rm::error(RMVL_StsAssert, #expr, RMVL_Func, __FILE__, __LINE__)

#include <rmvl/core/util.hpp>

在运行时检查条件,如果失败则抛出异常

注解
宏 RMVL_Assert (以及 RMVL_DbgAssert) 对指定的表达式求值。如果它是0,宏抛出一个错误。宏 RMVL_Assert 将会在 Debug 和 Release 的配置下检查条件,而 RMVL_DbgAssert 只会在 Debug 的配置下生效。
参见
RMVLErrorCode
示例
samples/tutorial_code/dataio/sample_write_corners.cpp.

◆ RMVL_DbgAssert

#define RMVL_DbgAssert (   expr)    RMVL_Assert(expr)

#include <rmvl/core/util.hpp>

在 Debug 条件下或启用静态分析工具的情况下,在运行时检查条件,如果失败则抛出异常

◆ RMVL_Error

#define RMVL_Error (   code,
  msg 
)    rm::error(code, msg, RMVL_Func, __FILE__, __LINE__)

#include <rmvl/core/util.hpp>

调用错误处理程序

注解
目前,错误处理程序将错误代码和错误消息打印到标准错误流 stderr。在 Debug 配置中,它会引发内存访问冲突,以便调试器可以分析执行堆栈和所有参数。在 Release 配置中,抛出异常。
参数
[in]code一种 RMVLErrorCode 错误码
[in]msg错误信息
示例
samples/detector/hik/sample_hik_armor_collection.cpp, samples/detector/hik/sample_hik_armor_size_classify.cpp, samples/detector/mv/sample_mv_armor_collection.cpp , 以及 samples/detector/mv/sample_mv_armor_size_classify.cpp.

◆ RMVL_Error_

#define RMVL_Error_ (   code,
  fmt,
  args... 
)    rm::error(code, rm::format(fmt, args), RMVL_Func, __FILE__, __LINE__)

#include <rmvl/core/util.hpp>

调用错误处理程序

注解
该宏可用于动态构造错误消息,以包含一些动态信息,例如
// 请注意格式化文本消息周围的额外括号
RMVL_Error_(StsOutOfRange, "the value at (%d, %d) = %g is out of range", badPt.x, badPt.y, badValue);
#define RMVL_Error_(code, fmt, args...)
调用错误处理程序
Definition: util.hpp:217
参数
[in]code一种 RMVLErrorCode 错误码
[in]fmt格式化字符串
[in]args括号中带有类似 printf 格式的错误信息

◆ RMVL_Func

#define RMVL_Func   "<unknown>"

◆ WARNING_

#define WARNING_ (   msg...)

类型定义说明

◆ RMVLErrorCode

typedef int RMVLErrorCode

#include <rmvl/core/util.hpp>

重定义 int 为 RMVLErrorCode

枚举类型说明

◆ anonymous enum

anonymous enum : RMVLErrorCode

#include <rmvl/core/util.hpp>

RMVL 错误码

枚举值
RMVL_StsOk 

没有错误 No Error

RMVL_StsBackTrace 

回溯 Backtrace

RMVL_StsError 

未指定(未知)错误 Unspecified (Unknown) error

RMVL_StsNoMem 

内存不足 Insufficient memory

RMVL_StsBadArg 

参数异常 Bad argument

RMVL_StsBadSize 

数组大小不正确 Incorrect size of the array

RMVL_StsNullPtr 

空指针 Null pointer

RMVL_StsNotaNumber 

非数 Not a Number (nan)

RMVL_StsDivByZero 

发生了除以 0 的情况 Division by zero occurred

RMVL_StsOutOfRange 

其中一个参数的值超出了范围 One of the arguments' values is out of range

RMVL_StsAssert 

断言失败 Assertion failed

RMVL_StsInvFmt 

无效格式 Invalid format

RMVL_BadDynamicType 

动态类型转换错误 Bad dynamic_cast type

函数说明

◆ rmvlErrorStr()

const char* rmvlErrorStr ( RMVLErrorCode  status)

#include <rmvl/core/util.hpp>