Subversion Repositories HomeAutomation

Rev

Rev 31 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed

Rev 31 Rev 32
Line 24... Line 24...
24
 
24
 
25
 
25
 
26
 
26
 
27
static void mainInit(void);
27
static void mainInit(void);
28
 
28
 
29
static BOOL heartBeatEnabled = TRUE;
29
static BOOL heartBeatEnabled = FALSE;
30
 
30
 
31
void main()
31
void main()
32
{
32
{
33
    static TICK t = 0;
33
    static TICK t = 0;
34
 
34
 
Line 163... Line 163...
163
*   Depends: none.
163
*   Depends: none.
164
*/
164
*/
165
#ifdef USE_UART
165
#ifdef USE_UART
166
void uartParse(BYTE c)
166
void uartParse(BYTE c)
167
{
167
{
-
 
168
    BYTE i;
-
 
169
    unsigned int wait = 0;
-
 
170
    CAN_MESSAGE cm;
-
 
171
    static BOOL waitingMessage = FALSE;
-
 
172
    static TICK timeout;
-
 
173
    static BYTE count;
-
 
174
 
-
 
175
    if (waitingMessage==TRUE && (tickGet()-timeout)>TICK_SECOND/20)
-
 
176
    {
-
 
177
        waitingMessage=FALSE;
-
 
178
    }
-
 
179
 
-
 
180
    if (waitingMessage==TRUE)
-
 
181
    {
-
 
182
        timeout=tickGet();
-
 
183
 
-
 
184
        // UART END
-
 
185
        if(count>=14)
-
 
186
        {
-
 
187
            if (c==UART_END_BYTE)
-
 
188
            {
-
 
189
                while(!canSendMessage(cm));
-
 
190
            }
-
 
191
            waitingMessage=FALSE;
-
 
192
            return;
-
 
193
        }
-
 
194
 
-
 
195
        // data
-
 
196
        if(count>=6)
-
 
197
        {
-
 
198
            cm.data[count-6]=c;
-
 
199
            count++;
-
 
200
            return;
-
 
201
        }
-
 
202
 
-
 
203
        // data length
-
 
204
        if(count>=5)
-
 
205
        {
-
 
206
            cm.data_length=c;
-
 
207
            count++;
-
 
208
            return;
-
 
209
        }
-
 
210
 
-
 
211
        // extended
-
 
212
        if(count>=4)
-
 
213
        {
-
 
214
            cm.extended=c;
-
 
215
            count++;
-
 
216
            return;
-
 
217
        }
-
 
218
 
-
 
219
        // ident
-
 
220
        if(count>=0)
-
 
221
        {
-
 
222
            cm.ident+=((DWORD)c<<(count*8));
-
 
223
            count++;
-
 
224
            return;
-
 
225
        }
-
 
226
   
-
 
227
    }
-
 
228
 
-
 
229
 
-
 
230
    if (c==UART_START_BYTE && waitingMessage==FALSE)
-
 
231
    {
-
 
232
            waitingMessage=TRUE;
-
 
233
            timeout=tickGet();
-
 
234
            count=0;
-
 
235
            cm.ident=0;
-
 
236
            return;
-
 
237
    }
-
 
238
   
-
 
239
 
-
 
240
 
-
 
241
/*         
-
 
242
            for(i=0;i<4;i++)
-
 
243
            {
-
 
244
                wait = 0;
-
 
245
                while(!uartDataRedy())
-
 
246
                {
-
 
247
                    if(wait < UART_READ_TIMEOUT) wait++;                
-
 
248
                    else return;          
-
 
249
                }
-
 
250
                cm.ident += uartGet()<<(i*8);
-
 
251
            }
-
 
252
 
-
 
253
 
-
 
254
            wait = 0;
-
 
255
            while(!uartDataRedy())
-
 
256
            {
-
 
257
                if(wait < UART_READ_TIMEOUT) wait++ ;                
-
 
258
                else return;          
-
 
259
            }
-
 
260
            cm.extended= uartGet();
-
 
261
 
-
 
262
 
-
 
263
 
-
 
264
            wait = 0;
-
 
265
            while(!uartDataRedy())
-
 
266
            {
-
 
267
                if(wait < UART_READ_TIMEOUT) wait++ ;                
-
 
268
                else return;          
-
 
269
            }
-
 
270
            cm.data_length= uartGet();
-
 
271
 
-
 
272
            for(i=0;i<4;i++)
-
 
273
            {
-
 
274
                wait = 0;
-
 
275
                while(!uartDataRedy())
-
 
276
                {
-
 
277
                    if(wait < UART_READ_TIMEOUT) wait++ ;                
-
 
278
                    else return;          
-
 
279
                }
-
 
280
                cm.data[i]=uartGet();
-
 
281
            }
-
 
282
 
-
 
283
            wait = 0;
-
 
284
            while(!uartDataRedy())
-
 
285
            {
-
 
286
                if(wait < UART_READ_TIMEOUT) wait++ ;                
-
 
287
                else return;          
-
 
288
            }
-
 
289
            if (uartGet()!=UART_END_BYTE) return;
-
 
290
*/
-
 
291
            /* 
-
 
292
            if (uartGets(&cm.ident,4,UART_READ_TIMEOUT)) return;
-
 
293
            if (uartGets(&cm.extended,1,UART_READ_TIMEOUT)) return;
-
 
294
            if (uartGets(&cm.data_length,1,UART_READ_TIMEOUT)) return;
-
 
295
            if (uartGets(cm.data,8,UART_READ_TIMEOUT)) return;
-
 
296
            if (uartGets(&i,1,UART_READ_TIMEOUT)) return;
-
 
297
            if (i!=UART_END_BYTE) return;      
-
 
298
            */
-
 
299
        //  while(!canSendMessage(cm));
-
 
300
//  }
-
 
301
 
168
 
302
 
169
 
303
   
170
    if (c=='1')
304
    if(c=='1' && waitingMessage==FALSE)
171
    {
305
    {  
172
        CAN_MESSAGE cm;
-
 
173
        cm.ident=0x00000123;
306
            cm.ident=0x00000123;
174
        cm.extended=FALSE;
307
            cm.extended=FALSE;
175
        cm.data_length=4;
308
            cm.data_length=4;
176
        cm.data[0]='!';
309
            cm.data[0]='!';
177
        cm.data[1]='j';
310
            cm.data[1]='j';
178
        cm.data[2]='e';
311
            cm.data[2]='e';
179
        cm.data[3]='H';
312
            cm.data[3]='H';
180
 
313
 
181
        while(!canSendMessage(cm));
314
            while(!canSendMessage(cm));
182
    }
315
    }
183
 
316
 
184
    if (c=='2')
317
    if(c=='2' && waitingMessage==FALSE)  
185
    {
318
    {
186
        CAN_MESSAGE cm;
-
 
187
        cm.ident=0x0ABCDEF0;
319
            cm.ident=0x0ABCDEF0;
188
        cm.extended=TRUE;
320
            cm.extended=TRUE;
189
        cm.data_length=8;
321
            cm.data_length=8;
190
        cm.data[0]='!';
322
            cm.data[0]='!';
191
        cm.data[1]='g';
323
            cm.data[1]='g';
Line 193... Line 325...
193
        cm.data[3]='d';
325
            cm.data[3]='d';
194
        cm.data[4]=' ';
326
            cm.data[4]=' ';
195
        cm.data[5]='d';
327
            cm.data[5]='d';
196
        cm.data[6]='o';
328
            cm.data[6]='o';
197
        cm.data[7]='G';
329
            cm.data[7]='G';
198
 
-
 
199
 
330
 
200
        while(!canSendMessage(cm));
331
            while(!canSendMessage(cm));
201
    }
332
    }
202
 
333
 
203
    if (c=='3')
334
    if(c=='3' && waitingMessage==FALSE)
204
    {
335
    {
205
        CAN_MESSAGE cm;
-
 
206
        cm.ident=0x00000010;
336
            cm.ident=0x00000010;
207
        cm.extended=FALSE;
337
            cm.extended=FALSE;
208
        cm.data_length=6;
338
            cm.data_length=6;
209
        cm.data[0]='0';
339
            cm.data[0]='0';
210
        cm.data[1]='1';
340
            cm.data[1]='1';
Line 214... Line 344...
214
        cm.data[5]='5';
344
            cm.data[5]='5';
215
 
345
   
216
        while(!canSendMessage(cm));
346
            while(!canSendMessage(cm));
217
    }
347
    }
218
 
348
 
219
    if (c=='d')
-
 
220
    {
-
 
221
        //uartPutc('D');
-
 
222
    }
-
 
223
 
-
 
224
    if (c=='D')
-
 
225
    {
-
 
226
        //uartPutrs("Debug? Debug!");
-
 
227
    }
-
 
228
 
349
   
229
    if (c=='T')
-
 
230
    {
-
 
231
        heartBeatEnabled=(heartBeatEnabled==TRUE?FALSE:TRUE);
-
 
232
    }
-
 
233
 
-
 
234
    if (c=='4')
-
 
235
    {
-
 
236
        /*
-
 
237
        uartPutc(RXB0CON);
-
 
238
        uartPutc(RXB1CON);
-
 
239
        uartPutc(123);
-
 
240
        uartPutc(B0CON);
-
 
241
        uartPutc(B1CON);
-
 
242
        uartPutc(B2CON);
-
 
243
        uartPutc(123); 
-
 
244
        uartPutc(B3CON);   
-
 
245
        uartPutc(B4CON);   
-
 
246
        uartPutc(B5CON);
-
 
247
        uartPutc(123); 
-
 
248
        uartPutc(CANSTAT); 
-
 
249
        uartPutc(COMSTAT); 
-
 
250
        uartPutc(ECANCON);
-
 
251
        uartPutc(123); 
-
 
252
        uartPutc(TXB0CON); 
-
 
253
        uartPutc(TXB1CON); 
-
 
254
        uartPutc(TXB2CON); 
-
 
255
        uartPutc(123);
-
 
256
        uartPutc(PIR3);
-
 
257
        uartPutc(PIE3);
-
 
258
        uartPutc(123);
-
 
259
        uartPutc(BRGCON1);
-
 
260
        uartPutc(BRGCON2);
-
 
261
        uartPutc(BRGCON3);
-
 
262
        uartPutc(123);
-
 
263
        uartPutc(RXFCON0);
-
 
264
        uartPutc(RXFCON1);
-
 
265
        uartPutc(123);
-
 
266
        uartPutc(RXFBCON0);
-
 
267
        uartPutc(RXFBCON1);
-
 
268
        uartPutc(RXFBCON2);
-
 
269
        uartPutc(RXFBCON3);
-
 
270
        uartPutc(RXFBCON4);
-
 
271
        uartPutc(RXFBCON5);
-
 
272
        uartPutc(RXFBCON6);
-
 
273
        uartPutc(RXFBCON7);
-
 
274
        uartPutc(123);
-
 
275
        uartPutc(TXBIE);
-
 
276
        uartPutc(BIE0);
-
 
277
        */
-
 
278
    }
-
 
279
 
350
 
280
}
351
}
281
#endif
352
#endif