asj_pe_situp_warpper.h 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #ifndef ASJ_PE_SITUP_WARPPER
  2. #define ASJ_PE_SITUP_WARPPER
  3. #include "PEStatus.h"
  4. #include "situp_dl_api.h"
  5. // #################################
  6. // ######### SitUp Struct #########
  7. // #################################
  8. typedef struct
  9. {
  10. float knee_angle_min, knee_angle_max; // 膝盖弯曲角度最小值、膝盖弯曲角度最大值
  11. float knee_elbow_distance; // 肘与膝盖距离阈值
  12. float knee_hip_shoulder_angle; // 膝臀肩角度阈值(用作臀部离垫检测)
  13. float hip_shoulder_angle; // 肩臀角度阈值(用于肩胛骨是否触垫检测)
  14. int leg_bend_flag; // 双腿弯曲检测开关
  15. int hands_on_head_flag; // 双手抱头检测开关
  16. int hip_lift_flag; // 臀部抬起检测开关
  17. int body_lying_flag; // 身体躺平检测开关
  18. int leave_pad_end_flag; // 离垫检测开关
  19. } SitUp_ST;
  20. typedef struct
  21. {
  22. int sitUpCount; // 仰卧起坐成功/次数
  23. int sitUp_NotLieFalt; // 仰卧起坐动作违规->仰卧时,两肩胛骨没有触垫(未躺平)/次数
  24. int sitUp_ElbowNotTouchKnee; // 仰卧起坐动作违规->起坐时,肘部没有触及两膝/次数
  25. int sitUp_HipLeavePad; // 仰卧起坐动作违规->臀部离垫/次数
  26. int sitUp_HandLeaveHead; // 仰卧起坐动作违规->没有抱头/次数
  27. int sitUp_KneeNotBend; // 仰卧起坐动作违规->膝盖没有弯曲/次数
  28. int situp_illegal_flag; // 仰卧起坐动作违规状态码
  29. } SitUpResult_ST;
  30. /**
  31. * 创建实例,单例模式.
  32. * @return 实例指针
  33. */
  34. void* situp_create();
  35. /**
  36. * 对实例进行数据清零并赋值结构体中的参数
  37. * @param situp 输入参数:实例指针
  38. * @param situp_s 输入参数:页面设定的参数
  39. * @return 参考PEStatus.h中的StatusCode
  40. */
  41. int situp_examInit(void* situp, SitUp_ST situp_s);
  42. /**
  43. * 输入推理数据进行准备状态检测
  44. * @param situp 输入参数:实例指针
  45. * @param mResult 输入参数:页面设定的参数
  46. * @param prepareStatus 输出参数:根据PEStatus.h中的SitUpPrepareCode按位或运算后的返回值
  47. * @return 参考PEStatus.h中的StatusCode
  48. */
  49. int situp_processPrepare(void* situp, sampleRunJoint_RESULT_S *mResult, int *prepareStatus);
  50. /**
  51. * 输入推理数据进行考试状态检测
  52. * @param situp 输入参数:实例指针
  53. * @param mResult 输入参数:页面设定的参数
  54. * @param result 输出参数:结果结构体(包含计数结果和PEStatus.h中的SitUpExamCode按位或运算后的返回值)
  55. * @return 参考PEStatus.h中的StatusCode
  56. */
  57. int situp_processExam(void* situp, sampleRunJoint_RESULT_S *mResult, SitUpResult_ST *result);
  58. /**
  59. * Prepare enum转换char*
  60. * @param code 输入参数:枚举变量
  61. * @return 枚举变量对应的字符串
  62. */
  63. const char *SitUpPrepareCode2String(enum SitUpPrepareCode code);
  64. /**
  65. * Exam enum转换char*
  66. * @param code 输入参数:枚举变量
  67. * @return 枚举变量对应的字符串
  68. */
  69. const char *SitUpExamCode2String(enum SitUpExamCode code);
  70. #endif