Ver código fonte

日常开发

林旭祥 3 dias atrás
pai
commit
b0336c7ede
3 arquivos alterados com 2 adições e 1944 exclusões
  1. 2 0
      index.js
  2. 0 60
      src/utils/FaceRecognition.js
  3. 0 1884
      src/utils/dataDictionary.ts

+ 2 - 0
index.js

@@ -6,5 +6,7 @@ import {AppRegistry} from 'react-native';
 import App from './App';
 import {name as appName} from './app.json';
 import api from './src/api/index';
+import utils from './src/utils/index';
 global.$http = api;
+global.$utils = utils;
 AppRegistry.registerComponent(appName, () => App);

+ 0 - 60
src/utils/FaceRecognition.js

@@ -1,60 +0,0 @@
-// FaceRecognition.js
-import { NativeModules, Platform } from 'react-native';
-import RNFS from 'react-native-fs';
-import { launchImageLibrary } from 'react-native-image-picker';
-
-const { BaiduFaceModule } = NativeModules;
-
-// 初始化SDK
-export const initFaceSDK = () => {
-  const licenseId = "YOUR_LICENSE_ID"; // 从百度控制台获取
-  if (Platform.OS === 'android') {
-    BaiduFaceModule.initSDK(licenseId);
-  } else {
-    // iOS初始化代码(需单独实现)
-  }
-};
-
-// 人脸检测方法
-export const detectFace = async () => {
-  try {
-    // 1. 选择图片
-    const result = await launchImageLibrary({ mediaType: 'photo' });
-    if (result.didCancel) return;
-
-    const uri = result.assets[0].uri;
-    // 2. 将图片转为Base64(百度要求)
-    const base64Data = await RNFS.readFile(uri, 'base64');
-
-    // 3. 调用百度API(需自行实现网络请求)
-    const apiKey = "YOUR_API_KEY";
-    const secretKey = "YOUR_SECRET_KEY";
-    const response = await fetch(
-      `https://aip.baidubce.com/rest/2.0/face/v3/detect?access_token=${await getAccessToken(apiKey, secretKey)}`,
-      {
-        method: 'POST',
-        headers: { 'Content-Type': 'application/json' },
-        body: JSON.stringify({
-          image: base64Data,
-          image_type: 'BASE64',
-          face_field: 'age,beauty,expression'
-        })
-      }
-    );
-
-    const data = await response.json();
-    return data.result;
-  } catch (error) {
-    console.error("人脸检测失败:", error);
-  }
-};
-
-// 获取百度API的Access Token
-const getAccessToken = async (apiKey, secretKey) => {
-  const response = await fetch(
-    `https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=${apiKey}&client_secret=${secretKey}`,
-    { method: 'POST' }
-  );
-  const data = await response.json();
-  return data.access_token;
-};

+ 0 - 1884
src/utils/dataDictionary.ts

@@ -1,1884 +0,0 @@
-let data = {
-  project: {
-    jump: '立定跳远',
-    longjump: '急行跳远',
-    verticaljump: '纵跳摸高',
-    pullup: '引体向上',
-    situp: '仰卧起坐',
-    trijump: '三级蛙跳',
-    sidepullup: '斜身引体',
-    jumprope: '跳绳',
-    jumpingjack: '开合跳',
-    highknees: '高抬腿',
-    solidball: '实心球',
-    shotput: '铅球',
-    run50: '50米',
-    run60: '60米',
-    run70: '70米',
-    run100: '100米',
-    run200: '200米',
-    run400: '400米',
-    run800: '800米',
-    run1000: '1000米',
-    runa800: '脚环800米',
-    runa1000: '脚环1000米',
-    runwb800: '手环800米',
-    runwb1000: '手环1000米',
-    skiprope: '蓝牙跳绳',
-    heartbeat: '心率监测',
-    bmi: 'BMI',
-    sitforbend: '坐位体前屈',
-    vitalcap: '肺活量',
-    run15x4: '15x4往返跑',
-    run50x8: '50x8往返跑',
-    run10x4: '10x4往返跑',
-    swim100: '游泳100米',
-    swim200: '游泳200米',
-    football: '足球',
-    footballv1: '足球',
-    basketball: '篮球',
-    basketballv1: '篮球',
-    volleyball: '排球',
-    volleyballv1: '排球',
-    pingpong: '乒乓球',
-    badminton: '羽毛球',
-    tennis: '网球',
-    wushu: '武术',
-    gymnastic: '体操',
-    grip: '肌力',
-    sunlight: '阳光跑',
-  },
-  unit: {
-    jump: '厘米',
-    longjump: '米',
-    verticaljump: '厘米',
-    solidball: '米',
-    shotput: '米',
-    trijump: '米',
-    run50: '秒',
-    run70: '秒',
-    run100: '秒',
-    run200: '秒',
-    run400: '秒',
-    run800: '秒',
-    run1000: '秒',
-    runa800: '秒',
-    runa1000: '秒',
-    runwb800: '秒',
-    runwb1000: '秒',
-    football: '秒',
-    footballv1: '秒',
-    basketball: '秒',
-    basketballv1: '秒',
-    situp: '个',
-    pullup: '个',
-    sidepullup: '个',
-    jumprope: '个',
-    jumpingjack: '个',
-    highknees: '个',
-    skiprope: '个',
-    volleyball: '个',
-    volleyballv1: '个',
-    heartbeat: '次/分',
-    bmi: '',
-    sitforbend: '厘米',
-    vitalcap: '毫升',
-    grip: '千克力',
-    sunlight: "米",
-  },
-  // 如果没有统一的结果key,  以下每个项目的结果key  .  如: 立定跳远 jump 的结果key为distance
-  typeResultKey: {
-    jump: 'distance',
-    longjump: 'distance',
-    verticaljump: 'height',
-    trijump: 'distance',
-    pullup: 'counts',
-    situp: 'counts',
-    sidepullup: 'counts',
-    solidball: 'distance',
-    shotput: 'distance',
-    run50: 'times',
-    run70: 'times',
-    run100: 'times',
-    run200: 'times',
-    run400: 'times',
-    run800: 'time',
-    run1000: 'time',
-    jumprope: 'counts',
-    jumpingjack: 'counts',
-    highknees: 'counts',
-    skiprope: 'counts',
-    heartbeat: 'counts',
-    bmi: 'bmi',
-    sitforbend: 'result',
-    vitalcap: 'result',
-    football: 'result',
-    footballv1: 'result',
-    basketball: 'result',
-    basketballv1: 'result',
-    volleyball: 'counts',
-    volleyballv1: 'counts',
-    pingpong: 'result',
-    badminton: 'result',
-    runa800: 'result',
-    runa1000: 'result',
-    runwb800: 'result',
-    runwb1000: 'result',
-    sunlight: 'distance'
-  },
-
-  gradeLists: [
-    {
-      label: '小学',
-      value: 1,
-      child: [
-        { value: 'one', label: '一年级' },
-        { value: 'two', label: '二年级' },
-        { value: 'three', label: '三年级' },
-        { value: 'four', label: '四年级' },
-        { value: 'five', label: '五年级' },
-        { value: 'six', label: '六年级' }
-      ]
-    },
-    {
-      label: '初中',
-      value: 2,
-      child: [
-        { value: 'm_one', label: '初一' },
-        { value: 'm_two', label: '初二' },
-        { value: 'm_three', label: '初三' }
-      ]
-    },
-    {
-      label: '高中',
-      value: 3,
-      child: [
-        { value: 'h_one', label: '高一' },
-        { value: 'h_two', label: '高二' },
-        { value: 'h_three', label: '高三' }
-      ]
-    },
-    {
-      label: '大学',
-      value: 4,
-      child: [
-        { value: 'u_one', label: '大一' },
-        { value: 'u_two', label: '大二' },
-        { value: 'u_three', label: '大三' },
-        { value: 'u_four', label: '大四' }
-      ]
-    },
-    {
-      label: '小学初中',
-      value: 5,
-      child: [
-        { value: 'one', label: '一年级' },
-        { value: 'two', label: '二年级' },
-        { value: 'three', label: '三年级' },
-        { value: 'four', label: '四年级' },
-        { value: 'five', label: '五年级' },
-        { value: 'six', label: '六年级' },
-        { value: 'm_one', label: '初一' },
-        { value: 'm_two', label: '初二' },
-        { value: 'm_three', label: '初三' }
-      ]
-    },
-    {
-      label: '初中高中',
-      value: 6,
-      child: [
-        { value: 'm_one', label: '初一' },
-        { value: 'm_two', label: '初二' },
-        { value: 'm_three', label: '初三' },
-        { value: 'h_one', label: '高一' },
-        { value: 'h_two', label: '高二' },
-        { value: 'h_three', label: '高三' }
-      ]
-    },
-    {
-      label: '小学初中高中',
-      value: 7,
-      child: [
-        { value: 'one', label: '一年级' },
-        { value: 'two', label: '二年级' },
-        { value: 'three', label: '三年级' },
-        { value: 'four', label: '四年级' },
-        { value: 'five', label: '五年级' },
-        { value: 'six', label: '六年级' },
-        { value: 'm_one', label: '初一' },
-        { value: 'm_two', label: '初二' },
-        { value: 'm_three', label: '初三' },
-        { value: 'h_one', label: '高一' },
-        { value: 'h_two', label: '高二' },
-        { value: 'h_three', label: '高三' }
-      ]
-    }
-  ],
-
-  projectNote: {
-    jump: '<p><span style="color: #13ED84">预摆:</span>上下肢动作协调配合,摆动时一伸二屈降重心,上体稍前倾。</p><p><span style="color: #13ED84">空展体:</span>蹬地快速有力,腿蹬和手摆要协调,空中展体要充分,待身体完全展开后,收腹屈膝。</p><p><span style="color: #13ED84">落地缓冲:</span>小腿前伸的时机把握好,曲腿前伸臂后摆,落地后往前不往后。</p>',
-    longjump:
-      '<p><span style="color: #13ED84">起跳:</span>起跳时,身体要正对着前方,不要偏向一侧。同时,起跳方向应该与身体的方向保持一致。踏板时,要用前脚掌迅速而有力地踩踏板,以产生足够的爆发力。</p><p><span style="color: #13ED84">腾空:</span>在腾空阶段,要控制好身体的姿态,保持身体的平衡和稳定。同时控制好身体的重心,以避免在落地时失去平衡。</p><p><span style="color: #13ED84">落地:</span>收腹举腿,小腿往前伸,同时双臂用力往后摆动,并屈膝落地缓冲。</p>',
-    verticaljump:
-      '<p><span style="color: #13ED84">预摆:</span>两脚左右开立,与肩同宽,两臂前后摆动,前摆时,两腿伸直,后摆时,屈膝降低重心,上体稍前倾,手尽量往后摆。</p><p><span style="color: #13ED84">起跳腾空:</span>蹬地快速有力,腿蹬和手摆要协调,空中展体要充分,强调离地前的前脚掌瞬间蹬地动作</p><p><span style="color: #13ED84">落地缓冲:</span>落地时用前脚掌着地屈膝缓冲。</p>',
-    pullup:
-      '<p><span style="color: #13ED84">发力:</span>发力时要注意使用背部肌肉,而不是手臂肌肉。注意肩胛骨收缩,找到背部发力的感觉。</p><p><span style="color: #13ED84">呼吸:</span>向上拉起时呼气,放下时吸气。不要憋气或屏住呼吸,会影响身体的血液循环和氧气供应。</p><p><span style="color: #13ED84">姿势:</span>姿势要保持一条直线,不要弯曲或扭曲身体。同时,注意放松身体,不要过度紧张或用力过猛。</p>',
-    situp:
-      '<p><span style="color: #13ED84">准备姿势:</span>仰卧,两腿屈膝,腿稍分开,屈膝呈90度,两手贴于耳朵后,两手的作用是托住颈部,使颈部保持微微前屈的姿势。</p><p><span style="color: #13ED84">上体前屈:</span>卷腹前屈至双手肘碰到膝关节的位置,着重要使用腰腹力量,而不是用手掰脖子。同时臀部贴地,膝关节并拢。</p><p><span style="color: #13ED84">上体仰卧:</span>上体向后倒至身体的双肩背部同时触垫。</p><p><span style="color: #13ED84">呼吸节奏:</span>向后倒时吸气,往前屈体时呼气</p>',
-    trijump:
-      '<p><span style="color: #13ED84">预摆:</span>两脚左右开立,与肩同宽,两臂前后摆动,前摆时,两腿伸直,后摆时,屈膝降低重心(大腿与小腿夹角90度左右),上体稍前倾,手尽量往后摆。</p><p><span style="color: #13ED84">第一、二跳:</span>落地重心不能太低,否则下一级会跳不起来,要做到快速跳跃,前脚掌落地,落地的瞬间,手臂迅速有力的向上摆动,带动身体快速跳跃。</p><p><span style="color: #13ED84">第三跳:</span>两脚快速用力蹬地,同时两臂稍屈由后往前上方摆动,向前上方跳起腾空,并充分展体。</p>',
-    sidepullup:
-      '<p><span style="color: #13ED84">预备:</span>面向单杠,自然站立,两手分开与肩同宽,正握杠,两腿前伸,两脚着地并由同伴压住两脚,保持两臂与躯干呈90°,身体斜向下垂。</p><p><span style="color: #13ED84">发力:</span>使用上肢力量和背部力量,身体要保持挺直,不得塌腰和挺腹。</p><p><span style="color: #13ED84">呼吸:</span>向上拉起时呼气,放下时吸气。不要憋气或屏住呼吸,会影响身体的血液循环和氧气供应。</p>',
-    jumprope:
-      '<p><span style="color: #13ED84">上身:</span>要保持正直,目视前方一米处。采取单脚交替跳时,上体自然下压,尽可能的做到“挺胸、塌腰、翘臀”。</p><p><span style="color: #13ED84">摇绳:</span>大臂要贴紧身体,小臂放在大腿侧前方。利用手腕“外旋内转“摇绳,可提高摇绳速度。摇绳时,切忌手腕外翻掌心朝前,容易导致小臂外侧肌肉紧张酸痛,影响摇绳速度。</p><p><span style="color: #13ED84">脚落地:</span>脚在落地时切忌前后移动,用前脚掌着地,以减少失误。</p>',
-    jumpingjack:
-      '<p><span style="color: #13ED84">站姿准备:</span>开始时,双脚并拢,脚尖微微向前,双臂自然下垂,身体保持直立。</p><p><span style="color: #13ED84">双手上举:</span>双手从身体两侧向上举至头顶,掌心相对,手臂伸直。</p><p><span style="color: #13ED84">跳起:</span>用脚尖发力,向上跳起,同时双臂从两侧打开至头顶并伸直。</p><p><span style="color: #13ED84">落地:</span>落地时,用前脚掌着地,膝盖微屈,以吸收冲击力。</p>',
-    highknees:
-      '<p><span style="color: #13ED84">上身:</span>保持身体正直,保持身体重心不前倾和后仰。肩膀时刻放松,双臂摆动要与抬腿协调。</p><p><span style="color: #13ED84">抬腿:</span>屈膝用力上顶,大腿抬至臀部高度位置,支撑腿保持伸直,换脚时要用前脚掌着地,同时学会利用反弹力量,使动作有节奏地进行。</p><p><span style="color: #13ED84">呼吸:</span>呼吸要自然,可采用三步一吸三步一呼。</p>',
-    solidball:
-      '<p><span style="color: #13ED84">持球:</span>两手用手指包球,两手心空出,大拇指交叉或并排放在球底,小指放在球的两侧,其余六手指对称来托球。</p><p><span style="color: #13ED84">预摆:</span>球依次是从前下方经过胸前至头后上方,充分挺宽、展肩,身体形成反弓形,同时吸气。</p><p><span style="color: #13ED84">投掷:</span>预摆结束时两手握球用力积极从后上方向前上方前摆,此时的动作特点是蹬腿、送髋、腰腹急震用力,两臂用力前摆并向前拨指和腕,旨在提高手臂的鞭打速度。</p>',
-    shotput:
-      '<p><span style="color: #13ED84">握球:</span>把球放在食指、中指和无名指的指根上,大拇指和小指支撑在球的两侧,以防止球的滑动和便于控制出球的方向。</p><p><span style="color: #13ED84">预摆:</span>身体左侧对投掷方向,两脚左右开立比肩稍宽,左脚尖指向斜前方并与右脚弓在一直线上;右膝弯曲,上体向右倾斜扭转,重心落在右腿上;左臂微屈于胸前,使球的垂直线离开右脚外侧,以加长用力距离和拉紧左侧肌肉。</p><p><span style="color: #13ED84">推球:</span>右脚迅速用力蹬地,脚跟提起,右膝内转,右髋前送,使上体向左侧抬起,朝着投掷方向转动。球离手时手腕要用力,并用手指拨球。</p>',
-    run50: '50米',
-    run60: '60米',
-    run70: '70米',
-    run100: '100米',
-    run200: '200米',
-    run400: '400米',
-    run800: '800米',
-    runa800: '脚环800',
-    runa1000: '脚环1000',
-    run1000: '1000米',
-    skiprope: '蓝牙跳绳',
-    heartbeat: '心率监测',
-    bmi: 'BMI',
-    sitforbend: '坐位体前屈',
-    vitalcap: '肺活量',
-    run15x4: '15x4往返跑',
-    run50x8: '50x8往返跑',
-    run10x4: '10x4往返跑',
-    swim100: '游泳100米',
-    swim200: '游泳200米',
-    football:
-      '<p><span style="color: #13ED84">熟悉球性:</span>带球散步,让球能跟着你走,再带球慢跑,能把球带上,但不能离开脚的控制,接着学会内脚侧运球,左右脚交替运球。</p><p><span style="color: #13ED84">绕杆练习:</span>尽量让球绕着杆边过,让球以最短的路线运行。绕杆变向之前的推球不能太大,用外脚背推球变向,向左用左脚、向右用右脚。带球频率要快,推球不能离开脚太大,否则会失控。</p>',
-    basketball:
-      '<p><span style="color: #13ED84">运球:</span>运球时用手掌的边缘触球,手掌心不能触球;发力时,手指、手腕控制球的方向和速度;运球时身体重心要低,腰要直;非运球手、臂抬起保护球。</p><p><span style="color: #13ED84">身体姿态:</span>保持正确的身体姿势,体会手按拍和迎引球的动作,抬头,用眼余光看球。运球时手臂动作的放松和紧张要交替进行,掌握好手触球的位置和力量。</p>',
-    volleyball:
-      '<p><span style="color: #13ED84">垫球发力:</span>垫球时根据落球力量、速度和垫击的距离,掌握好手臂迎击球的用力和缓冲作用。如落球速度慢或垫击球的距离较远时,垫击用力大些,必须加大抬臂击球动作,来增加球的反弹力;如落球速度快或垫击距离较近,垫击时,可用力小些,靠球的反弹力量将球垫起;如落球速度大,为了缓冲来球力量。<p><p><span style="color: #13ED84">击球部位:</span>正面双手垫球的击球点一般应保持在腹前一臂远距离,用小臂前半部腕关节以上内侧平面去击球。</p>',
-    pingpong: '乒乓球',
-    badminton: '羽毛球',
-    tennis: '网球',
-    wushu: '武术',
-    gymnastic: '体操',
-    grip: '肌力'
-  },
-
-  typeKeyObj: {
-    jump: {
-      arm_front_angle: {
-        standard: "120~135",
-        text: "前摆臂角度(°)",
-        textNU: "前摆臂角度",
-        unit: "°",
-      },
-      arm_back_angle: {
-        standard: "120~135",
-        text: "后摆臂角度(°)",
-        textNU: "后摆臂角度",
-        unit: "°",
-      },
-      jump_angle: {
-        standard: "38~45",
-        text: "起跳角度(°)",
-        textNU: "起跳角度",
-        unit: "°",
-      },
-      knee_angle: {
-        standard: "86~96",
-        text: "屈膝角度(°)",
-        textNU: "屈膝角度",
-        unit: "°",
-      },
-      height: {
-        standard: "30~35",
-        text: "腾空高度(cm)",
-        textNU: "腾空高度",
-        unit: "cm",
-      },
-      hip_angle: {
-        standard: "50~65",
-        text: "收腿角度(°)",
-        textNU: "收腿角度",
-        unit: "°",
-      },
-    },
-    longjump: {
-      height: {
-        standard: "30~35",
-        text: "腾空高度(cm)",
-        textNU: "腾空高度",
-        unit: "cm",
-      },
-      hip_angle: {
-        standard: "90-120",
-        text: "收腿幅度(°)",
-        textNU: "收腿幅度",
-        unit: "°",
-      },
-    },
-    situp: {
-      back_failed_num: {
-        text: "背部违规",
-        textNU: "背部违规",
-        unit: "个",
-      },
-      knee_failed_num: {
-        text: "腿部违规",
-        textNU: "腿部违规",
-        unit: "个",
-      },
-      hand_failed_num: {
-        text: "手部违规",
-        textNU: "手部违规",
-        unit: "个",
-      },
-      hip_failed_num: {
-        text: "臀部违规",
-        textNU: "臀部违规",
-        unit: "个",
-      },
-    },
-    pullup: {
-      elbow_failed_num: {
-        text: "手部违规",
-        textNU: "手部违规",
-        unit: "个",
-      },
-      knee_failed_num: {
-        text: "腿部违规",
-        textNU: "腿部违规",
-        unit: "个",
-      },
-    },
-    sidepullup: {
-      hip_failed_num: {
-        text: "手部违规",
-        textNU: "手部违规",
-        unit: "个",
-      },
-    },
-    solidball: {
-      height_start: {
-        standard: ">1.8",
-        text: "出手高度(m)",
-        textNU: "出手高度",
-        unit: "m",
-      },
-      angle_throw: {
-        standard: "45",
-        text: "出手角度(°)",
-        textNU: "出手角度",
-        unit: "°",
-      },
-      height_highest: {
-        text: "球最高高度(cm)",
-        textNU: "球最高高度",
-        unit: "cm",
-      },
-      velocity_start: {
-        standard: "8.5",
-        text: "球出手速度(m/s)",
-        textNU: "球出手速度",
-        unit: "m/s",
-      },
-      velocity_x_start: {
-        text: "出手水平速度m/s",
-        textNU: "出手水平速度m",
-        unit: "m/s",
-      },
-      velocity_y_start: {
-        text: "出手垂直速度m/s",
-        textNU: "出手垂直速度m",
-        unit: "m/s",
-      },
-      time_air: {
-        text: "球飞行时间(s)",
-        textNU: "球飞行时间",
-        unit: "s",
-      },
-    },
-    shotput: {
-      height_start: {
-        standard: ">1.8",
-        text: "出手高度(m)",
-        textNU: "出手高度",
-        unit: "m",
-      },
-      angle_throw: {
-        standard: "45",
-        text: "出手角度(°)",
-        textNU: "出手角度",
-        unit: "°",
-      },
-      height_highest: {
-        standard: "",
-        text: "球最高高度(cm)",
-        textNU: "球最高高度",
-        unit: "cm",
-      },
-      velocity_start: {
-        standard: "8.5",
-        text: "球出手速度(m/s)",
-        textNU: "球出手速度",
-        unit: "m/s",
-      },
-      velocity_x_start: {
-        standard: "",
-        text: "出手水平速度m/s",
-        textNU: "出手水平速度m",
-        unit: "m/s",
-      },
-      velocity_y_start: {
-        standard: "",
-        text: "出手垂直速度m/s",
-        textNU: "出手垂直速度m",
-        unit: "m/s",
-      },
-      time_air: {
-        standard: "",
-        text: "球飞行时间(s)",
-        textNU: "球飞行时间",
-        unit: "s",
-      },
-    },
-    trijump: {
-      distances: {
-        standard: "",
-        text: "跳跃距离(m)",
-        textNU: "跳跃距离",
-        unit: "m",
-      },
-      arm_front_angles: {
-        standard: "135-160",
-        text: "前摆臂幅度(°)",
-        textNU: "前摆臂幅度",
-        unit: "°",
-      },
-      arm_back_angles: {
-        standard: "120-140",
-        text: "后摆臂幅度(°)",
-        textNU: "后摆臂幅度",
-        unit: "°",
-      },
-      knee_angles: {
-        standard: "75-90",
-        text: "屈膝幅度(°)",
-        textNU: "屈膝幅度",
-        unit: "°",
-      },
-      jump_angles: {
-        standard: "45",
-        text: "起跳角度(°)",
-        textNU: "起跳角度",
-        unit: "°",
-      },
-      heights: {
-        standard: "35-50",
-        text: "腾空高度(cm)",
-        textNU: "腾空高度",
-        unit: "cm",
-      },
-      hip_angles: {
-        standard: "< 90",
-        text: "收腿幅度(°)",
-        textNU: "收腿幅度",
-        unit: "°",
-      },
-    },
-    jumprope: {},
-    skiprope: {},
-    heartbeat: {},
-  },
-
-  anchorLabelObj: {
-    cam_path: "测试摄像头",
-    anchor_path: "测试布点文件",
-    cam_face_path: "人脸摄像头",
-    anchor_face_path: "人脸布点文件",
-    flag_calibrate: "测试相机矫正",
-    cam_param_path: "矫正文件",
-    flag_check_person: "干扰提示",
-    flag_check_stline: "踩线提示",
-    distance_ground: "地面总长度",
-    distance_ground_between_lines: "地线间隔",
-    length_ground_line: "地线宽度",
-    flag_save: "保存视频",
-    flag_display: "画面显示",
-    distance_air_between_lines: "高线间隔",
-    length_air_line: "高线高度",
-    test_time: "测试时长(s)",
-    flag_check_back: "背部检测",
-    flag_check_knee: "膝盖检测",
-    flag_check_hand: "手部检测",
-    flag_check_elbow: "肘部检测",
-    flag_check_hip: "臀部检测",
-    difficulty: "难度系数",
-    num_of_tracks: "跑道数",
-    num_of_tracks_startline: "起跑线跑道数",
-    num_of_tracks_endline: "终点线跑道数",
-    delay_cam_second: "摄像头延时",
-    delay_cmd_second: "其他延时",
-    cam_0_path: "辅助摄像头",
-    anchor_0_path: "辅助布点文件",
-    distance_per_round: "每圈长度(m)",
-    flag_check_singleleg_jump: "单脚跳检测",
-    distance_maximum: "最长距离",
-    height_maximum: "最大高度",
-  },
-
-
-  anchorSetsObj: {
-    basic: {
-      names: ["Btl", "Btr", "Bbr", "Bbl", "Ftl", "Ftr", "Fbr", "Fbl"],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [4, 5],
-        [5, 6],
-        [6, 7],
-        [7, 4],
-      ],
-      required: { cam_path: "", anchor_path: "", cam_fps: 25 },
-      advanced: {},
-      reserved: {
-        flag_save: 1,
-        flag_display: 0,
-        cam_face_path: "",
-        anchor_face_path: "",
-        cam_face_fps: 25,
-      },
-    },
-    situp: {
-      names: ["Btl", "Btr", "Bbr", "Bbl", "Ftl", "Ftr", "Fbr", "Fbl"],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [4, 5],
-        [5, 6],
-        [6, 7],
-        [7, 4],
-      ],
-      advanced: {
-        test_time: 60,
-        flag_check_back: 1,
-        flag_check_hip: 1,
-        flag_check_knee: 1,
-        flag_check_hand: 0,
-        flag_check_elbow: 0,
-      },
-      reserved: {},
-    },
-    pullup: {
-      names: ["Btl", "Btr", "Bbr", "Bbl", "Ftl", "Ftr", "Fbr", "Fbl", "ls", "le"],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [4, 5],
-        [5, 6],
-        [6, 7],
-        [7, 4],
-        [8, 9],
-      ],
-      advanced: {
-        flag_check_knee: 1,
-        flag_check_elbow: 1,
-      },
-    },
-  
-    sidepullup: {
-      names: ["Btl", "Btr", "Bbr", "Bbl", "Ftl", "Ftr", "Fbr", "Fbl", "ls", "le"],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [4, 5],
-        [5, 6],
-        [6, 7],
-        [7, 4],
-        [8, 9],
-      ],
-      advanced: {
-        flag_check_hip: 1,
-      },
-    },
-  
-    jumprope: {
-      names: ["Btl", "Btr", "Bbr", "Bbl", "Ftl", "Ftr", "Fbr", "Fbl"],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [4, 5],
-        [5, 6],
-        [6, 7],
-        [7, 4],
-      ],
-      advanced: {
-        test_time: 60,
-      },
-    },
-    highknees: {
-      names: ["Btl", "Btr", "Bbr", "Bbl", "Ftl", "Ftr", "Fbr", "Fbl"],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [4, 5],
-        [5, 6],
-        [6, 7],
-        [7, 4],
-      ],
-      advanced: {
-        test_time: 60,
-      },
-    },
-  
-    volleyballv1: {
-    },
-  
-    squat: {
-      names: ["Btl", "Btr", "Bbr", "Bbl", "Ftl", "Ftr", "Fbr", "Fbl"],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [4, 5],
-        [5, 6],
-        [6, 7],
-        [7, 4],
-      ],
-      advanced: {
-        test_time: 60,
-      },
-    },
-    jumpleftright: {
-      names: ["Btl", "Btr", "Bbr", "Bbl", "Ftl", "Ftr", "Fbr", "Fbl"],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [4, 5],
-        [5, 6],
-        [6, 7],
-        [7, 4],
-      ],
-      advanced: {
-        test_time: 60,
-      },
-    },
-    crossjump: {
-      names: ["Btl", "Btr", "Bbr", "Bbl", "Ftl", "Ftr", "Fbr", "Fbl"],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [4, 5],
-        [5, 6],
-        [6, 7],
-        [7, 4],
-      ],
-      advanced: {
-        test_time: 60,
-      },
-    },
-    kneeupclap: {
-      names: ["Btl", "Btr", "Bbr", "Bbl", "Ftl", "Ftr", "Fbr", "Fbl"],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [4, 5],
-        [5, 6],
-        [6, 7],
-        [7, 4],
-      ],
-      advanced: {
-        test_time: 60,
-      },
-    },
-  
-    jumpingjack: {},
-    jump: {
-      names: [
-        "Btl",
-        "Btr",
-        "Bbr",
-        "Bbl",
-        "Ftl",
-        "Ftr",
-        "Fbr",
-        "Fbl",
-        "l0s",
-        "l0e",
-        "l1s",
-        "l1e",
-        "l2s",
-        "l2e",
-        "l3s",
-        "l3e",
-        "l4s",
-        "l4e",
-        "l5s",
-        "l5e",
-        "l6s",
-        "l6e",
-        "h0s",
-        "h0e",
-        "h1s",
-        "h1e",
-        "h2s",
-        "h2e",
-        "h3s",
-        "h3e",
-        "h4s",
-        "h4e",
-        "h5s",
-        "h5e",
-        "h6s",
-        "h6e",
-      ],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [4, 5],
-        [5, 6],
-        [6, 7],
-        [7, 4],
-        [8, 9],
-        [10, 11],
-        [12, 13],
-        [14, 15],
-        [16, 17],
-        [18, 19],
-        [20, 21],
-        [22, 23],
-        [24, 25],
-        [26, 27],
-        [28, 29],
-        [30, 31],
-        [32, 33],
-        [34, 35],
-      ],
-      advanced: {
-        cam_param_path: "",
-        flag_calibrate: 0,
-        flag_check_stline: 0,
-        flag_check_person: 1,
-        flag_check_singleleg_jump: 0,
-      },
-      reserved: {
-        distance_ground_between_lines: 50,
-        length_ground_line: 80,
-        distance_air_between_lines: 50,
-        length_air_line: 50,
-      },
-    },
-  
-    longjump: {
-      names: [
-        "Btl",
-        "Btr",
-        "Bbr",
-        "Bbl",
-        "Ftl",
-        "Ftr",
-        "Fbr",
-        "Fbl",
-        "l0s",
-        "l0e",
-        "l1s",
-        "l1e",
-        "l2s",
-        "l2e",
-        "l3s",
-        "l3e",
-        "l4s",
-        "l4e",
-        "l5s",
-        "l5e",
-        "l6s",
-        "l6e",
-        "h0s",
-        "h0e",
-        "h1s",
-        "h1e",
-        "h2s",
-        "h2e",
-        "h3s",
-        "h3e",
-        "h4s",
-        "h4e",
-        "h5s",
-        "h5e",
-        "h6s",
-        "h6e",
-      ],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [4, 5],
-        [5, 6],
-        [6, 7],
-        [7, 4],
-        [8, 9],
-        [10, 11],
-        [12, 13],
-        [14, 15],
-        [16, 17],
-        [18, 19],
-        [20, 21],
-        [22, 23],
-        [24, 25],
-        [26, 27],
-        [28, 29],
-        [30, 31],
-        [32, 33],
-        [34, 35],
-      ],
-      required: {
-        distance_maximum: 800,
-      },
-      advanced: {
-        cam_param_path: "",
-        flag_calibrate: 0,
-        flag_check_stline: 0,
-        flag_check_person: 1,
-      },
-      reserved: {
-        distance_ground_between_lines: 50,
-        length_ground_line: 80,
-        distance_air_between_lines: 50,
-        length_air_line: 50,
-      },
-    },
-  
-    verticaljump: {
-      // 这个要配置【基础设置】才会有显示
-      required: {
-        cam_path: "",
-        anchor_path: "",
-        cam_fps: 25,
-        cam_param_path: "1",
-        flag_calibrate: 1,
-        height_maximum: 300,
-      },
-      advanced: {},
-      reserved: {
-        flag_save: 1,
-        flag_display: 0,
-        cam_face_path: "",
-        anchor_face_path: "",
-        cam_face_fps: 25,
-        height_air_between_lines: 50,
-      },
-    },
-  
-    trijump: {
-      names: [
-        "Btl",
-        "Btr",
-        "Bbr",
-        "Bbl",
-        "Ftl",
-        "Ftr",
-        "Fbr",
-        "Fbl",
-        "l0s",
-        "l0e",
-        "l1s",
-        "l1e",
-        "l2s",
-        "l2e",
-        "l3s",
-        "l3e",
-        "l4s",
-        "l4e",
-        "l5s",
-        "l5e",
-        "l6s",
-        "l6e",
-        "l7s",
-        "l7e",
-        "l8s",
-        "l8e",
-        "l9s",
-        "l9e",
-        "l10s",
-        "l10e",
-        "l11s",
-        "l11e",
-        "l12s",
-        "l12e",
-        "l13s",
-        "l13e",
-        "l14s",
-        "l14e",
-        "l15s",
-        "l15e",
-        "l16s",
-        "l16e",
-        "l17s",
-        "l17e",
-        "l18s",
-        "l18e",
-        "h0s",
-        "h0e",
-        "h2s",
-        "h2e",
-        "h4s",
-        "h4e",
-        "h6s",
-        "h6e",
-        "h8s",
-        "h8e",
-        "h10s",
-        "h10e",
-        "h12s",
-        "h12e",
-        "h14s",
-        "h14e",
-        "h16s",
-        "h16e",
-        "h18s",
-        "h18e",
-      ],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [4, 5],
-        [5, 6],
-        [6, 7],
-        [7, 4],
-        [8, 9],
-        [10, 11],
-        [12, 13],
-        [14, 15],
-        [16, 17],
-        [18, 19],
-        [20, 21],
-        [22, 23],
-        [24, 25],
-        [26, 27],
-        [28, 29],
-        [30, 31],
-        [32, 33],
-        [34, 35],
-        [36, 37],
-        [38, 39],
-        [40, 41],
-        [42, 43],
-        [44, 45],
-        [46, 47],
-        [48, 49],
-        [50, 51],
-        [52, 53],
-        [54, 55],
-        [56, 57],
-        [58, 59],
-        [60, 61],
-        [62, 63],
-        [64, 65],
-      ],
-      advanced: {
-        cam_param_path: "",
-        flag_calibrate: 0,
-        flag_check_stline: 0,
-        flag_check_person: 1,
-        cam_face_path: "",
-        anchor_face_path: "",
-        cam_face_fps: 25,
-      },
-      reserved: {
-        flag_save: 1,
-        flag_display: 0,
-        distance_ground_between_lines: 50,
-        length_ground_line: 80,
-        distance_air_between_lines: 100,
-        length_air_line: 50,
-      },
-    },
-  
-    solidball: {
-      names: [
-        "Btl",
-        "Btr",
-        "Bbr",
-        "Bbl",
-        "Ftl",
-        "Ftr",
-        "Fbr",
-        "Fbl",
-        "Stl",
-        "Str",
-        "Sbr",
-        "Sbl",
-        "Ctl",
-        "Ctr",
-        "Cbr",
-        "Cbl",
-        "l0s",
-        "l0e",
-        "l1s",
-        "l1e",
-        "l2s",
-        "l2e",
-        "l3s",
-        "l3e",
-        "l4s",
-        "l4e",
-        "l5s",
-        "l5e",
-        "l6s",
-        "l6e",
-        "l7s",
-        "l7e",
-        "l8s",
-        "l8e",
-        "l9s",
-        "l9e",
-        "l10s",
-        "l10e",
-        "l11s",
-        "l11e",
-        "l12s",
-        "l12e",
-        "l13s",
-        "l13e",
-        "l14s",
-        "l14e",
-        "l15s",
-        "l15e",
-        "l16s",
-        "l16e",
-        "l17s",
-        "l17e",
-        "l18s",
-        "l18e",
-        "l19s",
-        "l19e",
-        "l20s",
-        "l20e",
-        "l21s",
-        "l21e",
-        "l22s",
-        "l22e",
-        "l23s",
-        "l23e",
-        "l24s",
-        "l24e",
-        "l25s",
-        "l25e",
-        "l26s",
-        "l26e",
-        "l27s",
-        "l27e",
-        "l28s",
-        "l28e",
-        "l29s",
-        "l29e",
-        "l30s",
-        "l30e",
-        "h0s",
-        "h0m",
-        "h0e",
-        "h1s",
-        "h1m",
-        "h1e",
-        "h2s",
-        "h2m",
-        "h2e",
-      ],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [4, 5],
-        [5, 6],
-        [6, 7],
-        [7, 4],
-        [8, 9],
-        [9, 10],
-        [10, 11],
-        [11, 8],
-        [12, 13],
-        [13, 14],
-        [14, 15],
-        [15, 12],
-        [16, 17],
-        [18, 19],
-        [20, 21],
-        [22, 23],
-        [24, 25],
-        [26, 27],
-        [28, 29],
-        [30, 31],
-        [32, 33],
-        [34, 35],
-        [36, 37],
-        [38, 39],
-        [40, 41],
-        [42, 43],
-        [44, 45],
-        [46, 47],
-        [48, 49],
-        [50, 51],
-        [52, 53],
-        [54, 55],
-        [56, 57],
-        [58, 59],
-        [60, 61],
-        [62, 63],
-        [64, 65],
-        [66, 67],
-        [68, 69],
-        [70, 71],
-        [72, 73],
-        [74, 75],
-        [76, 77],
-        [78, 79],
-        [79, 80],
-        [81, 82],
-        [82, 83],
-        [84, 85],
-        [85, 86],
-      ],
-      required: {
-        cam_param_path: "",
-        flag_calibrate: 1,
-        distance_ground: "",
-      },
-      advanced: {
-        flag_check_stline: 0,
-        distance_ground_between_lines: 50,
-        cam_face_path: "",
-        anchor_face_path: "",
-        cam_face_fps: 25,
-      },
-      reserved: {
-        length_ground_line: 80,
-      },
-    },
-  
-    shotput: {
-      names: [
-        "Btl",
-        "Btr",
-        "Bbr",
-        "Bbl",
-        "Ftl",
-        "Ftr",
-        "Fbr",
-        "Fbl",
-        "Stl",
-        "Str",
-        "Sbr",
-        "Sbl",
-        "Ctl",
-        "Ctr",
-        "Cbr",
-        "Cbl",
-        "l0s",
-        "l0e",
-        "l1s",
-        "l1e",
-        "l2s",
-        "l2e",
-        "l3s",
-        "l3e",
-        "l4s",
-        "l4e",
-        "l5s",
-        "l5e",
-        "l6s",
-        "l6e",
-        "l7s",
-        "l7e",
-        "l8s",
-        "l8e",
-        "l9s",
-        "l9e",
-        "l10s",
-        "l10e",
-        "l11s",
-        "l11e",
-        "l12s",
-        "l12e",
-        "l13s",
-        "l13e",
-        "l14s",
-        "l14e",
-        "l15s",
-        "l15e",
-        "l16s",
-        "l16e",
-        "l17s",
-        "l17e",
-        "l18s",
-        "l18e",
-        "l19s",
-        "l19e",
-        "l20s",
-        "l20e",
-        "l21s",
-        "l21e",
-        "l22s",
-        "l22e",
-        "l23s",
-        "l23e",
-        "l24s",
-        "l24e",
-        "l25s",
-        "l25e",
-        "l26s",
-        "l26e",
-        "l27s",
-        "l27e",
-        "l28s",
-        "l28e",
-        "l29s",
-        "l29e",
-        "l30s",
-        "l30e",
-        "h0s",
-        "h0m",
-        "h0e",
-        "h1s",
-        "h1m",
-        "h1e",
-        "h2s",
-        "h2m",
-        "h2e",
-        "O",
-        "B0",
-        "B1",
-      ],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [4, 5],
-        [5, 6],
-        [6, 7],
-        [7, 4],
-        [8, 9],
-        [9, 10],
-        [10, 11],
-        [11, 8],
-        [12, 13],
-        [13, 14],
-        [14, 15],
-        [15, 12],
-        [16, 17],
-        [18, 19],
-        [20, 21],
-        [22, 23],
-        [24, 25],
-        [26, 27],
-        [28, 29],
-        [30, 31],
-        [32, 33],
-        [34, 35],
-        [36, 37],
-        [38, 39],
-        [40, 41],
-        [42, 43],
-        [44, 45],
-        [46, 47],
-        [48, 49],
-        [50, 51],
-        [52, 53],
-        [54, 55],
-        [56, 57],
-        [58, 59],
-        [60, 61],
-        [62, 63],
-        [64, 65],
-        [66, 67],
-        [68, 69],
-        [70, 71],
-        [72, 73],
-        [74, 75],
-        [76, 77],
-        [78, 79],
-        [79, 80],
-        [81, 82],
-        [82, 83],
-        [84, 85],
-        [85, 86],
-        [87, 88],
-        [87, 89],
-      ],
-      required: {
-        cam_param_path: "",
-        flag_calibrate: 1,
-        distance_ground: "",
-      },
-      advanced: {
-        flag_check_stline: 0,
-  
-        cam_face_path: "",
-        anchor_face_path: "",
-        cam_face_fps: 25,
-        distance_ground_between_lines: 50,
-      },
-      reserved: {
-        length_ground_line: 80,
-      },
-    },
-  
-    shortrun_st: {
-      names: [
-        "Btl",
-        "Btr",
-        "Bbr",
-        "Bbl",
-        "Ftl",
-        "Ftr",
-        "Fbr",
-        "Fbl",
-        "c0",
-        "c1",
-        "c2",
-        "c3",
-        "c4",
-        "c5",
-        "c6",
-        "c7",
-        "c8",
-        "c9",
-      ],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [4, 5],
-        [5, 6],
-        [6, 7],
-        [7, 4],
-      ],
-    },
-    shortrun: {
-      names: [
-        "Btl",
-        "Btr",
-        "Bbr",
-        "Bbl",
-        "",
-        "",
-        "",
-        "",
-        "l00",
-        "l01",
-        "l02",
-        "l10",
-        "l11",
-        "l12",
-        "l20",
-        "l21",
-        "l22",
-        "l30",
-        "l31",
-        "l32",
-        "l40",
-        "l41",
-        "l42",
-        "l50",
-        "l51",
-        "l52",
-        "l60",
-        "l61",
-        "l62",
-        "l70",
-        "l71",
-        "l72",
-        "l80",
-        "l81",
-        "l82",
-        "l90",
-        "l91",
-        "l92",
-      ],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [8, 9],
-        [9, 10],
-        [11, 12],
-        [12, 13],
-        [14, 15],
-        [15, 16],
-        [17, 18],
-        [18, 19],
-        [20, 21],
-        [21, 22],
-        [23, 24],
-        [24, 25],
-        [26, 27],
-        [27, 28],
-        [29, 30],
-        [30, 31],
-        [32, 33],
-        [33, 34],
-        [35, 36],
-        [36, 37],
-      ],
-      required: {
-        cam_face_path: "",
-        anchor_face_path: "",
-        cam_face_fps: 25,
-        distance_per_round: 400,
-        num_of_tracks: "",
-        delay_cam_second: 0.45,
-        delay_cmd_second: 0.2,
-      },
-      advanced: {},
-      reserved: {},
-    },
-    longrun_st: {
-      names: ["Btl", "Btr", "Bbr", "Bbl", "Ftl", "Ftr", "Fbr", "Fbl"],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [4, 5],
-        [5, 6],
-        [6, 7],
-        [7, 4],
-      ],
-    },
-    longrun: {
-      names: [
-        "Btl",
-        "Btr",
-        "Bbr",
-        "Bbl",
-        "",
-        "",
-        "",
-        "",
-        "l00",
-        "l01",
-        "l02",
-        "l10",
-        "l11",
-        "l12",
-        "l20",
-        "l21",
-        "l22",
-        "l30",
-        "l31",
-        "l32",
-        "l40",
-        "l41",
-        "l42",
-        "l50",
-        "l51",
-        "l52",
-        "l60",
-        "l61",
-        "l62",
-        "l70",
-        "l71",
-        "l72",
-        "l80",
-        "l81",
-        "l82",
-        "l90",
-        "l91",
-        "l92",
-      ],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [8, 9],
-        [9, 10],
-        [11, 12],
-        [12, 13],
-        [14, 15],
-        [15, 16],
-        [17, 18],
-        [18, 19],
-        [20, 21],
-        [21, 22],
-        [23, 24],
-        [24, 25],
-        [26, 27],
-        [27, 28],
-        [29, 30],
-        [30, 31],
-        [32, 33],
-        [33, 34],
-        [35, 36],
-        [36, 37],
-      ],
-      required: {
-        cam_face_path: "",
-        anchor_face_path: "",
-        cam_0_path: "",
-        anchor_0_path: "",
-        cam_face_fps: 25,
-        distance_per_round: 400,
-        num_of_tracks_startline: "",
-        num_of_tracks_endline: "",
-        delay_cam_second: 0.45,
-        delay_cmd_second: 0.2,
-      },
-      advanced: {},
-      reserved: {},
-    },
-    backrun_st: {
-      names: [
-        "Btl",
-        "Btr",
-        "Bbr",
-        "Bbl",
-        "Ftl",
-        "Ftr",
-        "Fbr",
-        "Fbl",
-        "c0",
-        "c1",
-        "c2",
-        "c3",
-        "c4",
-        "c5",
-        "c6",
-        "c7",
-        "c8",
-        "c9",
-      ],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [4, 5],
-        [5, 6],
-        [6, 7],
-        [7, 4],
-      ],
-    },
-    backrun_mid: {
-      names: [
-        "Btl",
-        "Btr",
-        "Bbr",
-        "Bbl",
-        "",
-        "",
-        "",
-        "",
-        "l00",
-        "l01",
-        "l02",
-        "l10",
-        "l11",
-        "l12",
-        "l20",
-        "l21",
-        "l22",
-        "l30",
-        "l31",
-        "l32",
-        "l40",
-        "l41",
-        "l42",
-        "l50",
-        "l51",
-        "l52",
-        "l60",
-        "l61",
-        "l62",
-        "l70",
-        "l71",
-        "l72",
-        "l80",
-        "l81",
-        "l82",
-        "l90",
-        "l91",
-        "l92",
-      ],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [8, 9],
-        [9, 10],
-        [11, 12],
-        [12, 13],
-        [14, 15],
-        [15, 16],
-        [17, 18],
-        [18, 19],
-        [20, 21],
-        [21, 22],
-        [23, 24],
-        [24, 25],
-        [26, 27],
-        [27, 28],
-        [29, 30],
-        [30, 31],
-        [32, 33],
-        [33, 34],
-        [35, 36],
-        [36, 37],
-      ],
-    },
-    backrun: {
-      names: [
-        "Btl",
-        "Btr",
-        "Bbr",
-        "Bbl",
-        "",
-        "",
-        "",
-        "",
-        "l00",
-        "l01",
-        "l02",
-        "l10",
-        "l11",
-        "l12",
-        "l20",
-        "l21",
-        "l22",
-        "l30",
-        "l31",
-        "l32",
-        "l40",
-        "l41",
-        "l42",
-        "l50",
-        "l51",
-        "l52",
-        "l60",
-        "l61",
-        "l62",
-        "l70",
-        "l71",
-        "l72",
-        "l80",
-        "l81",
-        "l82",
-        "l90",
-        "l91",
-        "l92",
-      ],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [8, 9],
-        [9, 10],
-        [11, 12],
-        [12, 13],
-        [14, 15],
-        [15, 16],
-        [17, 18],
-        [18, 19],
-        [20, 21],
-        [21, 22],
-        [23, 24],
-        [24, 25],
-        [26, 27],
-        [27, 28],
-        [29, 30],
-        [30, 31],
-        [32, 33],
-        [33, 34],
-        [35, 36],
-        [36, 37],
-      ],
-      required: {
-        cam_face_path: "",
-        anchor_face_path: "",
-        cam_0_path: "",
-        anchor_0_path: "",
-        cam_face_fps: 25,
-        distance_per_round: 400,
-        num_of_tracks: "",
-        delay_cam_second: 0.45,
-        delay_cmd_second: 0.2,
-      },
-      advanced: {},
-      reserved: {},
-    },
-    footballv1: {
-      names: [
-        "Btl",
-        "Btr",
-        "Bbr",
-        "Bbl",
-        "",
-        "",
-        "",
-        "",
-        "l00",
-        "l01",
-        "l02",
-        "l10",
-        "l11",
-        "l12",
-      ],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [8, 9],
-        [9, 10],
-        [11, 12],
-        [12, 13],
-      ],
-      required: {
-        cam_face_path: "",
-        anchor_face_path: "",
-        cam_face_fps: 25,
-        delay_cam_second: 0.45,
-        delay_cmd_second: 0.2,
-      },
-    },
-    snakerun: {
-      names: [
-        "Btl",
-        "Btr",
-        "Bbr",
-        "Bbl",
-        "",
-        "",
-        "",
-        "",
-        "l00",
-        "l01",
-        "l02",
-        "l10",
-        "l11",
-        "l12",
-      ],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [8, 9],
-        [9, 10],
-        [11, 12],
-        [12, 13],
-      ],
-      required: {
-        cam_face_path: "",
-        anchor_face_path: "",
-        cam_face_fps: 25,
-        delay_cam_second: 0.45,
-        delay_cmd_second: 0.2,
-      },
-    },
-    basketballv1: {
-      names: [
-        "Btl",
-        "Btr",
-        "Bbr",
-        "Bbl",
-        "",
-        "",
-        "",
-        "",
-        "l00",
-        "l01",
-        "l02",
-        "l10",
-        "l11",
-        "l12",
-      ],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [8, 9],
-        [9, 10],
-        [11, 12],
-        [12, 13],
-      ],
-      required: {
-        cam_face_path: "",
-        anchor_face_path: "",
-        cam_face_fps: 25,
-        delay_cam_second: 0.45,
-        delay_cmd_second: 0.2,
-      },
-    },
-    basictime: {
-      required: {
-        cam_face_path: "",
-        anchor_face_path: "",
-        cam_face_fps: 25,
-        delay_cam_second: 0.45,
-        delay_cmd_second: 0.2,
-      },
-    },
-    basicface: {
-      required: {
-        cam_face_path: "",
-        anchor_face_path: "",
-        cam_face_fps: 25,
-      },
-    },
-  
-    face: {
-      names: ["Btl", "Btr", "Bbr", "Bbl", "Ftl", "Ftr", "Fbr", "Fbl"],
-      lines: [
-        [0, 1],
-        [1, 2],
-        [2, 3],
-        [3, 0],
-        [4, 5],
-        [5, 6],
-        [6, 7],
-        [7, 4],
-      ],
-    },
-  },
-};
-export default data;