#ifndef ASJ_PE_PULLUP_WARPPER #define ASJ_PE_PULLUP_WARPPER #include "PEStatus.h" #include "pullup_dl_api.h" // ################################# // ######### PullUp Struct ######### // ################################# typedef struct { sampleRunJoint_POINT_S asjPullUpLine[2]; // 杠的两端点 int arm_bend_flag; // 手臂弯曲检测开关 int hand_back_flag; // 正反手检测开关 int body_straight_flag; // 身体摆动过大检测开关 int hand_off_bar_flag; // 双手落杆检测开关 int knee_bend_flag; // 膝盖弯曲检测开关 int exam_interval_sencond; // 两次动作时间间隔超时秒数 } PullUp_ST; typedef struct { int pullUpCount; // 引体向上成功/次数 int pullUp_HandNotStraighten; // 引体向上动作违规->身体没有伸直/次数 int pullUp_NotOverBar; // 引体向上动作违规->(头顶过杠的情况下)下颜没有过杠/次数 int pullUp_BackHand; // 引体向上动作违规->反手/次数 int pullUp_HandDropBar; // 引体向上动作违规->掉杆/次数 int pullUp_BodyOverSwing; // 引体向上动作违规->身体摆动过大/次数 int pullup_OverTime; // 引体向上动作违规->两次动作时间间隔超过10s/次数 int pullup_illegal_flag; // 引体向上动作违规状态码 } PullUpResult_ST; /** * 创建实例,单例模式. * @return 实例指针 */ void* pullup_create(); /** * 对实例进行数据清零并赋值结构体中的参数 * @param pullup 输入参数:实例指针 * @param pullup_s 输入参数:页面设定的参数 * @return 参考PEStatus.h中的StatusCode */ int pullup_examInit(void* pullup, PullUp_ST pullup_s); /** * 输入推理数据进行准备状态检测 * @param pullup 输入参数:实例指针 * @param mResult 输入参数:页面设定的参数 * @param prepareStatus 输出参数:根据PEStatus.h中的PullUpPrepareCode按位或运算后的返回值 * @return 参考PEStatus.h中的StatusCode */ int pullup_processPrepare(void* pullup, sampleRunJoint_RESULT_S *mResult, int *prepareStatus); /** * 输入推理数据进行考试状态检测 * @param pullup 输入参数:实例指针 * @param mResult 输入参数:页面设定的参数 * @param result 输出参数:结果结构体(包含计数结果和PEStatus.h中的PullUpExamCode按位或运算后的返回值) * @return 参考PEStatus.h中的StatusCode */ int pullup_processExam(void* pullup, sampleRunJoint_RESULT_S *mResult, PullUpResult_ST *result); /** * Prepare enum转换char* * @param code 输入参数:枚举变量 * @return 枚举变量对应的字符串 */ const char *PullUpPrepareCode2String(enum PullUpPrepareCode code); /** * Exam enum转换char* * @param code 输入参数:枚举变量 * @return 枚举变量对应的字符串 */ const char *PullUpExamCode2String(enum PullUpExamCode code); #endif