Spaces:
Running
Running
| /** | |
| * Copyright (c) 2017~2019, OBCon Inc. | |
| * All rights reserved. | |
| */ | |
| /** | |
| * @file | |
| * @copyright 2017~2019, OBCon Inc. | |
| * @author gye hyun james kim [pnuskgh@gmail.com] | |
| */ | |
| // let moment = require('moment'); | |
| let Sequelize = require('sequelize'); //--- http://docs.sequelizejs.com/ | |
| let Model = utils.getClass('include', 'model.js'); | |
| class Devicedata2sModel extends Model { | |
| constructor() { | |
| super(); | |
| this._title = '원격TB 데이터'; | |
| this._database = db.db_scada; | |
| this._tableName = 'devicedata2'; | |
| this._define = config.databases.scada.define; | |
| this._timestamps = false; //--- createdAt, updatedAt 필드를 사용하지 않는다. | |
| //--- To-Do : 향후 db.db_scadadata DB를 사용하도록 수정 한다. 현재는 오류가 발생함 | |
| // this._database = db.db_scadadata; | |
| // this._tableName = 'devicedata2'; | |
| // this._define = config.databases.scadadata.define; | |
| } | |
| get fields() { | |
| return { | |
| siteKey: { | |
| type: Sequelize.STRING(8), | |
| allowNull: false, | |
| unique: false, | |
| validate: { | |
| }, | |
| title: '사이트', | |
| strType: 'string' | |
| }, | |
| type: { | |
| type: Sequelize.STRING(2), | |
| allowNull: false, | |
| defaultValue: '2', | |
| validate: { | |
| }, | |
| title: '단말기 타입', | |
| strType: 'select', | |
| enum: this.getTypeEnum() | |
| }, | |
| deviceKey: { //--- 장비 아이디, RTU ID | |
| type: Sequelize.STRING(8), | |
| allowNull: false, | |
| unique: false, | |
| validate: { | |
| }, | |
| title: '아이디', | |
| strType: 'string' | |
| }, | |
| statusDatetime: { //--- 장비 상태 수집 일자 (YYYYMMDDHHmmss) | |
| type: Sequelize.STRING(14), | |
| allowNull: true, | |
| validate: { | |
| }, | |
| title: '발생일자', | |
| strType: 'string' | |
| }, | |
| ac: { //--- AC 측정값 | |
| type: Sequelize.FLOAT, | |
| allowNull: true, | |
| defaultValue: 0.0, | |
| validate: { | |
| }, | |
| title: 'AC 측정값', | |
| strType: 'float' | |
| }, | |
| preventPotential: { //--- 1, 2, 3, 4 | |
| type: Sequelize.FLOAT, | |
| allowNull: true, | |
| defaultValue: 0.0, | |
| validate: { | |
| }, | |
| title: '방식 전위', | |
| strType: 'float' | |
| }, | |
| batteryVoltage: { //--- 1, 2, 3, 4, 5 | |
| type: Sequelize.FLOAT, | |
| allowNull: true, | |
| defaultValue: 0.0, | |
| validate: { | |
| }, | |
| title: '배터리 전압', | |
| strType: 'float' | |
| }, | |
| sensitivity: { | |
| type: Sequelize.FLOAT, | |
| allowNull: true, | |
| defaultValue: 0.0, | |
| validate: { | |
| }, | |
| title: '수신 감도', | |
| strType: 'float' | |
| }, | |
| dataMode: { | |
| type: Sequelize.STRING(1), | |
| allowNull: true, | |
| validate: { | |
| }, | |
| title: '데이터 모드', | |
| strType: 'string', | |
| enum: [ | |
| ['0', '0. 통신주기(분)/수집주기(분)'], | |
| ['1', '1. 통신주기(시)/수집주기(분)'], | |
| ['2', '2. 통신주기(시)/수집주기(시)'], | |
| ['4', '4. PEAK MODE : 통신주기(분)/수집주기(분)'], | |
| // ['6', '6. 서버 아이피 & 포트 변경'], | |
| ['9', '9. 실시간모드'] | |
| ] | |
| }, | |
| dataCycle: { | |
| type: Sequelize.INTEGER(2), | |
| allowNull: true, | |
| defaultValue: 0, | |
| validate: { | |
| }, | |
| title: '수집 주기', | |
| strType: 'integer' | |
| }, | |
| networkCycle: { | |
| type: Sequelize.INTEGER(2), | |
| allowNull: true, | |
| defaultValue: 0, | |
| validate: { | |
| }, | |
| title: '통신 주기', | |
| strType: 'integer' | |
| }, | |
| temperature: { | |
| type: Sequelize.FLOAT, | |
| allowNull: true, | |
| defaultValue: 0.0, | |
| validate: { | |
| }, | |
| title: '장치 온도', | |
| strType: 'float' | |
| }, | |
| humidity: { | |
| type: Sequelize.INTEGER(3), | |
| allowNull: true, | |
| defaultValue: 0, | |
| validate: { | |
| }, | |
| title: '습도', | |
| strType: 'integer' | |
| } | |
| }; | |
| } | |
| } | |
| module.exports = Devicedata2sModel; | |