Subversion Repositories HomeAutomation

Rev

Rev 770 | Rev 877 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 770 Rev 876
Line 96... Line 96...
96
        byte[] data = new byte[8];
96
        byte[] data = new byte[8];
97
        uint byteSent = 0;
97
        uint byteSent = 0;
98
        ulong currentAddress = 0;
98
        ulong currentAddress = 0;
99
        bool done = false;
99
        bool done = false;
100
        bool errorOccured = false;
100
        bool errorOccured = false;
-
 
101
       
-
 
102
        //int rotstate=0;
-
 
103
        int dldisplaystate=0;
101
       
104
       
102
        try {
105
        try {
103
            if (isBiosUpdate) {
106
            if (isBiosUpdate) {
104
                dlOffset = hf.getAddrLower();
107
                dlOffset = hf.getAddrLower();
105
                //Console.WriteLine(dlOffset);
108
                //Console.WriteLine(dlOffset);
Line 134... Line 137...
134
                        dc.sendCanPacket(outCm);
137
                        dc.sendCanPacket(outCm);
135
                        t = Environment.TickCount;
138
                        t = Environment.TickCount;
136
                        t2 = Environment.TickCount;
139
                        t2 = Environment.TickCount;
137
                        pgs = dState.WAIT_ACK_PRG;
140
                        pgs = dState.WAIT_ACK_PRG;
138
                        timeStart = Environment.TickCount;
141
                        timeStart = Environment.TickCount;
-
 
142
                        Console.WriteLine("Downloading...");
139
                        break;
143
                        break;
140
                   
144
                   
141
                   
145
                   
142
                    case dState.WAIT_ACK_PRG:
146
                    case dState.WAIT_ACK_PRG:
143
                        // Check for timeout, resend start packet in that case..
147
                        // Check for timeout, resend start packet in that case..
144
                        if ((Environment.TickCount - t) > TIMEOUT_MS) {
148
                        if ((Environment.TickCount - t) > TIMEOUT_MS) {
145
                            Console.WriteLine("Timeout while waiting for start prg ack.");
149
                            Console.WriteLine("Timeout while waiting for start prg ack.");
146
                            errorOccured = true;
150
                            errorOccured = true;
147
                            pgs = dState.SEND_RESET;
151
                            pgs = dState.SEND_RESET;
148
                        }
152
                        }
149
                        //Thread.Sleep(1);
153
                        //Thread.Sleep(1);
150
                        // If received ack.
154
                        // If received ack.
151
                        hasMessage = dc.getData(out cm);
155
                        hasMessage = dc.getData(out cm);
Line 169... Line 173...
169
                        }
173
                        }
170
                        break;
174
                        break;
171
                       
175
                       
172
                    case dState.SEND_PGM_DATA:
176
                    case dState.SEND_PGM_DATA:
173
                        //Console.WriteLine("byteSent = "+byteSent);
177
                        //Console.WriteLine("byteSent = "+byteSent);
-
 
178
//disable                       Console.Write(".");
-
 
179
//Console.Write("\b");
-
 
180
//int curleft = Console.CursorLeft;
-
 
181
//int curtop = Console.CursorTop;
-
 
182
//Console.SetCursorPosition(curleft, curtop-1);
-
 
183
 
-
 
184
//if (rotstate==0) {
174
                        Console.Write(".");
185
//   Console.Write("-");
-
 
186
//   rotstate=1;
-
 
187
//} else if (rotstate==1) {
-
 
188
//   Console.Write("\\");
-
 
189
//   rotstate=2;
-
 
190
//} else if (rotstate==2) {
-
 
191
//   Console.Write("|");
-
 
192
//   rotstate=3;
-
 
193
//} else if (rotstate==3) {
-
 
194
//   Console.Write("/");
-
 
195
//   rotstate=0;
-
 
196
//}
-
 
197
//Console.Write("\r");
-
 
198
//dldisplaystate
-
 
199
 
-
 
200
//FULHACK deulx
-
 
201
                        ulong percent = byteSent*100/(hf.getAddrUpper()-currentAddress);
-
 
202
                       
-
 
203
                        if (percent>9 && dldisplaystate==0) {
-
 
204
                           Console.Write("\r");
-
 
205
                           Console.Write(percent+"%");
-
 
206
                           dldisplaystate=1;
-
 
207
                        } else if (percent>19 && dldisplaystate==1) {
-
 
208
                           Console.Write("\r");
-
 
209
                           Console.Write(percent+"%");
-
 
210
                           dldisplaystate=2;
-
 
211
                        } else if (percent>29 && dldisplaystate==2) {
-
 
212
                           Console.Write("\r");
-
 
213
                           Console.Write(percent+"%");
-
 
214
                           dldisplaystate=3;
-
 
215
                        } else if (percent>39 && dldisplaystate==3) {
-
 
216
                           Console.Write("\r");
-
 
217
                           Console.Write(percent+"%");
-
 
218
                           dldisplaystate=4;
-
 
219
                        } else if (percent>49 && dldisplaystate==4) {
-
 
220
                           Console.Write("\r");
-
 
221
                           Console.Write(percent+"%");
-
 
222
                           dldisplaystate=5;
-
 
223
                        } else if (percent>59 && dldisplaystate==5) {
-
 
224
                           Console.Write("\r");
-
 
225
                           Console.Write(percent+"%");
-
 
226
                           dldisplaystate=6;
-
 
227
                        } else if (percent>69 && dldisplaystate==6) {
-
 
228
                           Console.Write("\r");
-
 
229
                           Console.Write(percent+"%");
-
 
230
                           dldisplaystate=7;
-
 
231
                        } else if (percent>79 && dldisplaystate==7) {
-
 
232
                           Console.Write("\r");
-
 
233
                           Console.Write(percent+"%");
-
 
234
                           dldisplaystate=8;
-
 
235
                        } else if (percent>89 && dldisplaystate==8) {
-
 
236
                           Console.Write("\r");
-
 
237
                           Console.Write(percent+"%");
-
 
238
                           dldisplaystate=9;
-
 
239
                        } else if (percent>99 && dldisplaystate==9) {
-
 
240
                           Console.Write("\r");
-
 
241
                           Console.Write(percent+"%");
-
 
242
                           dldisplaystate=10;
-
 
243
                        }
-
 
244
 
175
                        // Send program data.
245
                        // Send program data.
176
                        byte datalength = 2;
246
                        byte datalength = 2;
177
                        for (ulong i = 0; i < 6; i++) {
247
                        for (ulong i = 0; i < 6; i++) {
178
                            // Populate data.
248
                            // Populate data.
179
                            data[i+2] = hf.getByte(currentAddress + i + byteSent);
249
                            data[i+2] = hf.getByte(currentAddress + i + byteSent);
Line 203... Line 273...
203
                            errorOccured = true;
273
                            errorOccured = true;
204
                            pgs = dState.SEND_RESET;
274
                            pgs = dState.SEND_RESET;
205
                        }
275
                        }
206
                        else if ((Environment.TickCount - t2) > TIMEOUT_SHORT_MS) {
276
                        else if ((Environment.TickCount - t2) > TIMEOUT_SHORT_MS) {
207
                            // Woops, error. 
277
                            // Woops, error. 
208
                            Console.Write(":");
278
//disable                           Console.Write(":");
209
                            byteSent -= 6;
279
                            byteSent -= 6;
210
                            pgs = dState.SEND_PGM_DATA;
280
                            pgs = dState.SEND_PGM_DATA;
211
                            break;
281
                            break;
212
                        }
282
                        }
213
                        //Thread.Sleep(1);
283
                        //Thread.Sleep(1);
Line 240... Line 310...
240
                            }
310
                            }
241
                        }
311
                        }
242
                        break;
312
                        break;
243
                       
313
                       
244
                    case dState.SEND_DONE:
314
                    case dState.SEND_DONE:
-
 
315
                       Console.Write("\r");
-
 
316
                       Console.Write("100%");
245
                        // Send done
317
                        // Send done
246
                        outCm = cpn.getPgmEndPacket();
318
                        outCm = cpn.getPgmEndPacket();
247
                        dc.sendCanPacket(outCm);
319
                        dc.sendCanPacket(outCm);
248
 
320
 
249
                        t = Environment.TickCount;
321
                        t = Environment.TickCount;