[原创] 在使用sensortile过程中,license的使用

fyaocn   2017-3-23 16:01 楼主
1、在和其他的开发板过程中,遇到的一个问题就是license的使用。
在安装和使用的过程中,有一个申请证书的环节。那么分析一下这个原理。
2、首先需要确定的是这个license不是必须要申请的,只是在使用ST提供的姿态识别时才需要使用。
捕获.JPG
就是上面这几个高级的功能,在程序中,成为advanced功能的部分。和提供源码的部分不同的是,这些已经封装为库使用,不能直接编辑代码,需要查手册来使用其中的功能。当然,这些功能还是比较方便的,如识别double click,突然摔倒,还有携带位置的监测。这些非常适合可穿戴的应用,所以,可以非常神速地开发和部署传感器应用中比较难的部分,而且还能保证程序质量。
3、关于license,是免费提供,因为其中的申请是免费的,只要使用对应的申请软件就好。
捕获.JPG
这个license返回一封邮件,包括一组加密的数据,应该是结合板卡的特征值计算出来的。在程序中对这个payload进行赋值,以便后续使用。
4、那么在程序中,是需要如何使用这个license呢,那么是有一个payload,在调用这些自动识别的功能时,必须要先读取并校验这个license才能后续进行,代码虽长,不过逻辑很清楚,如下参考。
  • InitMetaDataManager((void *)known_OsxLic,MDM_DATA_TYPE_LIC,NULL);
  •   /* Enable all the osx Motion License found on Meta Data Manager */
  •   {
  •     int32_t Index=0;
  •     while(known_OsxLic[Index].LicEnum!=OSX_END) {
  •       MDM_PayLoadLic_t *PayLoad = (MDM_PayLoadLic_t *) MDM_LicTable[known_OsxLic[Index].LicEnum].Address;
  •       if(PayLoad->osxLicenseInitialized) {
  •         switch(known_OsxLic[Index].LicEnum) {
  •           case OSX_MOTION_FX:
  •             MCR_OSX_COPY_LICENSE_FROM_MDM(osx_mfx_license,PayLoad->osxLicense);
  •             MotionFX_License_init(PayLoad);
  •           break;
  •           case OSX_MOTION_AR:
  •             MCR_OSX_COPY_LICENSE_FROM_MDM(osx_mar_license,PayLoad->osxLicense);
  •             MotionAR_License_init(PayLoad);
  •           break;
  •           case OSX_MOTION_CP:
  •             MCR_OSX_COPY_LICENSE_FROM_MDM(osx_mcp_license,PayLoad->osxLicense);
  •             MotionCP_License_init(PayLoad);
  •           break;
  •           case OSX_MOTION_GR:
  •             MCR_OSX_COPY_LICENSE_FROM_MDM(osx_mgr_license,PayLoad->osxLicense);
  •             MotionGR_License_init(PayLoad);
  •           break;
  •           case OSX_MOTION_PM:
  •             MCR_OSX_COPY_LICENSE_FROM_MDM(osx_mpm_license,PayLoad->osxLicense);
  •             MotionPM_License_init(PayLoad);
  •           break;
  • #ifdef OSX_ENABLE_MOTIONID
  •           case OSX_MOTION_ID:
  •             MCR_OSX_COPY_LICENSE_FROM_MDM(osx_mid_license,PayLoad->osxLicense);
  •             MotionID_License_init(PayLoad);
  •           break;
  • #endif /* OSX_ENABLE_MOTIONID */
  •           default:
  •                 /* Only for removing the GCC warning */
  •             OSX_BMS_PRINTF("Should never reach this point...\r\n");
  •         }
  • #ifdef OSX_BMS_LICENSE_H_FILE
  •       } else {
  •         switch(known_OsxLic[Index].LicEnum) {
  •           case OSX_MOTION_FX:
  •             MotionFX_License_init(PayLoad);
  •           break;
  •           case OSX_MOTION_AR:
  •             MotionAR_License_init(PayLoad);
  •           break;
  •           case OSX_MOTION_CP:
  •             MotionCP_License_init(PayLoad);
  •           break;
  •           case OSX_MOTION_GR:
  •             MotionGR_License_init(PayLoad);
  •           break;
  •           case OSX_MOTION_PM:
  •             MotionPM_License_init(PayLoad);
  •           break;
  • #ifdef OSX_ENABLE_MOTIONID
  •           case OSX_MOTION_ID:
  •             MotionID_License_init(PayLoad);
  •           break;
  • #endif /* OSX_ENABLE_MOTIONID */
  •         }
  •       }
  • #else /* OSX_BMS_LICENSE_H_FILE */
  •       }
  • #endif /* OSX_BMS_LICENSE_H_FILE */
  •       Index++;
  •     }
  •   }


5、如果不打算使用这些库,要自己设计识别特征,或者就是直接读取参数,那么,这个license就可以不用,这段代码也可以不必嵌入在程序中。

回复评论 (2)

分析的很明了,赞!
点赞  2017-3-29 16:35
怎么来使用的?
点赞  2017-4-26 09:58
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复