全部产品

app.json - 全局配置文件

更新时间:2020-09-22 19:38:30

app.json 用于对轻应用进行全局配置,设置页面文件的路径、硬件I/O口的配置等。

以下是一个基本配置示例:

{
  "version": "0.0.1",
  "io": {
    "D1": {
      "type": "GPIO",
      "port": 31,
      "dir": "output",
      "pull": "pullup"
    },
    "D2": {
      "type": "GPIO",
      "port": 32,
      "dir": "output",
      "pull": "pullup"
    },
    "D3": {
      "type": "GPIO",
      "port": 33,
      "dir": "output",
      "pull": "pullup"
    }
  },
  "debugLevel": "DEBUG",
  "repl": "enable"
}

完整配置如下:

配置项

类型

是否必填

描述

version

String

IoT轻应用版本号

io

Object

硬件接口配置

debugLevel

String

设置日志等级,默认为ERROR

在JS应用代码中,通过 appConfig 可以获取到 app.json 中的内容。

version 配置项

轻应用版本号。

io 配置项

不同的模组/芯片,各个端口和管脚的功能映射可能是不一样的。

IoT轻应用的配置文件 app.json 中,可将硬件(芯片)的物理端口映射成为统一的应用层逻辑端口。

这样映射的好处是在替换不同的硬件或者芯片时,只需要替换 app.json 而不用修改应用程序或设备程序,从而便于应用的跨平台运行。

IO配置项中有 type port 等硬件描述概念,对于每一款硬件(通常是芯片/模组/开发板)该配置文件均可能不同。

语法描述格式定义如下:

{
  "io": {
   "D1":{
      "type":"GPIO",
      "port":12,
      "dir":"output",
      "pull":"pullup"
    },
    "I2C0":{
      "type":"I2C",
      "port":0,
      "mode":"master",
      "addrWidth":7,
      "devAddr":270,
      "freq":100000
    }
  },
  "debugLevel": "DEBUG"
}

解释:

  • D1 I2C0:定义对象,后面大括号里面则描述了该对象的类型。 定义后可以在 JS 中直接使用。

  • type: 描述了该对象的类型,可以是IoT轻应用支持的硬件扩展类型,如 GPIO,I2C,ADC 等。

  • port:描述了该对象的端口,这里需要根据实际硬件连接及芯片的PIN 脚映射关系来填写。

  • dir pull: 是 GPIO 类型特有的,用于描述 GPIO 输出输出及上拉下拉,其他如 ADC 类型则有 sampling 采样频率这种类型描述。

外设 type 说明

io配置项的 type 用于描述该对象是什么硬件端口类型,而每一种type也拥有不同的属性字段,如 GPIO 与 ADC 的属性字段是不一样的。

GPIO

属性字段

数据类型

属性值

是否必须

字段说明

port

Number

1

配置端口值,端口值跟硬件接口有一一对应关系

dir

String

output

配置引脚方向,设置为输出模式(默认)

input

配置引脚方向,设置为输入模式

irq

配置引脚方向,设置为为中断模式

analog

配置引脚方向,设置为模拟 IO 模式

pull

String

pulldown

配置引脚电阻,设置为上拉模式(默认)

pullup

配置引脚电阻,设置为下拉模式

opendrain

配置引脚电阻,设置为开漏模式

intMode

String

rising

配置引脚中断模式,设置为上升沿触发

falling

配置引脚中断模式,设置为下降沿触发

both

配置引脚中断模式,设置为边沿触发(默认)

示例

{
  "io": {
    "D3": {
        "type": "GPIO", 
        "port": 22,
        "dir": "output",
        "pull": "pullup"
    },
    "D4": {
        "type": "GPIO",
        "port": 23,
        "dir": "irq",
        "pull": "pullup",
        "intMode": "rising"
    }
  },
  "debugLevel": "DEBUG"
}

UART

属性字段

数据类型

属性值

是否必须

字段说明

port

Number

1

配置端口值,这里跟芯片 datasheet上 的端口对应

dataWidth

Number

5/6/7/8

串口数据宽度值,默认为 8(bits)

baudRate

Number

9600、115200等

串口波特率,默认为 115200

stopBits

Number

1/2

串口停止位,默认为 1

flowControl

String

disable

流控设置,默认 disable

cts

rts

rtscts

parity

String

none

奇偶校验设置,默认 none

odd

even

示例

{
  "io": {
    "UART1":{
      "type":"UART",
      "port":1,
      "dataWidth":3,
      "baudRate":9600,
      "stopBits":1,
      "flowControl":"disable",
      "parity":"none"
    },
    "UART2":{
      "type":"UART",
      "port":2,
      "dataWidth":3,
      "baudRate":115200,
      "stopBits":1,
      "flowControl":"disable",
      "parity":"none"
    }
  },
  "debugLevel": "DEBUG"
}

I2C

属性字段

数据类型

属性值

是否必须

字段说明

port

Number

1

配置端口值,这里跟芯片 datasheet 上的端口对应

addrWidth

Number

7 或 10

配置 I2C 总线地址宽度,默认 7

freq

Number

100000、400000等

配置 I2C 总线频率,默认 300000

mode

String

master 或 slave

配置 I2C 总线主从模式,默认 master

devAddr

Number

224等

配置 I2C 从设备地址,默认 224

示例

{
  "io": {
    "I2C0":{
      "type":"I2C",
      "port":0,
      "mode":"master",
      "addrWidth":7,
      "devAddr":27,
      "freq":100000
    }
  },
  "debugLevel": "DEBUG"
}

SPI

属性字段

数据类型

属性值

是否必须

字段说明

port

Number

1

配置端口值,这里跟芯片 datasheet 上的端口对应

mode

String

master 或 slave

配置 SPI 总线模式,默认 master

freq

Number

3250000、6500000等

配置 SPI 总线频率

示例

{
  "io": {
    "SPI1":{
      "type":"SPI",
      "port":1,
      "mode":"master",
      "freq":3250000
    }
  },
  "debugLevel": "DEBUG"
}

ADC

属性字段

数据类型

属性值

是否必须

字段说明

port

Number

1

配置端口值,这里跟芯片 datasheet 上的端口对应

sampling

Number

12000000

配置 ADC 采样率

示例

{
  "io": {
    "voltage": {
        "type": "ADC",
      "port": 1,
      "sampling": 12000000
    }
  },
  "debugLevel": "DEBUG"
}

DAC

属性字段

数据类型

属性值

是否必须

字段说明

port

Number

1

配置端口值,这里跟芯片 datasheet 上的端口对应

示例

{
  "io": {
    "DAC1": {
      "type": "DAC",
      "port": 1
    }
  },
  "debugLevel": "DEBUG"
}

PWM

属性字段

数据类型

属性值

是否必须

字段说明

port

Number

1

配置端口值,这里跟芯片 datasheet 上的端口对应

示例

{
  "io": {
    "PWM1": {
      "type": "PWM",
      "port": 1
    }
  },
  "debugLevel": "DEBUG"
}

TIMER

属性字段

数据类型

属性值

是否必须

字段说明

port

Number

1

配置端口值,这里跟芯片 datasheet 上的端口对应

示例

{
  "io": {
    "TIMER1": {
        "type": "TIMER",
      "port": 1
    }
  },
  "debugLevel": "DEBUG"
}

debugLevel

配置调试日志等级,分为如下几个等级,默认为ERROR

等级

说明

DEBUG

显示debug级别的日志

INFO

显示info级别的日志

WARN

显示warning级别的日志

ERROR

显示error级别的日志

FATAL

显示fatal级别的日志

repl(交互式解析器)

配置交互式解析器开关,默认打开。