$(function() { BWA.ChartOptions = BWA.ChartOptions || {}; var C = BWA.ChartOptions.Zone_TempHumi = BWA.ChartOptions.Zone_TempHumi || {}; var targetTempMax = ko.observableArray(); var targetTempMin = ko.observableArray(); var targetHumiMax = ko.observableArray(); var targetHumiMin = ko.observableArray(); /* var valueAxis = { name: 'temp', // position: 'left', pane: 'topPane', type: 'continuous', valueType: 'numeric', tickInterval: 10, valueMarginsEnabled: true, minValueMargin: 0, maxValueMargin: 0, min: -10, max: 40, label: { font: { color: '#c96374' }, }, title: { text: '온도 (°C)', }, }; */ var valueAxises = [ { name: 'temp', // position: 'left', pane: 'topPane', type: 'continuous', valueType: 'numeric', tickInterval: 10, valueMarginsEnabled: true, minValueMargin: 0, maxValueMargin: 0, min: -10, max: 40, label: { font: { color: '#c96374' }, }, title: { text: '온도 (°C)', }, }, { tickInterval: 10, valueMarginsEnabled: true, minValueMargin: 0, maxValueMargin: 0, //argumentType: 'numeric', min: 0, max: 100, label: { font: { color: '#00A7C6' }, }, name: 'humi', // position: 'left', pane: 'bottomPane', title: { text: '습도 (%)', } }, { //tickInterval: 10, valueMarginsEnabled: true, minValueMargin: 0, maxValueMargin: 0, //argumentType: 'numeric', //min: 0, //max: 1, name: 'co2', // position: 'left', pane: 'lastPane', title: { text: 'CO2농도 (ppm)', }, constantLines: [ { position: 'right', label: { text: '허용농도', }, width: 2, value: 800, color: 'red', dashStyle: 'dash' }], }, /* { name: 't_temp', // position: 'right', pane: 'topPane', title: { text: '설정 실내온도 (°C)', } }, { name: 't_humi', // position: 'right', pane: 'topPane', title: { text: '설정 실내습도 (%)', } },*/ ]; var series = [ { type: 'rangeArea', pane: 'topPane', axis: 'temp', //valueField: 'tempSet', rangeValue1Field: "tempSetminT", rangeValue2Field: "tempSetmaxT", visible: true, // 시리즈만 안보이게 할수 있다. 대신 그렇게 할려면 시작은 false로 해야 한다 hcLee 2015 04 25 point: { size: 0 }, name: '목표실내온도', color: 'red', label: { visible: false, customizeText: function () { return this.valueText + ' °C'; } } }, { type: 'bar', pane: 'topPane', axis: 'temp', valueField: 'temp', visible: true, // 시리즈만 안보이게 할수 있다. 대신 그렇게 할려면 시작은 false로 해야 한다 hcLee 2015 04 25 point: { size: 8 }, name: '실내온도', //color: 'red', label: { visible: false, customizeText: function() { return this.valueText + ' °C'; } } }, { type: 'spline', pane: 'topPane', axis: 'temp', valueField: 'Temperature', visible: true, // 시리즈만 안보이게 할수 있다. 대신 그렇게 할려면 시작은 false로 해야 한다 hcLee 2015 04 25 point: { size: 0 }, name: '외기온도', //color: '#c96374', label: { visible: false, customizeText: function () { return this.valueText + ' °C'; } } }, /* { type: 'rangeArea', pane: 'bottomPane', axis: 'humi', //valueField: 'humiSet', rangeValue1Field: "humiSetminT", rangeValue2Field: "humiSetmaxT", point: { size: 0 }, name: '목표실내습도', color: 'blue', label: { visible: false, customizeText: function () { return this.valueText + ' %'; } } },*/ { type: 'bar', pane: 'bottomPane', axis: 'humi', valueField: 'humi', point: { size: 8 }, name: '실내습도', color: 'DeepSkyBlue', label: { visible: false, customizeText: function() { return this.valueText + ' %'; } } }, { type: 'spline', pane: 'bottomPane', axis: 'humi', valueField: 'Humidity', point: { size: 0 }, name: '외기습도', //color: '#00A7C6', //color: 'blue', label: { visible: false, customizeText: function () { return this.valueText + ' %'; } } }, { type: 'bar', pane: 'lastPane', axis: 'co2', valueField: 'co2', visible: true, // 시리즈만 안보이게 할수 있다. 대신 그렇게 할려면 시작은 false로 해야 한다 hcLee 2015 04 25 point: { size: 0}, name: 'CO2농도', //color: 'red', label: { visible: false, customizeText: function () { return this.valueText + ' ppm'; } } }, ]; //C.getSeriesOptions = function(fuelTypeId, goalUpperBound) { C.getSeriesOptions = function (codeTimeType, t_temp, t_humi) { return { legend: { visible: true, verticalAlignment: 'top', horizontalAlignment: 'center' }, panes: [ { name: 'topPane', border: { visible: false, left: false, right: false, top: false, color: 'gray' } }, { name: 'bottomPane', border: { visible: false, left: false, right: false, top: false, color: 'gray' } }, { name: 'lastPane', border: { visible: false, left: false, right: false, top: false, color: 'gray' } }, ], customizePoint: function () { if (this.seriesName == "목표실내온도") { targetTempMax[this.index] = this.value; targetTempMin[this.index] = this.minValue; } if (this.seriesName == "실내온도" && this.value > targetTempMax[this.index] ) { return { color:'red', } } if (this.seriesName == "실내온도" && this.value < targetTempMin[this.index]) { return { color: 'blue', } } /* if (this.seriesName == "목표실내습도") { targetHumiMax[this.index] = this.value; targetHumiMin[this.index] = this.minValue; } if (this.seriesName == "실내습도" && this.value > targetHumiMax[this.index]) { return { color: 'red', } } if (this.seriesName == "실내습도" && this.value < targetHumiMin[this.index]) { return { color: 'blue', } }*/ //if (this.seriesName == "CO2농도" && this.value > 0.2 or 0.5) { if (this.seriesName == "CO2농도" && this.value > 800) { return { color: 'red', } } }, // series의 생성차례가 중요하다. /* customizeLabel: function () { if (this.seriesName == "목표실내온도") { targetTempMax[this.index] = this.value; targetTempMin[this.index] = this.minValue; } if (this.seriesName == "실내온도" && this.value > targetTempMax[this.index] ) { return { visible: true, precision: 2, format: 'fixedPoint', backgroundColor: '#ff4500', customizeText: function () { return this.valueText + ' (°C)' } } } if (this.seriesName == "실내온도" && this.value < targetTempMin[this.index]) { return { color:'blue', visible: true, precision: 2, format: 'fixedPoint', backgroundColor: 'blue', customizeText: function () { return this.valueText + ' (°C)' } } } if (this.seriesName == "목표실내습도") { targetHumiMax[this.index] = this.value; targetHumiMin[this.index] = this.minValue; } if (this.seriesName == "실내습도" && this.value > targetHumiMax[this.index]) { return { visible: true, precision: 0, format: 'fixedPoint', backgroundColor: '#ff4500', customizeText: function () { return this.valueText + ' (%)' } } } if (this.seriesName == "실내습도" && this.value < targetHumiMin[this.index]) { return { color: 'blue', visible: true, precision: 0, format: 'fixedPoint', backgroundColor: 'blue', customizeText: function () { return this.valueText + ' (%)' } } } },*/ defaultPane: "topPane", commonSeriesSettings: { argumentField: "DateTime", selectionStyle: { hatching: { direction: "left" } } }, argumentAxis: BWA.Chart.getTimeLineArgumentAxis(moment(), codeTimeType), //argumentAxis: BWA.Chart.getTimeLineArgumentAxis(null, codeTimeType), //argumentAxis: argumentAxisS[codeTimeType-1], /* valueAxis: [$.extend({}, { constantLines: [{ label: { text: '설정 온도', }, width: 2, value: goalUpperBound, color: '#ff4500', dashStyle: 'dash' }], showZero: true, //})].concat(valueAxises[0]), })].concat(valueAxises), */ valueAxis:valueAxises, /* valueAxis:[$.extend({}, valueAxis, { })].concat($.extend({}, valueAxises[0], { })),*/ series: series, tooltip: { enabled: true, format: 'fixedPoint', precision: 2, }, crosshair: { enabled: true, width: 2, horizontalLine: { color: 'blue', dashStyle: 'dash', visible: false }, verticalLine: { color: 'red', dashStyle: 'dash', visible: true }, label: { visible: true, backgroundColor: "#949494", font: { color: "#fff", size: 12, } } } }; }; });