egg-thing-parser

1.4.0 • Public • Published

egg-thing-parser

NPM version build status Test coverage David deps Known Vulnerabilities npm download

Install

$ npm i egg-thing-parser --save

Usage

// {app_root}/config/plugin.js
exports.thingParser = {
  enable: true,
  package: 'egg-thing-parser'
};

Configuration

// {app_root}/config/config.default.js
exports.thingParser = {};

see config/config.default.js for more detail.

Example

数据解析

// TLV数据解析:app.thing.tlv.parser.parse(buffer)
// 输入:Buffer
// 输出:
{
  version: "1.0.0",
  id:xxxx, // 消息id,4字节无符号整数
  operations: {
    code: xxxx, // 操作码,1字节无符号整数
    operation: 'response', // 操作类型 'request','response'
    type: 'device', // 设备类型 'device'-普通设备,'subDevice'-子设备
    target: 'resource', // 操作对象 'resource'-资源,'system'-系统
    method:'read', // 操作名 'read', 'write', 'notify', 'reset', 'recovery', 'register', 'deregister','enable','disable','label','upgrade','online','offline'
  }, // 操作码信息
  code: xxxx, // 响应码,1字节无符号整数
  time: "xxxxxx", // 时间戳(插件注入,非设备上报)
  data: {
    groupId: 3, // 组合功能点Id
    params: {
      3: {
        value: {
          1: {
            value: "xxxx",
            type: "boolean", // 数据类型 - ['boolean', 'enum', 'integer', 'float', 'buffer', 'string', 'exception']
            resource: "common", // 资源类型 - ['common'-普通, 'static'-固定, 'combine'-组合]
            message: "property" // 功能点类型 - ['property'-属性, 'event'-事件, 'reserve'-保留字段, 'custom'-自定义]
          }
        },
        type: "buffer",
        resource: "combine",
        message: "property",
      },
      2: {
        value: "xxxx",
        type: "boolean",
        resource: "static",
        message: "property",
      }
    }
  }
}

数据封装

// TLV数据封装: app.thing.tlv.packager.package(json)
// 输出:Buffer
// 输入:
{
  version: '1.0.0', // 版本号:1.0.0
  id: xxxx, // 消息id,4字节无符号整数
  operations: {
    code: xxxx, // 操作码,1字节无符号整数(当code存在时,code的值即为操作码值,否则需要通过method、target、type和operation共同计算出操作码)
    operation: 'response', // 操作类型 'request','response'
    type: 'device', // 设备类型 'device','subDevice'
    target: 'resource', // 操作对象 'resource','system'
    method:'read', // 操作名 'read', 'write', 'notify', 'reset', 'recovery', 'register', 'deregister','enable','disable','label','upgrade','online','offline'
  }, // 操作码信息
  code: xxxx, // 响应码,1字节无符号整数(operation为response时必须传)
  data: {
     groupId: xxxx, // 组合功能点id,2字节无符号整数(当groupId存在时,data为其包含的子功能点数据)
     params: [{
      functionId: xxxx, // 功能点id,2字节无符号整数
      valueType: 'string', // 数据类型 [ 'boolean', 'enum', 'integer', 'float', 'buffer', 'exception', 'string' ]
      value: 'asdf'
    }], // 当method为read且operation为request时,只需传functionId即可
  }
}

Questions & Suggestions

Please open an issue here.

License

MIT

Package Sidebar

Install

npm i egg-thing-parser

Weekly Downloads

0

Version

1.4.0

License

MIT

Unpacked Size

56 kB

Total Files

19

Last publish

Collaborators

  • jsonma