Subversion Repositories HomeAutomation

Rev

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();