123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473 |
- $(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,
- }
- }
- }
- };
- };
- });
|