FreeCalypso > hg > fc-selenite
annotate src/g23m-aci/uart/uart_rxf.c @ 216:2be687f4476c default tip
l1_init.c: sync with Tourmaline: L1 recovery ABB init fix
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Mon, 31 Oct 2022 01:23:14 +0000 | 
| parents | d393cd9bb723 | 
| children | 
| rev | line source | 
|---|---|
| 
1
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 +----------------------------------------------------------------------------- | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 | Project : | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 | Modul : | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 +----------------------------------------------------------------------------- | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 | All rights reserved. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 | This file is confidential and a trade secret of Texas | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 | Instruments Berlin, AG | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 | The receipt of or possession of this file does not convey | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 | any rights to reproduce or disclose its contents or to | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 | manufacture, use, or sell anything it may describe, in | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 | whole, or in part, without the specific written consent of | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 | Texas Instruments Berlin, AG. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 +----------------------------------------------------------------------------- | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 | Purpose : This modul is part of the entity UART and implements all | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 | procedures and functions as described in the | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
19 | SDL-documentation (RX-statemachine) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 +----------------------------------------------------------------------------- | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
22 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 #ifndef UART_RXF_C | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 #define UART_RXF_C | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 #endif /* !UART_RXF_C */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 #define ENTITY_UART | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 #ifndef FF_MULTI_PORT | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 /*==== INCLUDES =============================================================*/ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 #ifdef WIN32 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 #include "nucleus.h" | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 #endif /* WIN32 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 #include "typedefs.h" /* to get Condat data types */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 #include "vsi.h" /* to get a lot of macros */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 #include "macdef.h" /* to get a lot of macros */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
38 #include "custom.h" | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
39 #include "gsm.h" /* to get a lot of macros */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
40 #include "cnf_uart.h" /* to get cnf-definitions */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
41 #include "mon_uart.h" /* to get mon-definitions */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
42 #include "prim.h" /* to get the definitions of used SAP and directions */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
43 #ifdef DTILIB | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
44 #include "dti.h" /* to get dti lib */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
45 #endif /* DTILIB */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
46 #include "pei.h" /* to get PEI interface */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
47 #ifdef _TARGET_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
48 #include "uart/serialswitch.h" | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
49 #include "uart/traceswitch.h" | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
50 #else /* _TARGET_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
51 #include "serial_dat.h" /* to get definitions of serial driver */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
52 #endif /* _TARGET_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
53 #include "uart.h" /* to get the global entity definitions */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
54 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
55 #ifdef _SIMULATION_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
56 #include <stdio.h> /* to get sprintf */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
57 #endif /* _SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
58 #include <string.h> /* JK, delete warnings: to get memcpy */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
59 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
60 /*==== CONST ================================================================*/ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
61 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
62 /*==== LOCAL VARS ===========================================================*/ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
63 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
64 /*==== PRIVATE FUNCTIONS ====================================================*/ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
65 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
66 /*==== PUBLIC FUNCTIONS =====================================================*/ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
67 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
68 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
69 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
70 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
71 +------------------------------------------------------------------------------ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
72 | Function : rx_proc_input | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
73 +------------------------------------------------------------------------------ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
74 | Description : The function rx_proc_input() is the actual callback function | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
75 | to read data from the receive buffer. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
76 | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
77 | Parameters : uart_device - database for the affected UART device | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
78 | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
79 +------------------------------------------------------------------------------ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
80 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
81 LOCAL void rx_proc_input (T_UART_DATA* uart_device) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
82 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
83 USHORT i, len; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
84 T_DLC *dlc; /* used Data Link Connection */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
85 UBYTE *source; /* Data source pointer */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
86 UBYTE *destination; /* Data destination pointer */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
87 UBYTE temp_field; /* multi purpose value */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
88 BOOL channels_complete; /* indicator of complete reception */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
89 SHORT error_code; /* error code returned from a function */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
90 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
91 TRACE_FUNCTION( "rx_proc_input" ); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
92 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
93 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
94 * read data only if we have read permission | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
95 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
96 if(uart_device->rx.read_permission) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
97 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
98 if(uart_device->rx.dlc_instance EQ UART_EMPTY_INSTANCE) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
99 dlc = &uart_device->dlc_table[UART_CONTROL_INSTANCE]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
100 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
101 dlc = &uart_device->dlc_table[uart_device->rx.dlc_instance]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
102 destination = &dlc->receive_data->buffer[dlc->receive_pos]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
103 #ifdef _SIMULATION_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
104 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
105 char buf[80]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
106 sprintf(buf,"uart_device->rx.dlc_instance: %d", uart_device->rx.dlc_instance); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
107 TRACE_EVENT(buf); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
108 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
109 #endif /* _SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
110 if(uart_device->rx.dlc_instance EQ UART_EMPTY_INSTANCE) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
111 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
112 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
113 * Raw data | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
114 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
115 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
116 * Is a data descriptor allocated and | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
117 * is the channel ready to receive | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
118 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
119 if((dlc->receive_process EQ UART_RX_PROCESS_READY) && | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
120 (dlc->receive_data)) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
121 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
122 for (i=0; i < uart_device->rx.nsource; i++) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
123 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
124 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
125 * are there still data in the ring buffer segment and | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
126 * are there still space in the data descriptor | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
127 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
128 if ((uart_device->rx.size[i] > 0) && | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
129 (dlc->receive_size > dlc->receive_pos)) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
130 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
131 len = dlc->receive_size - dlc->receive_pos; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
132 if (len > uart_device->rx.size[i]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
133 len = uart_device->rx.size[i]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
134 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
135 memcpy(&dlc->receive_data->buffer[dlc->receive_pos], | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
136 uart_device->rx.source[i], | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
137 len); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
138 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
139 uart_device->rx.size[i] -= len; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
140 dlc->receive_pos += len; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
141 dlc->receive_data->len = dlc->receive_pos; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
142 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
143 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
144 dlc->receive_process = UART_RX_PROCESS_COMPLETE; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
145 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
146 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
147 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
148 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
149 channels_complete = FALSE; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
150 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
151 * for each fragment | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
152 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
153 for (i=0; i < uart_device->rx.nsource; i++) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
154 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
155 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
156 * while there is still data in buffer and | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
157 * not yet all channels are processed | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
158 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
159 source = uart_device->rx.source[i]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
160 while((uart_device->rx.size[i] > 0) && (channels_complete NEQ TRUE)) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
161 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
162 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
163 * detect HDLC flag | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
164 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
165 if(*source EQ UART_HDLC_FLAG) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
166 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
167 switch(uart_device->rx.analyze_state) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
168 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
169 case UART_RX_ERROR: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
170 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
171 * begin of frame detected | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
172 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
173 uart_device->rx.analyze_state = UART_RX_BEGIN; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
174 /* fall through */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
175 case UART_RX_BEGIN: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
176 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
177 * initialize new packet | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
178 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
179 uart_device->rx.stored_len = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
180 uart_device->rx.address_field = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
181 uart_device->rx.fcs = UART_INITFCS; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
182 uart_device->rx.escape = FALSE; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
183 uart_device->rx.analyze_state = UART_RX_ADDRESS; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
184 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
185 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
186 default: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
187 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
188 * detect HDLC flag | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
189 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
190 if(uart_device->rx.stored_len > 0) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
191 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
192 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
193 * determine whether FCS already calculated | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
194 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
195 if(uart_device->rx.analyze_state NEQ UART_RX_FCS) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
196 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
197 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
198 * UART_RX_INFORMATION_... | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
199 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
200 destination--; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
201 #ifdef _SIMULATION_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
202 uart_device->rx.fcs = *destination; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
203 #else /* _SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
204 uart_device->rx.fcs = uart_device-> | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
205 fcstab[uart_device->rx.fcs ^ *destination]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
206 #endif /* _SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
207 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
208 * remove FCS from data stream | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
209 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
210 dlc->receive_pos--; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
211 uart_data->rx.stored_len--; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
212 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
213 if(uart_device->rx.fcs EQ UART_GOODFCS) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
214 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
215 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
216 * no error occured, frame complete | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
217 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
218 dlc->receive_data->len = dlc->receive_pos; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
219 dlc->receive_process = UART_RX_PROCESS_COMPLETE; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
220 uart_device->rx.analyze_state = UART_RX_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
221 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
222 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
223 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
224 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
225 * remove receiced frame because of an error | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
226 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
227 switch(uart_device->rx.analyze_state) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
228 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
229 case UART_RX_INFORMATION: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
230 case UART_RX_FCS: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
231 if(uart_data->rx.dlc_instance EQ UART_CONTROL_INSTANCE) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
232 dlc->receive_pos-= 2; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
233 dlc->receive_pos -= uart_data->rx.stored_len; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
234 dlc->receive_process = UART_RX_PROCESS_READY; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
235 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
236 default: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
237 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
238 * Other states are not handeled here | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
239 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
240 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
241 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
242 uart_device->rx.analyze_state = UART_RX_END; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
243 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
244 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
245 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
246 else if((*source EQ UART_HDLC_ESCAPE) && | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
247 (uart_device->rx.escape NEQ TRUE)) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
248 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
249 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
250 * detect Control Escape octet | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
251 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
252 uart_device->rx.escape = TRUE; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
253 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
254 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
255 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
256 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
257 * bit 5 complement for the octet followed by Control Escape | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
258 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
259 if(uart_device->rx.escape EQ TRUE) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
260 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
261 *source ^= 0x20; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
262 uart_device->rx.escape = FALSE; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
263 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
264 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
265 * store the packet and determine the protocol | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
266 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
267 switch(uart_device->rx.analyze_state) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
268 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
269 case UART_RX_ERROR: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
270 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
271 * wait for next HDLC flag | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
272 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
273 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
274 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
275 case UART_RX_ADDRESS: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
276 if((*source & UART_EA) EQ UART_EA) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
277 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
278 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
279 * FCS calculation | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
280 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
281 #ifdef _SIMULATION_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
282 uart_device->rx.fcs = *source; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
283 #else /* _SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
284 uart_device->rx.fcs = uart_device-> | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
285 fcstab[uart_device->rx.fcs ^ *source]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
286 #endif /* _SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
287 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
288 * store Address field | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
289 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
290 uart_device->rx.address_field = *source; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
291 uart_device->rx.analyze_state = UART_RX_CONTROL; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
292 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
293 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
294 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
295 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
296 * invalid frame detected | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
297 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
298 uart_device->rx.analyze_state = UART_RX_ERROR; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
299 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
300 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
301 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
302 case UART_RX_CONTROL: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
303 switch(*source) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
304 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
305 case UART_UIH_DATA_FRAME: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
306 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
307 * Data frame detected | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
308 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
309 temp_field = uart_device->rx.address_field >> UART_DLCI_POS; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
310 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
311 * if it is an existing channel, but not control channel | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
312 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
313 if((temp_field NEQ UART_DLCI_CONTROL) && | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
314 (uart_device->dlc_instance[temp_field] NEQ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
315 UART_EMPTY_INSTANCE)) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
316 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
317 uart_device->rx.dlc_instance = | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
318 uart_device->dlc_instance[temp_field]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
319 dlc = &uart_device->dlc_table[uart_device->rx.dlc_instance]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
320 #ifdef _SIMULATION_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
321 TRACE_EVENT_P2("Addressfield found DLCI: 0x%02X \ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
322 (dlc_instance 0x%02X)", | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
323 temp_field, uart_device->rx.dlc_instance); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
324 #endif /* _SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
325 if(dlc->receive_process EQ UART_RX_PROCESS_READY) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
326 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
327 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
328 * reception Data channel found | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
329 * FCS calculation | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
330 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
331 #ifdef _SIMULATION_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
332 uart_device->rx.fcs = *source; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
333 #else /* _SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
334 uart_device->rx.fcs = uart_device-> | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
335 fcstab[uart_device-> | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
336 rx.fcs ^ *source]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
337 #endif /* _SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
338 destination = &dlc->receive_data-> | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
339 buffer[dlc->receive_pos]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
340 uart_device->rx.analyze_state = UART_RX_INFORMATION; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
341 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
342 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
343 else if(dlc->receive_process EQ UART_RX_PROCESS_COMPLETE) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
344 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
345 channels_complete = TRUE; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
346 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
347 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
348 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
349 /* fall through */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
350 case UART_SABM_FRAME: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
351 case UART_UA_FRAME: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
352 case UART_DM_DATA_FRAME: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
353 case UART_DM_CONTROL_FRAME: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
354 case UART_DISC_FRAME: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
355 case UART_UIH_CONTROL_FRAME: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
356 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
357 * Control frame detected | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
358 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
359 dlc = &uart_device->dlc_table[UART_CONTROL_INSTANCE]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
360 uart_device->rx.dlc_instance = UART_CONTROL_INSTANCE; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
361 if(dlc->receive_process EQ UART_RX_PROCESS_READY) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
362 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
363 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
364 * reception Control channel found | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
365 * FCS calculation | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
366 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
367 #ifdef _SIMULATION_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
368 uart_device->rx.fcs = *source; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
369 #else /* _SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
370 uart_device->rx.fcs = uart_device-> | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
371 fcstab[uart_device-> | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
372 rx.fcs ^ *source]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
373 #endif /* _SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
374 destination = &dlc->receive_data-> | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
375 buffer[dlc->receive_pos]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
376 uart_device->rx.analyze_state = UART_RX_INFORMATION; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
377 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
378 * store Address and Control field | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
379 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
380 *destination = uart_device->rx.address_field; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
381 destination++; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
382 dlc->receive_pos++; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
383 *destination = *source; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
384 destination++; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
385 dlc->receive_pos++; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
386 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
387 else if(dlc->receive_process EQ UART_RX_PROCESS_COMPLETE) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
388 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
389 channels_complete = TRUE; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
390 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
391 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
392 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
393 * discard frame, because it is unexpected | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
394 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
395 uart_device->rx.analyze_state = UART_RX_ERROR; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
396 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
397 default: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
398 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
399 * invalid frame detected | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
400 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
401 uart_device->rx.analyze_state = UART_RX_ERROR; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
402 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
403 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
404 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
405 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
406 case UART_RX_INFORMATION: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
407 if(uart_device->rx.stored_len < uart_device->n1) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
408 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
409 *destination = *source; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
410 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
411 * increase destination pointer | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
412 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
413 destination++; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
414 uart_device->rx.stored_len++; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
415 dlc->receive_pos++; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
416 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
417 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
418 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
419 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
420 * FCS calculation | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
421 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
422 #ifdef _SIMULATION_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
423 uart_device->rx.fcs = *source; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
424 #else /* _SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
425 uart_device->rx.fcs = uart_device-> | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
426 fcstab[uart_device->rx.fcs ^ *source]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
427 #endif /* _SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
428 uart_device->rx.analyze_state = UART_RX_FCS; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
429 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
430 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
431 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
432 case UART_RX_FCS: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
433 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
434 * remove receiced packet because its to long | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
435 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
436 if(uart_data->rx.dlc_instance EQ UART_CONTROL_INSTANCE) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
437 dlc->receive_pos-= 2; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
438 dlc->receive_pos -= uart_data->rx.stored_len; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
439 dlc->receive_process = UART_RX_PROCESS_READY; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
440 uart_device->rx.analyze_state = UART_RX_ERROR; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
441 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
442 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
443 default: | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
444 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
445 * wrong analyze state | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
446 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
447 uart_device->rx.analyze_state = UART_RX_ERROR; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
448 break; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
449 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
450 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
451 if(uart_device->rx.analyze_state EQ UART_RX_END) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
452 uart_device->rx.analyze_state = UART_RX_BEGIN; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
453 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
454 * don't move source pointer | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
455 * if each possible channel was processed | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
456 * In this case analyze_state should be UART_RX_CONTROL. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
457 * The Control field must be analyzed again in next call of | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
458 * this function. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
459 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
460 else if(channels_complete NEQ TRUE) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
461 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
462 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
463 * increase source pointer | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
464 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
465 source++; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
466 uart_device->rx.size[i]--; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
467 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
468 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
469 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
470 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
471 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
472 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
473 PSIGNAL(hCommUART, UART_DRIVER_RECEIVED_IND, uart_device); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
474 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
475 *uart_device->rx.reInstall = rm_noInstall; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
476 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
477 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
478 * update pointer in UART driver | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
479 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
480 if((error_code = UF_InpAvail (uart_device->device)) < 0 ) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
481 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
482 TRACE_ERROR_P2("UF Driver: DataPointerUpdate failed, [%d], uart_rxf.c(%d)", | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
483 error_code, __LINE__); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
484 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
485 } /* rx_proc_input() */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
486 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
487 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
488 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
489 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
490 +------------------------------------------------------------------------------ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
491 | Function : rx_init | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
492 +------------------------------------------------------------------------------ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
493 | Description : The function rx_init() initializes the RX service | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
494 | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
495 | Parameters : no parameters | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
496 | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
497 +------------------------------------------------------------------------------ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
498 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
499 GLOBAL void rx_init () | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
500 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
501 #ifndef _SIMULATION_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
502 #ifdef WIN32 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
503 #ifndef _TARGET_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
504 char buf[80]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
505 #endif /* !_TARGET_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
506 STATUS sts; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
507 #endif /* WIN32 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
508 #endif /* !_SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
509 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
510 TRACE_FUNCTION( "rx_init" ); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
511 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
512 #ifndef _SIMULATION_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
513 #ifdef WIN32 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
514 sts = NU_Create_HISR (&uart_data->rx.rx_HISR, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
515 "RX_HISR", | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
516 rx_proc_input, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
517 2, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
518 uart_data->HISR_stack, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
519 HISR_STACK_SIZE); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
520 #ifndef _TARGET_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
521 sprintf (buf, "NU_Create_HISR(RX) = %d", sts); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
522 TRACE_EVENT (buf); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
523 #endif /* _TARGET_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
524 #endif /* WIN32 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
525 #endif /* !_SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
526 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
527 uart_data->rx.read_permission = FALSE; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
528 uart_data->rx.prev_lines = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
529 uart_data->rx.dlc_instance = UART_EMPTY_INSTANCE; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
530 uart_data->rx.escape = FALSE; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
531 uart_data->rx.analyze_state = UART_RX_ERROR; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
532 uart_data->rx.receive_state = UART_RX_NOT_RECEIVING; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
533 uart_data->rx.fcs = UART_INITFCS; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
534 uart_data->rx.address_field = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
535 uart_data->rx.stored_len = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
536 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
537 INIT_STATE( UART_SERVICE_RX , RX_DEAD ); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
538 } /* rx_init() */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
539 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
540 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
541 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
542 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
543 +------------------------------------------------------------------------------ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
544 | Function : rx_readOutFunc_0 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
545 +------------------------------------------------------------------------------ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
546 | Description : The function rx_readOutFunc_0() is the official callback | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
547 | function to read data from the receive buffer of UART device 0. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
548 | It just copies the parameters and calls then the actual | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
549 | function. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
550 | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
551 | Parameters : cldFromIrq - called from interrupt | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
552 | reInstall - reinstallation mode | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
553 | nsource - number of source pointers | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
554 | source - array of source pointers | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
555 | size - array of sizes for every source pointer | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
556 | state - state of V.24 lines | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
557 | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
558 +------------------------------------------------------------------------------ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
559 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
560 GLOBAL void rx_readOutFunc_0 (BOOL cldFromIrq, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
561 T_reInstMode *reInstall, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
562 UBYTE nsource, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
563 UBYTE *source[], | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
564 USHORT *size, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
565 ULONG state) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
566 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
567 #ifndef _SIMULATION_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
568 #ifndef _TARGET_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
569 char buf[40]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
570 #endif /* !_TARGET_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
571 #endif /* !_SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
572 T_UART_DATA* uart_device; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
573 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
574 TRACE_FUNCTION( "rx_readOutFunc_0" ); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
575 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
576 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
577 * select UART device 0 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
578 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
579 uart_device = &(uart_data_base[0]); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
580 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
581 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
582 * store parameters | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
583 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
584 uart_device->rx.cldFromIrq = cldFromIrq; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
585 uart_device->rx.nsource = nsource; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
586 uart_device->rx.source[0] = source[0]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
587 uart_device->rx.source[1] = source[1]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
588 uart_device->rx.size = size; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
589 uart_device->rx.lines = state; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
590 uart_device->rx.reInstall = reInstall; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
591 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
592 #ifndef _SIMULATION_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
593 #ifdef WIN32 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
594 if (cldFromIrq) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
595 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
596 STATUS sts; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
597 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
598 * interrupt context of the UART driver -> activate the HISR | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
599 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
600 sts = NU_Activate_HISR (&uart_device->rx.rx_HISR); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
601 #ifndef _TARGET_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
602 sprintf (buf, "NU_Activate_HISR(RX) = %d", sts); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
603 TRACE_EVENT (buf); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
604 #endif /* !_TARGET_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
605 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
606 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
607 #endif /* WIN32 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
608 #endif /* !_SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
609 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
610 #ifdef _SIMULATION_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
611 UBYTE* trace_source[2]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
612 USHORT trace_size[2]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
613 USHORT i; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
614 USHORT pos; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
615 char buf[90]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
616 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
617 trace_source[0] = source[0]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
618 trace_source[1] = source[1]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
619 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
620 trace_size[0] = size[0]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
621 trace_size[1] = size[1]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
622 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
623 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
624 * trace input | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
625 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
626 if((nsource) && | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
627 (uart_device->rx.read_permission)) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
628 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
629 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
630 TRACE_EVENT("==== INRAW"); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
631 i = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
632 pos = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
633 while(pos < trace_size[0]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
634 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
635 i+= sprintf(&buf[i], "0x%02x, ", trace_source[0][pos]); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
636 pos++; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
637 if(i > 80) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
638 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
639 TRACE_EVENT( buf ); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
640 i = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
641 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
642 else if(pos >= trace_size[0]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
643 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
644 TRACE_EVENT( buf ); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
645 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
646 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
647 if(nsource > 1) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
648 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
649 i = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
650 pos = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
651 while(pos < trace_size[1]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
652 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
653 i+= sprintf(&buf[i], "0x%02x, ", trace_source[1][pos]); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
654 pos++; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
655 if(i > 80) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
656 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
657 TRACE_EVENT( buf ); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
658 i = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
659 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
660 else if(pos >= trace_size[1]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
661 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
662 TRACE_EVENT( buf ); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
663 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
664 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
665 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
666 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
667 #endif /* _SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
668 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
669 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
670 * normal callback from UF_ReadData | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
671 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
672 rx_proc_input(uart_device); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
673 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
674 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
675 } /* rx_readOutFunc_0() */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
676 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
677 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
678 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
679 #ifdef FF_TWO_UART_PORTS | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
680 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
681 +------------------------------------------------------------------------------ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
682 | Function : rx_readOutFunc_1 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
683 +------------------------------------------------------------------------------ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
684 | Description : The function rx_readOutFunc_1() is the official callback | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
685 | function to read data from the receive buffer of UART device 1. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
686 | It just copies the parameters and calls then the actual | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
687 | function. | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
688 | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
689 | Parameters : cldFromIrq - called from interrupt | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
690 | reInstall - reinstallation mode | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
691 | nsource - number of source pointers | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
692 | source - array of source pointers | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
693 | size - array of sizes for every source pointer | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
694 | state - state of V.24 lines | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
695 | | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
696 +------------------------------------------------------------------------------ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
697 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
698 GLOBAL void rx_readOutFunc_1 (BOOL cldFromIrq, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
699 T_reInstMode *reInstall, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
700 UBYTE nsource, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
701 UBYTE *source[], | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
702 USHORT *size, | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
703 ULONG state) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
704 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
705 #ifndef _SIMULATION_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
706 #ifndef _TARGET_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
707 char buf[40]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
708 #endif /* !_TARGET_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
709 #endif /* !_SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
710 T_UART_DATA* uart_device; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
711 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
712 TRACE_FUNCTION( "rx_readOutFunc_1" ); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
713 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
714 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
715 * select UART device 1 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
716 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
717 uart_device = &(uart_data_base[1]); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
718 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
719 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
720 * store parameters | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
721 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
722 uart_device->rx.cldFromIrq = cldFromIrq; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
723 uart_device->rx.nsource = nsource; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
724 uart_device->rx.source[0] = source[0]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
725 uart_device->rx.source[1] = source[1]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
726 uart_device->rx.size = size; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
727 uart_device->rx.lines = state; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
728 uart_device->rx.reInstall = reInstall; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
729 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
730 #ifndef _SIMULATION_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
731 #ifdef WIN32 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
732 if (cldFromIrq) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
733 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
734 STATUS sts; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
735 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
736 * interrupt context of the UART driver -> activate the HISR | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
737 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
738 sts = NU_Activate_HISR (&uart_device->rx.rx_HISR); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
739 #ifndef _TARGET_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
740 sprintf (buf, "NU_Activate_HISR(RX) = %d", sts); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
741 TRACE_EVENT (buf); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
742 #endif /* !_TARGET_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
743 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
744 else | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
745 #endif /* WIN32 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
746 #endif /* !_SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
747 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
748 #ifdef _SIMULATION_ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
749 UBYTE* trace_source[2]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
750 USHORT trace_size[2]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
751 USHORT i; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
752 USHORT pos; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
753 char buf[90]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
754 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
755 trace_source[0] = source[0]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
756 trace_source[1] = source[1]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
757 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
758 trace_size[0] = size[0]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
759 trace_size[1] = size[1]; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
760 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
761 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
762 * trace input | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
763 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
764 if((nsource) && | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
765 (uart_device->rx.read_permission)) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
766 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
767 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
768 TRACE_EVENT("==== INRAW"); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
769 i = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
770 pos = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
771 while(pos < trace_size[0]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
772 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
773 i+= sprintf(&buf[i], "0x%02x, ", trace_source[0][pos]); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
774 pos++; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
775 if(i > 80) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
776 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
777 TRACE_EVENT( buf ); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
778 i = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
779 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
780 else if(pos >= trace_size[0]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
781 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
782 TRACE_EVENT( buf ); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
783 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
784 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
785 if(nsource > 1) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
786 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
787 i = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
788 pos = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
789 while(pos < trace_size[1]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
790 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
791 i+= sprintf(&buf[i], "0x%02x, ", trace_source[1][pos]); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
792 pos++; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
793 if(i > 80) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
794 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
795 TRACE_EVENT( buf ); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
796 i = 0; | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
797 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
798 else if(pos >= trace_size[1]) | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
799 { | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
800 TRACE_EVENT( buf ); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
801 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
802 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
803 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
804 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
805 #endif /* _SIMULATION_ */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
806 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
807 /* | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
808 * normal callback from UF_ReadData | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
809 */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
810 rx_proc_input(uart_device); | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
811 } | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
812 | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
813 } /* rx_readOutFunc_1() */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
814 #endif /* FF_TWO_UART_PORTS */ | 
| 
 
d393cd9bb723
src/g23m-*: initial import from Magnetite
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
815 #endif /* !FF_MULTI_PORT */ | 
