文档管理中心
指南线性马达能力附录JSON文件格式说明

JSON文件格式说明

JSON包含四个属性,version表示版本号,可取为1.0样式的格式;channels表示马达振动的通道数,规定为1;metadata表示马达振动波形配置文件数据,包含四个属性Title、Created、Description、Author均可缺省;waveform表示马达振动波形的相关信息,如通道、波形、调节曲线。
{
    "version": 1.0,
    "channels": 1,
    "metadata":   
    {
        "Title": "Haptic Wave Sample",
        "Created": "2020.8.28",
        "Description": "A sample of haptic wave file",
        "Author": "Huawei Technologies Co., Ltd."   
     },
    "waveform":  
    [...]
}
  • waveform属性是JSON数组,waveform的属性值由以下几个属性组成。
"waveform":
[      
    {
       "channel":"hapticA",
       "wave":
       [...],
       "adjustcurve":
       [...]    
    } 
]
  1. channel: 表示通道名称,代表一个马达,此次版本支持的值规定为hapticA。
  2. wave:表示马达振动波形,用slice属性代表每个波形,每个slice的属性值由以下几个属性组成。
    "wave":         
    [   
        {
            "slice":      
            {
                "time": 0,
                "type": "continuous",
                "duration": 50,
                "intensity": 1,
                "sharpness": 0.3      
            }  
        },   
        {
           "slice":      
           {
               "time": 400,
               "type": "continuous",
               "duration": 100,
               "intensity": 1 ,
               "sharpness": 0.3     
            }   
        }
    ]

    一个wave中可以有多个slice,slice的最大数目为64,考虑到用户友好性以及slice序列间隔控制,两个slice之间的time间隔取值在1000内即可。

    time:表示振动波形的时间间隔,类型为int类型,取值范围[0,1800000],单位为ms,考虑到用户友好性,建议取值在1000以内。当前slice的time要大于上个slice的time+duration的值且time的值必须惟一。

    type:表示振动波形的类型,属性值为string类型,取值为continuous。

    duration:表示振动波形时长,单位为ms,取值范围[0,1800000],考虑到马达振动的持续时间以及自身器件特性,建议取值为5秒。

    intensity:表示振动波形强度,属性值为浮点类型,取值范围[0,1],0代表振动强度为零,即不振动,数值越大则振动强度越大。

    sharpness:表示振动波形锐度,属性值为浮点类型,取值范围[0,1],0表示对振动频率无影响,数值越大则振动锐度越强。

  3. adjustcurve:表示振动波形的静态调节曲线,静态调节可分为强度调节与锐度调节。在原始波形基础上,强度调节为对原始波形进行乘除,即缩放作用;锐度调节为对原始波形进行加减,即增大/减小作用。
    "adjustcurve":
    [   
        {
            "intensity":      
            {
                "adjustpoint":         
                [              
                    { "time": 0, "parameters": 0.4 },            
                    { "time": 400, "parameters": 0.75 },            
                    { "time": 1200, "parameters": 2.0 }         
                ]      
             }   
         },   
         {
             "sharpness":      
             {
                 "adjustpoint":         
                 [            
                     { "time": 0, "parameters": -0.4 },            
                     { "time": 1200, "parameters": 0.75 }         
                 ]      
             }   
         }
    ]  

    intensity表示静态强度调节,属性存在时,其属性值中的adjustpoint属性不能缺省,time为静态强度调节曲线对应的时间戳,属性值为int类型,取值范围[0,1800000] ,单位为ms,该属性不可缺省;parameters为静态强度调节曲线对应的调节值,属性值为浮点类型,取值范围[0,1000],该属性不可缺省。

    sharpness表示静态锐度调节,属性存在时,其属性值中的adjustpoint属性不能缺省,time为静态锐度调节曲线对应的时间戳,属性值为int类型,取值范围[0,1800000],单位为ms,该属性不可缺省;parameters为静态锐度调节曲线对应的调节值,属性值为浮点类型,取值范围[-1,1] ,该属性不可缺省。

在 指南 中进行搜索
请输入您想要搜索的关键词