Rev 1034 | Rev 1040 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 1034 | Rev 1037 | ||
|---|---|---|---|
| Line 26... | Line 26... | ||
| 26 | CanNode.prototype.myProgrammingLastTenPercent = null; |
26 | CanNode.prototype.myProgrammingLastTenPercent = null; |
| 27 | CanNode.prototype.myProgrammingnrOfTicks = null; |
27 | CanNode.prototype.myProgrammingnrOfTicks = null; |
| 28 | CanNode.prototype.myProgrammingTimeout = null; |
28 | CanNode.prototype.myProgrammingTimeout = null; |
| 29 | CanNode.prototype.myProgrammingResend = null; |
29 | CanNode.prototype.myProgrammingResend = null; |
| 30 | CanNode.prototype.myProgrammingLastPacket = null; |
30 | CanNode.prototype.myProgrammingLastPacket = null; |
| - | 31 | CanNode.prototype.myProgrammingTimeStarted = null; |
|
| 31 | 32 | ||
| 32 | CanNode.prototype.isOnline = function() |
33 | CanNode.prototype.isOnline = function() |
| 33 | { |
34 | { |
| 34 | return this.myIsOnline; |
35 | return this.myIsOnline; |
| 35 | } |
36 | } |
| Line 152... | Line 153... | ||
| 152 | var self = this; |
153 | var self = this; |
| 153 | this.myProgrammingTimeout.setTimeout(1000); |
154 | this.myProgrammingTimeout.setTimeout(1000); |
| 154 | 155 | ||
| 155 | //this.myProgrammingResend = new Interval(function() { self.programmingResend() }, 1100); |
156 | //this.myProgrammingResend = new Interval(function() { self.programmingResend() }, 1100); |
| 156 | //this.myProgrammingResend.start(); |
157 | //this.myProgrammingResend.start(); |
| - | 158 | ||
| - | 159 | var date = new Date(); |
|
| - | 160 | this.myProgrammingTimeStarted = date.getTime(); |
|
| 157 | 161 | ||
| 158 | this.myProgrammingCallback(true, "START", "Started programming of node", false); |
162 | this.myProgrammingCallback(true, "START", "Started programming of node", false); |
| 159 | this.myProgrammingCallback(true, "", " 0% [", true); |
163 | this.myProgrammingCallback(true, "", " 0% [", true); |
| 160 | } |
164 | } |
| 161 | } |
165 | } |
| 162 | 166 | ||
| 163 | CanNode.prototype.handleNack = function(data) |
167 | CanNode.prototype.handleNack = function(data) |
| 164 | { |
168 | { |
| 165 | stopProgramming(true, "Failed, got NACK, sending reset"); |
169 | stopProgramming(true, "Failed, got NACK, sending reset"); |
| 166 | this.reset(); |
170 | this.reset(); |
| 167 | if (false) |
171 | if (false) |
| 168 | { |
172 | { |
| 169 | } |
173 | } |
| 170 | } |
174 | } |
| 171 | 175 | ||
| 172 | CanNode.prototype.handleAck = function(data) |
176 | CanNode.prototype.handleAck = function(data) |
| 173 | { |
177 | { |
| 174 | this.myProgrammingTimeout.setTimeout(1000); |
178 | this.myProgrammingTimeout.setTimeout(1000); |
| 175 | 179 | ||
| 176 | if (data == this.myProgrammingWantAck) |
180 | if (data == this.myProgrammingWantAck) |
| Line 192... | Line 196... | ||
| 192 | case 1: |
196 | case 1: |
| 193 | canMessage = new CanNMTMessage("nmt", "Pgm_Data_8"); |
197 | canMessage = new CanNMTMessage("nmt", "Pgm_Data_8"); |
| 194 | break; |
198 | break; |
| 195 | case 2: |
199 | case 2: |
| 196 | canMessage = new CanNMTMessage("nmt", "Pgm_Data_16"); |
200 | canMessage = new CanNMTMessage("nmt", "Pgm_Data_16"); |
| 197 | break; |
201 | break; |
| 198 | case 3: |
202 | case 3: |
| 199 | canMessage = new CanNMTMessage("nmt", "Pgm_Data_24"); |
203 | canMessage = new CanNMTMessage("nmt", "Pgm_Data_24"); |
| 200 | break; |
204 | break; |
| 201 | case 4: |
205 | case 4: |
| 202 | canMessage = new CanNMTMessage("nmt", "Pgm_Data_32"); |
206 | canMessage = new CanNMTMessage("nmt", "Pgm_Data_32"); |
| 203 | break; |
207 | break; |
| Line 233... | Line 237... | ||
| 233 | } |
237 | } |
| 234 | offset++; |
238 | offset++; |
| 235 | } |
239 | } |
| 236 | canMessage.send(); |
240 | canMessage.send(); |
| 237 | this.myProgrammingHexOffset = offset; |
241 | this.myProgrammingHexOffset = offset; |
| 238 | 242 | ||
| 239 | if (this.myProgrammingHexOffset >= this.myProgrammingHex.getLength()) { |
243 | if (this.myProgrammingHexOffset >= this.myProgrammingHex.getLength()) { |
| 240 | this.myProgrammingState = "END"; |
244 | this.myProgrammingState = "END"; |
| 241 | } |
245 | } |
| 242 | 246 | ||
| 243 | //this.myProgrammingCallback(true, "PROGRESS", this.myProgrammingHexOffset + ":" + this.myProgrammingHex.getLength(), false); |
247 | //this.myProgrammingCallback(true, "PROGRESS", this.myProgrammingHexOffset + ":" + this.myProgrammingHex.getLength(), false); |
| Line 247... | Line 251... | ||
| 247 | this.myProgrammingCallback(true, "", "=", true); |
251 | this.myProgrammingCallback(true, "", "=", true); |
| 248 | this.myProgrammingLastPercent+=2.5; |
252 | this.myProgrammingLastPercent+=2.5; |
| 249 | this.myProgrammingnrOfTicks++; |
253 | this.myProgrammingnrOfTicks++; |
| 250 | } |
254 | } |
| 251 | if (percent > this.myProgrammingLastTenPercent+10) |
255 | if (percent > this.myProgrammingLastTenPercent+10) |
| 252 | { |
256 | { |
| 253 | for (var i=this.myProgrammingnrOfTicks; i<40; i++) this.myProgrammingCallback(true, "", " ", true); |
257 | for (var i=this.myProgrammingnrOfTicks; i<40; i++) this.myProgrammingCallback(true, "", " ", true); |
| 254 | this.myProgrammingCallback(true, "", "]", true); |
258 | this.myProgrammingCallback(true, "", "]", true); |
| 255 | this.myProgrammingCallback(true, "", "\r", true); |
259 | this.myProgrammingCallback(true, "", "\r", true); |
| 256 | this.myProgrammingCallback(true, "", " "+Math.round(percent)+"% [", true); |
260 | this.myProgrammingCallback(true, "", " "+Math.round(percent)+"% [", true); |
| 257 | this.myProgrammingLastTenPercent+=10; |
261 | this.myProgrammingLastTenPercent+=10; |
| 258 | for (var i=0; i<this.myProgrammingnrOfTicks; i++) this.myProgrammingCallback(true, "", "=", true); |
262 | for (var i=0; i<this.myProgrammingnrOfTicks; i++) this.myProgrammingCallback(true, "", "=", true); |
| 259 | } |
263 | } |
| 260 | 264 | ||
| 261 | this.myProgrammingLastPacket = canMessage; |
265 | this.myProgrammingLastPacket = canMessage; |
| 262 | break; |
266 | break; |
| 263 | 267 | ||
| 264 | case "END": |
268 | case "END": |
| 265 | this.myProgrammingWantAck = ((this.myProgrammingHex.getCRC16()<<8)|(this.myProgrammingHex.getCRC16()>>8))&0xffff; |
269 | this.myProgrammingWantAck = ((this.myProgrammingHex.getCRC16()<<8)|(this.myProgrammingHex.getCRC16()>>8))&0xffff; |
| - | 270 | ||
| - | 271 | var timeElapsed = 0; |
|
| - | 272 | var printTime = ""; |
|
| - | 273 | if (this.myProgrammingTimeStarted>0) |
|
| - | 274 | { |
|
| - | 275 | var date = new Date(); |
|
| - | 276 | timeElapsed = date.getTime() - this.myProgrammingTimeStarted; |
|
| - | 277 | printTime = " in " + Math.round(timeElapsed/1000) + "s, " + Math.round(this.myProgrammingHex.getLength()*1000/timeElapsed)+"bytes/s"; |
|
| - | 278 | } |
|
| 266 | 279 | ||
| 267 | var canMessage = new CanNMTMessage("nmt", "Pgm_End"); |
280 | var canMessage = new CanNMTMessage("nmt", "Pgm_End"); |
| 268 | canMessage.send(); |
281 | canMessage.send(); |
| 269 | 282 | ||
| 270 | this.myProgrammingState = "CRC"; |
283 | this.myProgrammingState = "CRC"; |
| 271 | for (var i=this.myProgrammingnrOfTicks; i<40; i++) this.myProgrammingCallback(true, "", " ", true); |
284 | for (var i=this.myProgrammingnrOfTicks; i<40; i++) this.myProgrammingCallback(true, "", " ", true); |
| 272 | this.myProgrammingCallback(true, "", "]", true); |
285 | this.myProgrammingCallback(true, "", "]", true); |
| 273 | this.myProgrammingCallback(true, "", "\r", true); |
286 | this.myProgrammingCallback(true, "", "\r", true); |
| 274 | this.myProgrammingCallback(true, "", "100% [========================================]", true); |
287 | this.myProgrammingCallback(true, "", "100% [========================================]"+printTime, true); |
| 275 | 288 | ||
| 276 | if (this.myProgrammingResend != null) |
289 | if (this.myProgrammingResend != null) |
| 277 | { |
290 | { |
| 278 | /* Stop the interval */ |
291 | /* Stop the interval */ |
| 279 | this.myProgrammingResend.stop(); |
292 | this.myProgrammingResend.stop(); |
| Line 350... | Line 363... | ||
| 350 | this.myProgrammingWantAck = null; |
363 | this.myProgrammingWantAck = null; |
| 351 | this.myProgrammingState = ""; |
364 | this.myProgrammingState = ""; |
| 352 | this.myProgrammingLastPercent = 0; |
365 | this.myProgrammingLastPercent = 0; |
| 353 | this.myProgrammingLastTenPercent = 0; |
366 | this.myProgrammingLastTenPercent = 0; |
| 354 | this.myProgrammingnrOfTicks = 0; |
367 | this.myProgrammingnrOfTicks = 0; |
| - | 368 | this.myProgrammingTimeStarted = 0; |
|
| 355 | 369 | ||
| 356 | if (this.myProgrammingTimeout != null) |
370 | if (this.myProgrammingTimeout != null) |
| 357 | { |
371 | { |
| 358 | /* Stop the interval */ |
372 | /* Stop the interval */ |
| 359 | this.myProgrammingTimeout.stop(); |
373 | this.myProgrammingTimeout.stop(); |