21
21
html , body {
22
22
margin : 0 auto;
23
23
text-align : center;
24
- // width:1024px;
24
+ width : 1024px ;
25
25
font-variant : small-caps;
26
26
font-size : 20px ;
27
27
font-family : monospace;
46
46
# linkBar {
47
47
background-color : aqua;
48
48
}
49
- # title {
49
+ # dateBar {
50
50
text-transform : uppercase;
51
51
}
52
52
# graphContainer {
53
- width : 1024px ;
54
- margin : auto;
55
53
}
56
54
# editorCanvas {
55
+ width : 800px ;
57
56
background-color : darkgreen;
58
57
border : solid 1px black;
59
58
display : inline-block;
60
59
float : left;
61
- margin : 0 ;
62
60
}
63
61
64
62
# fileList {
65
63
overflow-y : auto;
66
- margin : 10px ;
67
64
height : 400px ;
68
65
border : solid 1px black;
66
+ width : 220px ;
69
67
}
70
68
.logFile : hover {
71
- background-color : yellow;
72
69
cursor : pointer;
73
70
}
74
71
</ style >
75
72
< script src ="https://code.jquery.com/jquery-3.2.1.js "> </ script >
76
73
< body >
77
- < p id ="linkBar "> < a class ="systemLink " href ="/ "> HOME</ a > </ p >
78
- < h1 id ="title "> ESP8266-temp-server</ h1 >
74
+ < div id ="linkBar "> < a class ="systemLink " href ="/ "> HOME</ a > </ div >
75
+ < h1 id ="dateBar "> ESP8266-temp-server</ h1 >
79
76
< div id ="graphContainer ">
80
77
< canvas class ="" id ="editorCanvas " width ="800px " height ="400px "> </ canvas >
81
78
< div id ="fileList "> </ div >
82
79
</ div >
80
+ < div id ="minMax "> < p id ="minimum "> loading</ p > < p id ="maximum "> loading</ p > </ div >
83
81
< script >
84
- //const hostName = 'http://192.168.0.182 '; //debug/develop
82
+ //const hostName = 'http://192.168.0.100 '; //debug/develop
85
83
const hostName = '' ;
86
84
$ ( document ) . ready ( function ( ) {
87
85
editorCanvas . width = editorCanvas . width ;
88
- if ( hostName ) $ ( '#title ' ) . append ( '<p class="blink">!!!!!debug enabled!!!!! </p>' ) ;
86
+ if ( hostName ) $ ( '#dateBar ' ) . html ( '<p class="blink">' + hostName + ' </p>') ;
89
87
$ . get ( hostName + '/files' , function ( data )
90
88
{
91
89
var fileArray = data . split ( '\n' ) ;
92
90
fileArray . sort ( ) ;
93
91
for ( f = 0 ; f < fileArray . length ; f ++ )
94
92
if ( fileArray [ f ] . endsWith ( '.log' ) ) $ ( '#fileList' ) . append ( '<div class="logFile">' + fileArray [ f ] . substring ( 1 , 11 ) + "</div>" ) ;
95
93
if ( ! $ ( '.logFile' ) . length )
96
- $ ( '#loaderBox ' ) . html ( "NO LOGS FOUND" ) ;
94
+ $ ( '#graphContainer ' ) . html ( "NO LOGS FOUND" ) ;
97
95
else
98
96
{
99
- $ ( '#loaderBox' ) . hide ( ) ;
100
- $ ( '#editorCanvas, #sideBox, .controlBox' ) . show ( ) ;
101
97
$ ( '.logFile' ) . last ( ) . click ( ) ;
102
98
}
103
99
} ) ;
104
100
} ) ;
105
101
$ ( '#fileList' ) . on ( 'click' , '.logFile' , function ( )
106
102
{
103
+ var currentClicked = this ;
104
+ $ ( '.logFile' ) . css ( 'background-color' , 'white' ) . css ( 'color' , 'black' ) ;
105
+ $ ( '#dateBar' ) . html ( 'LOADING ' + $ ( this ) . text ( ) ) ;
106
+ $ ( currentClicked ) . css ( 'color' , 'grey' ) . css ( 'background-color' , 'yellow' ) ;
107
107
var url = hostName + "/" + $ ( this ) . text ( ) + ".log" ;
108
108
var timeVal = [ ] ;
109
109
var tempVal = [ ] ;
110
- var maxTemp , minTemp ;
110
+ var maxGridTemp , minGridTemp , maxMeasurement , minMeasurement ;
111
+ $ ( '#minimum, #maximum' ) . html ( ' ' ) ;
112
+ $ ( '#minimum' ) . text ( 'LOADING ' + $ ( this ) . text ( ) ) ;
111
113
$ . get ( url , function ( data )
112
114
{
113
115
var measurements = data . split ( '\n' ) ;
@@ -127,31 +129,48 @@ <h1 id="title">ESP8266-temp-server</h1>
127
129
}
128
130
}
129
131
} ) ;
130
- maxTemp = Math . trunc ( Math . max . apply ( null , tempVal ) + 2 ) ;
131
- minTemp = Math . trunc ( Math . min . apply ( null , tempVal ) - 2 ) ;
132
- //console.log("min:"+minTemp + " max:"+maxTemp)
133
- if ( isNaN ( minTemp ) || isNaN ( maxTemp ) )
132
+ minMeasurement = Math . min . apply ( null , tempVal )
133
+ maxMeasurement = Math . max . apply ( null , tempVal )
134
+ $ ( '#minimum' ) . html ( "Minimum: " + minMeasurement + "° -> " ) ;
135
+ $ ( '#maximum' ) . html ( "Maximum: " + maxMeasurement + "° -> " ) ;
136
+ minGridTemp = Math . trunc ( minMeasurement - 1 ) ;
137
+ maxGridTemp = Math . trunc ( maxMeasurement + 2 ) ;
138
+ if ( isNaN ( minMeasurement ) || isNaN ( maxMeasurement ) )
134
139
{
135
140
const ctx = editorCanvas . getContext ( "2d" ) ;
136
141
ctx . clearRect ( 0 , 0 , editorCanvas . width , editorCanvas . height ) ;
137
142
return ;
138
143
}
139
- drawBackground ( minTemp , maxTemp ) ;
140
- //draw the actual values
141
- var ctx = editorCanvas . getContext ( "2d" ) ;
144
+ drawBackground ( minGridTemp , maxGridTemp ) ;
145
+ var ctx = editorCanvas . getContext ( "2d" ) ; /* draw the actual values */
142
146
ctx . strokeStyle = 'rgba( 255, 0, 0, 1)' ;
143
147
ctx . setLineDash ( [ ] ) ;
144
148
ctx . beginPath ( ) ;
149
+ var minSet = false ;
150
+ var maxSet = false ;
145
151
timeVal . forEach ( function ( item , index )
146
152
{
147
153
var x = map ( item , 0 , 86400 , 0 , editorCanvas . width ) ;
148
- var y = map ( tempVal [ index ] , minTemp , maxTemp , editorCanvas . height , 0 ) ;
154
+ var y = map ( tempVal [ index ] , minGridTemp , maxGridTemp , editorCanvas . height , 0 ) ;
155
+ if ( tempVal [ index ] == minMeasurement && ! minSet )
156
+ {
157
+ $ ( '#minimum' ) . html ( $ ( '#minimum' ) . html ( ) + " " + new Date ( 1000 * item ) . toISOString ( ) . substr ( 11 , 8 ) ) ;
158
+ minSet = true ;
159
+ }
160
+ if ( tempVal [ index ] == maxMeasurement && ! maxSet )
161
+ {
162
+ $ ( '#maximum' ) . html ( $ ( '#maximum' ) . html ( ) + " " + new Date ( 1000 * item ) . toISOString ( ) . substr ( 11 , 8 ) ) ;
163
+ maxSet = true ;
164
+ }
149
165
ctx . lineTo ( x , y ) ;
150
166
} ) ;
151
167
ctx . stroke ( ) ;
168
+ $ ( '.logFile' ) . css ( 'color' , 'black' ) ;
169
+ $ ( currentClicked ) . css ( 'background-color' , 'yellow' ) . css ( 'color' , 'black' ) ;
170
+ $ ( '#dateBar' ) . html ( $ ( currentClicked ) . text ( ) ) ;
152
171
} ) ;
153
172
} ) ;
154
- function drawBackground ( minTemp , maxTemp )
173
+ function drawBackground ( minGridTemp , maxGridTemp )
155
174
{
156
175
const opacity = 0.3 ;
157
176
const lineDash = [ 2 , 2 ] ;
@@ -178,12 +197,12 @@ <h1 id="title">ESP8266-temp-server</h1>
178
197
ctx . stroke ( ) ;
179
198
ctx . beginPath ( ) ;
180
199
ctx . strokeStyle = 'rgba( 255,255,255, ' + opacity + ')' ;
181
- for ( templine = minTemp ; templine <= maxTemp ; templine ++ )
200
+ for ( templine = minGridTemp ; templine <= maxGridTemp ; templine ++ )
182
201
{
183
- var y = map ( templine , minTemp , maxTemp , editorCanvas . height , 0 ) ;
202
+ var y = map ( templine , minGridTemp , maxGridTemp , editorCanvas . height , 0 ) ;
184
203
ctx . moveTo ( 0 , y ) ;
185
204
ctx . lineTo ( editorCanvas . width , y ) ;
186
- var tempstr = parseInt ( map ( y , 0 , editorCanvas . height , maxTemp , minTemp ) ) ;
205
+ var tempstr = parseInt ( map ( y , 0 , editorCanvas . height , maxGridTemp , minGridTemp ) ) ;
187
206
tempstr += "°" ;
188
207
ctx . setLineDash ( [ ] ) ;
189
208
ctx . textBaseline = "middle" ;
0 commit comments