app.json-全局配置文件

更新时间:2023-04-06 02:27:58

本文介绍app.json-全局配置文件。

基本示例

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轻应用版本号。

pages

Array

轻应用页面路径。

net

Object

网络相关配置。

io

Object

硬件接口配置。

debugLevel

String

设置日志等级,默认为ERROR

repl

String

配置交互式解释器开关,默认打开enable

说明

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

version配置项
pages配置项
net配置项
cellular配置项

轻应用版本号。

app.json中的pages为数组属性,数组中每一项都是字符串,表示对应页面的路径信息。其中,第一项代表轻应用的首页。在轻应用中新增或删除页面,需要对pages数组进行修改。

页面路径不需要任何后缀,框架会自动去加载同名 .js.xml.css 文件。例如,开发目录为:

├── pages
│   ├──index
│   │    ├── index.js
│   │    ├── index.xml
│   │    └── index.css
│   ├──user
│   │    ├── user.js
│   │    └── user.xml
├── app.json
└── app.js

app.json中应当如下配置:

{
  "pages":[
    "pages/index/index",
    "pages/user/user"
  ]
}

配置项

类型

是否必填

描述

cellular

Object

蜂窝网络相关配置。详细配置项,请参见cellular配置项。

wifi

Object

Wi-Fi相关配置。

蜂窝网络相关配置,例如配置接入点名称APN、用户名密码等。一般无需配置cellular配置项,如果使用的是专网卡时则需要按需设置。

配置项

类型

是否必填

描述

apn

String

蜂窝网络接入点名称APN,默认不配置APN,系统会自动识别APN。

username

String

蜂窝网络用户名,默认为不配置用户名。

password

String

蜂窝网络密码,默认为不配置密码。

auth

Number

认证方式。

  • 0:NONE(默认)。

  • 1:PAP。

  • 2:CHAP。

  • 3:PAP or CHAP。

重要
  • 普通中国移动,中国联通,中国电信卡可以不设置apnusernamepasswordauth,模块会自动识别。

  • 专网卡需要根据卡商提供的信息配置apnusernamepasswordauth

cellular配置项示例:

{
  "version": "0.0.1",
  "net": {
    "cellular": {
      "apn": "3gnet.mnc001.mcc460.gprs",
      "username": "",
      "password": "",
      "auth": 0
    }
  },
  "debugLevel": "DEBUG"
}

IO配置项

概述

不同的模组/芯片,各个端口和管脚的功能映射是不一样的,IoT轻应用的配置文件app.json中,可将硬件(芯片)的物理端口映射成为统一的应用层逻辑端口。在替换不同的硬件或者芯片时,只需要替换app.json配置文件,便于应用的跨平台运行。

语法描述

语法描述格式定义如下:

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

参数

说明

参数

说明

objectid

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

type

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

port

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

dir

GPIO类型特有的,用于描述GPIO输入输出及上拉下拉,其他如ADC类型则有sampling采样频率的类型描述。

pull

外设type说明

IO配置项的type用于描述该对象的硬件端口类型,而每一种type也有不同的属性字段,如GPIOADC的属性字段是不一样的。

GPIO

属性字段

数据类型

属性值

是否必须

字段说明

属性字段

数据类型

属性值

是否必须

字段说明

port

Number

1

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

dir

String

output

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

input

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

irq

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

analog

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

pull

String

pulldown

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

pullup

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

opendrain

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

intMode

String

rising

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

falling

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

both

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

示例
{
  "io": {
    "beep": {
        "type": "GPIO",	
        "port": 22,
        "dir": "output",
        "pull": "pullup"
    },
    "key": {
        "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

710

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

freq

Number

100000、400000

配置I2C总线频率,默认300000。

mode

String

masterslave

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

devAddr

Number

224

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

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

SPI

属性字段

数据类型

属性值

是否必须

字段说明

属性字段

数据类型

属性值

是否必须

字段说明

port

Number

1

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

mode

String

masterslave

配置SPI总线模式,默认master。

freq

Number

3250000、6500000

配置SPI总线频率。

示例
{
  "io": {
    "flash":{
      "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": {
    "voltage": {
    	"type": "ADC",
      "port": 1
    }
  },
  "debugLevel": "DEBUG"
}

PWM

属性字段

数据类型

属性值

是否必须

字段说明

属性字段

数据类型

属性值

是否必须

字段说明

port

Number

1

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

示例
{
  "io": {
    "led": {
    	"type": "PWM",
      "port": 1
    }
  },
  "debugLevel": "DEBUG"
}

TIMER

属性字段

数据类型

属性值

是否必须

字段说明

属性字段

数据类型

属性值

是否必须

字段说明

port

Number

1

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

示例
{
  "io": {
    "timer": {
    	"type": "TIMER",
      "port": 1
    }
  },
  "debugLevel": "DEBUG"
}

debugLevel配置项

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

等级

说明

等级

说明

DEBUG

显示debug级别的日志。

INFO

显示info级别的日志。

WARN

显示warning级别的日志。

ERROR

显示error级别的日志。

FATAL

显示fatal级别的日志。

REPL配置项(交互式解释器)

配置交互式解释器开关,默认打开。打开这个功能后,在硬件平台上通过串口进入REPL。

REPL来源于Node.js,类似PC上的终端或Shell,我们可以在这个终端中输入JavaScript代码,即可解释执行。

app.json参考示例

{
  "io": {
    "I2C0": {
      "type": "I2C",
      "port": 0,
      "addrWidth": 7,
      "freq": 100000,
      "mode": "master",
      "devAddr": 118
    },
    "ADC0": {
      "type": "ADC",
      "port": 0,
      "sampling": 12000000
    },
    "ADC1": {
      "type": "ADC",
      "port": 1,
      "sampling": 12000000
    },
    "UART1":{
      "type":"UART",
      "port":1,
      "dataWidth":8,
      "baudRate":115200,
      "stopBits":1,
      "flowControl":"disable",
      "parity":"none"
    },
    "UART2":{
      "type":"UART",
      "port":2,
      "dataWidth":8,
      "baudRate":115200,
      "stopBits":1,
      "flowControl":"disable",
      "parity":"none"
    },
    "SPI0":{
      "type":"SPI",
      "port":0,
      "mode":"master",
      "freq":3250000
    },
    "D0": {
      "type": "GPIO",
      "port": 51,
      "dir": "output",
      "pull": "pulldown"
    },
		"D1": {
      "type": "GPIO",
      "port": 52,
      "dir": "output",
      "pull": "pulldown"
    },
    "D2": {
      "type": "GPIO",
      "port": 17,
      "dir": "output",
      "pull": "pulldown"
    },
    "D3": {
      "type": "GPIO",
      "port": 16,
      "dir": "output",
      "pull": "pulldown"
    },
    "D4": {
      "type": "GPIO",
      "port": 59,
      "dir": "output",
      "pull": "pulldown"
    },
    "D5": {
      "type": "GPIO",
      "port": 121,
      "dir": "output",
      "pull": "pulldown"
    },
    "D6": {
      "type": "GPIO",
      "port": 54,
      "dir": "output",
      "pull": "pulldown"
    },
    "D7": {
      "type": "GPIO",
      "port": 53,
      "dir": "output",
      "pull": "pulldown"
    },
    "D8": {
      "type": "GPIO",
      "port": 124,
      "dir": "output",
      "pull": "pulldown"
    },
    "D9": {
      "type": "GPIO",
      "port": 122,
      "dir": "output",
      "pull": "pulldown"
    },
    "D10": {
      "type": "GPIO",
      "port": 34,
      "dir": "output",
      "pull": "pulldown"
    },
    "D11": {
      "type": "GPIO",
      "port": 36,
      "dir": "output",
      "pull": "pulldown"
    },
    "D12": {
      "type": "GPIO",
      "port": 35,
      "dir": "output",
      "pull": "pulldown"
    },
    "D13": {
      "type": "GPIO",
      "port": 33,
      "dir": "output",
      "pull": "pulldown"
    },
    "D14": {
      "type": "GPIO",
      "port": 57,
      "dir": "output",
      "pull": "pulldown"
    },
    "D15": {
      "type": "GPIO",
      "port": 0,
      "dir": "output",
      "pull": "pulldown"
    },
    "D16": {
      "type": "GPIO",
      "port": 1,
      "dir": "output",
      "pull": "pulldown"
    }
  },
  "debugLevel": "DEBUG"
}
  • 本页导读 (0)
  • 基本示例
  • IO配置项
  • 概述
  • 语法描述
  • 外设type说明
  • debugLevel配置项
  • REPL配置项(交互式解释器)
  • app.json参考示例