数据模型 - SaberGuo/thc-platform GitHub Wiki

模型

使用Laravel中validation规则和方式对模和模型关系进行定义,具体参见:https://laravel.com/docs/5.3/validation

扩展规则

  • refer,引用另一个模型
var models = {
    user: {
        id: 'integer',
        name: 'string'
    },
    device: {
        id: 'integer',
        name: 'string',
        sn:  'string',
        lat: 'numeric',
        lon: 'numeric',
        alt: 'numeric',
    },
    device_config: {
        id: 'integer',
        device_id: 'refer:device',
        data: [
            {
                port: 'string',//接口类型,AD, 485
                port_num: 0-10,//接口编号,AD0-11, 485-0,485-1
                sensor_type: 'sensorNo'//传感器类型
                params:[
                        {
                         "key": "Ta",   
                         "desc": "",
                         "name": "空气温度",
                         "type": "temperature",
                         "unit": "℃",
                         "data_num": 0
                        }, 
                        {"key": "Ua",
                         "desc": "",
                         "name": "空气湿度",
                         "type": "humdity",
                         "unit": "%",
                         "data_num": 1},
                        {"key": "Pa",
                         "desc": "",
                         "name": "大气压",
                         "type": "pressure", 
                         "unit": "hPa",
                         "data_num": 2
                         }]
            },
            ...
            // 待补充
        ],
    },
    device_data: {
        id: 'integer',
        device_config_id: 'refer:device_config',
        ts: 'date',
        data: {
            '$user_define_key_name': {
                value: 'numeric'
            }
        }
    }
}

demo

[{"port": "Img", "params": [{"key": "img_env", "desc": "", "name": "图片1", "type": "image", "unit": "", "data_num": 0}], "port_num": 0, "sensor_type": "hisi"}, {"port": "485", "params": [{"key": "Ta", "desc": "", "name": "空气温度", "type": "temperature", "unit": "℃", "data_num": 0}, {"key": "Ua", "desc": "", "name": "空气湿度", "type": "humdity", "unit": "%", "data_num": 1}, {"key": "Pa", "desc": "", "name": "大气压", "type": "pressure", "unit": "hPa", "data_num": 2}], "port_num": 0, "sensor_type": "nh122"}, {"port": "AD", "params": [{"key": "solar", "desc": "", "name": "光照", "type": "solar", "unit": "lux", "data_num": 0}], "port_num": 0, "sensor_type": "nhzd10"}]

说明

界面操作说明

  • 用户首先添加记录,首先选择sensor_type,根据sensor_type,port类型自动补齐(不用显示在网页上)
  • 用户然后选择port_num(port_num从0开始,每种num有一定范围要求,后章节介绍)
  • 选择sensor_type后,每个sensor_type具备不同个数的数据,后续章节介绍)
  • sensor_type每个数据设定key,name,desc,三个部分由用户填写

port 类型包括AD,485,Img,PI

  • AD:标识AD数据,port_num:0~11
  • 485:标识为485接口,port_num:0~1
  • Img:标识图像数据,port_num:0~1
  • PI:标识脉冲数据,port_num:0~1

sensor_type 标识使用的传感器型号和采集的数据类型,现有的型号为,此参数应该为枚举类型

  • davis_rain:降雨传感器,采集的数据为降雨量,port: PI, 降雨量:data_num:0,unit:mm,type: rain
  • mec10:土壤传感器,采集的数据为土壤温度、port:485, 湿度,温度:data_num:0,unit:℃,type: temperature,湿度:data_num:1,unit:100%,type:humdity
  • nh122:环境传感器, 采集的数据为空气温度、port:485, 湿度,温度:data_num:0,unit:℃,type: temperature, 湿度:data_num:1,unit:100%,type:humdity, 气压:data_num:2, unit:hPa,type:pressure
  • nhfs45bu:风速传感器, 采集的数据为风速,port: AD, 风速:data_num:0,unit:m/s,type:windspeed
  • nhfx46au:风向传感器, 采集的数据为风向,port: AD, 风向:data_num:0,unit:°,type:winddirect
  • nhzd10:光照传感器,采集的数据为全辐射光照,port: AD, 光照:data_num:0,unit:lux,type:solar
  • th10s: 土壤传感器, 采集的数据为土壤温度、湿度,port:485, 温度:data_num:0,unit:℃,type: temperature,湿度:data_num:1,unit:100%,type:humdity
  • ms10vt: 土壤传感器,采集的数据为土壤温度,port:AD, 温度:data_num:0,unit:℃,type: temperature
  • ms10vh: 土壤传感器,采集的数据为土壤湿度,port:AD, 湿度:data_num:0,unit:100%,type:humdity
  • wxt520: 环境传感器,485接口,采集的数据为空气温度、湿度、气压、风速、风向,port:485, 风速:data_num:0, unit:m/s,type:windspeed, 风向:data_num:1,unit:°,type:winddirect, 温度:data_num:2,unit:℃,type: temperature,湿度:data_num:3,unit:100%,type:humdity气压:data_num:4, unit:hPa,type:pressure
  • hisi: 图像传感器,采集数据为图像,port:Img, data_num:0,unit:无,type:image