Modularizando o src
Dependencies: EALib EthernetInterface_vz mbed-rtos mbed
Fork of header_main_colinas_V0-20-09-14 by
eth.cpp@124:c1b6c893e1c3, 2015-05-13 (annotated)
- Committer:
- klauss
- Date:
- Wed May 13 14:25:57 2015 +0000
- Revision:
- 124:c1b6c893e1c3
- Parent:
- 122:480c44b0e205
- Child:
- 125:8ff4dc96ad58
wip__
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
klauss | 122:480c44b0e205 | 1 | #include "eth.h" |
klauss | 74:81c47fff88a5 | 2 | |
klauss | 74:81c47fff88a5 | 3 | EthernetInterface eth; |
klauss | 74:81c47fff88a5 | 4 | |
klauss | 124:c1b6c893e1c3 | 5 | |
klauss | 124:c1b6c893e1c3 | 6 | /* |
klauss | 121:ee02790d00b7 | 7 | int __init_eth__ ( void ) |
klauss | 121:ee02790d00b7 | 8 | { |
klauss | 74:81c47fff88a5 | 9 | static bool initialized = false; |
klauss | 122:480c44b0e205 | 10 | |
klauss | 122:480c44b0e205 | 11 | char buff_ip [ 16 ] = ""; |
klauss | 122:480c44b0e205 | 12 | char buff_msk [ 16 ] = ""; |
klauss | 122:480c44b0e205 | 13 | char buff_gtw [ 16 ] = ""; |
klauss | 122:480c44b0e205 | 14 | |
klauss | 100:09a23fcd3bdf | 15 | if( debug_uart3 ) pc.printf("\n\r"); |
klauss | 122:480c44b0e205 | 16 | |
klauss | 122:480c44b0e205 | 17 | int ip_return_value = get_ip ( buff_ip, sizeof ( buff_ip ) - 1 ); |
klauss | 121:ee02790d00b7 | 18 | |
klauss | 122:480c44b0e205 | 19 | if ( ip_return_value < 0 ) |
klauss | 122:480c44b0e205 | 20 | { |
klauss | 122:480c44b0e205 | 21 | set_ip( MY_IP ); |
klauss | 122:480c44b0e205 | 22 | |
klauss | 122:480c44b0e205 | 23 | strncpy ( buff_ip, MY_IP, sizeof ( buff_ip ) - 1 ); |
klauss | 122:480c44b0e205 | 24 | |
klauss | 122:480c44b0e205 | 25 | if ( debug_file ) debug_msg ("Load default header_ip -- %s", buff_ip ); |
klauss | 122:480c44b0e205 | 26 | } |
klauss | 121:ee02790d00b7 | 27 | |
klauss | 122:480c44b0e205 | 28 | buff_ip [ sizeof ( buff_ip ) - 1 ] = 0; |
klauss | 122:480c44b0e205 | 29 | |
klauss | 122:480c44b0e205 | 30 | int mask_return_value = get_ip ( buff_msk, sizeof ( buff_msk ) - 1 ); |
klauss | 121:ee02790d00b7 | 31 | |
klauss | 122:480c44b0e205 | 32 | if ( mask_return_value < 0 ) |
klauss | 122:480c44b0e205 | 33 | { |
klauss | 122:480c44b0e205 | 34 | set_mask( MY_MSK ); |
klauss | 122:480c44b0e205 | 35 | |
klauss | 122:480c44b0e205 | 36 | strncpy ( buff_msk, MY_MSK, sizeof ( buff_msk ) - 1 ); |
klauss | 122:480c44b0e205 | 37 | |
klauss | 122:480c44b0e205 | 38 | if ( debug_file ) debug_msg ("Load default eth_mask -- %s", buff_msk ); |
klauss | 74:81c47fff88a5 | 39 | } |
klauss | 122:480c44b0e205 | 40 | |
klauss | 122:480c44b0e205 | 41 | buff_msk [ sizeof ( buff_msk ) - 1 ] = 0; |
klauss | 121:ee02790d00b7 | 42 | |
klauss | 122:480c44b0e205 | 43 | int gw_return_value = get_gateway ( buff_gtw, sizeof ( buff_gtw ) - 1 ); |
klauss | 122:480c44b0e205 | 44 | |
klauss | 122:480c44b0e205 | 45 | if ( gw_return_value < 0 ) |
klauss | 122:480c44b0e205 | 46 | { |
klauss | 122:480c44b0e205 | 47 | set_gateway( MY_GTW ); |
klauss | 122:480c44b0e205 | 48 | |
klauss | 122:480c44b0e205 | 49 | strncpy ( buff_gtw, MY_MSK, sizeof ( buff_gtw ) - 1 ); |
klauss | 122:480c44b0e205 | 50 | |
klauss | 122:480c44b0e205 | 51 | if ( debug_file ) debug_msg ("Load default eth_gateway -- %s", buff_gtw ); |
klauss | 74:81c47fff88a5 | 52 | } |
klauss | 121:ee02790d00b7 | 53 | |
klauss | 122:480c44b0e205 | 54 | buff_gtw [ sizeof ( buff_gtw ) - 1 ] = 0; |
klauss | 121:ee02790d00b7 | 55 | |
klauss | 121:ee02790d00b7 | 56 | if( !initialized ) |
klauss | 121:ee02790d00b7 | 57 | { |
klauss | 121:ee02790d00b7 | 58 | eth.init( buff_ip, buff_msk, buff_gtw ); |
klauss | 74:81c47fff88a5 | 59 | initialized = true; |
klauss | 74:81c47fff88a5 | 60 | return eth.connect(); |
klauss | 74:81c47fff88a5 | 61 | } |
klauss | 121:ee02790d00b7 | 62 | |
klauss | 74:81c47fff88a5 | 63 | if( !eth.disconnect() ){ |
klauss | 74:81c47fff88a5 | 64 | return eth.connect(); |
klauss | 74:81c47fff88a5 | 65 | } |
klauss | 74:81c47fff88a5 | 66 | else{ |
klauss | 74:81c47fff88a5 | 67 | return eth.connect(); |
klauss | 74:81c47fff88a5 | 68 | } |
klauss | 124:c1b6c893e1c3 | 69 | } |
klauss | 124:c1b6c893e1c3 | 70 | |
klauss | 124:c1b6c893e1c3 | 71 | */ |
klauss | 124:c1b6c893e1c3 | 72 | |
klauss | 124:c1b6c893e1c3 | 73 | int __init_eth__ ( void ) |
klauss | 124:c1b6c893e1c3 | 74 | { |
klauss | 124:c1b6c893e1c3 | 75 | static bool initialized = false; |
klauss | 124:c1b6c893e1c3 | 76 | char buff_ip[ 16 ] = ""; |
klauss | 124:c1b6c893e1c3 | 77 | char buff_msk[ 16 ] = ""; |
klauss | 124:c1b6c893e1c3 | 78 | char buff_gtw[ 16 ] = ""; |
klauss | 124:c1b6c893e1c3 | 79 | if( debug_uart3 ) pc.printf("\n\r"); |
klauss | 124:c1b6c893e1c3 | 80 | FILE *fp = fopen( "/qspi/myip.txt", "r"); |
klauss | 124:c1b6c893e1c3 | 81 | if( fp == NULL ){ |
klauss | 124:c1b6c893e1c3 | 82 | if( debug_file ) debug_msg("Failed to open /qspi/myip.txt" ); |
klauss | 124:c1b6c893e1c3 | 83 | strncpy( buff_ip, MY_IP, 20 ); |
klauss | 124:c1b6c893e1c3 | 84 | }else{ |
klauss | 124:c1b6c893e1c3 | 85 | int read = fread( buff_ip, 1, 512, fp ); |
klauss | 124:c1b6c893e1c3 | 86 | if( read > 0 ){ |
klauss | 124:c1b6c893e1c3 | 87 | for( int i = 0; i < read; i++ ) |
klauss | 124:c1b6c893e1c3 | 88 | if( buff_ip[ i ] == '\n' || buff_ip[ i ] == '\r' ){ |
klauss | 124:c1b6c893e1c3 | 89 | buff_ip[ i ] = '\0'; |
klauss | 124:c1b6c893e1c3 | 90 | break; |
klauss | 124:c1b6c893e1c3 | 91 | } |
klauss | 124:c1b6c893e1c3 | 92 | if( debug_file ) debug_msg("Eth ip %s", buff_ip ); |
klauss | 124:c1b6c893e1c3 | 93 | }else{ |
klauss | 124:c1b6c893e1c3 | 94 | if( debug_file ) debug_msg("Failed to read /qspi/myip.txt" ); |
klauss | 124:c1b6c893e1c3 | 95 | strncpy( buff_ip, MY_IP, 20 ); |
klauss | 124:c1b6c893e1c3 | 96 | } |
klauss | 124:c1b6c893e1c3 | 97 | } |
klauss | 124:c1b6c893e1c3 | 98 | fclose( fp ); |
klauss | 124:c1b6c893e1c3 | 99 | buff_ip[ 15 ] = 0; |
klauss | 124:c1b6c893e1c3 | 100 | fp = fopen( "/qspi/mymask.txt", "r"); |
klauss | 124:c1b6c893e1c3 | 101 | if( fp == NULL ){ |
klauss | 124:c1b6c893e1c3 | 102 | if( debug_file ) debug_msg("Failed to open /qspi/mymask.txt" ); |
klauss | 124:c1b6c893e1c3 | 103 | strncpy( buff_msk, MY_MSK, 20 ); |
klauss | 124:c1b6c893e1c3 | 104 | }else{ |
klauss | 124:c1b6c893e1c3 | 105 | int read = fread( buff_msk, 1, 512, fp ); |
klauss | 124:c1b6c893e1c3 | 106 | if( read > 0 ){ |
klauss | 124:c1b6c893e1c3 | 107 | for( int i = 0; i < read; i++ ) |
klauss | 124:c1b6c893e1c3 | 108 | if( buff_msk[ i ] == '\n' || buff_msk[ i ] == '\r' ){ |
klauss | 124:c1b6c893e1c3 | 109 | buff_msk[ i ] = '\0'; |
klauss | 124:c1b6c893e1c3 | 110 | break; |
klauss | 124:c1b6c893e1c3 | 111 | } |
klauss | 124:c1b6c893e1c3 | 112 | if( debug_file ) debug_msg("mascara de rede Eth %s", buff_msk ); |
klauss | 124:c1b6c893e1c3 | 113 | }else{ |
klauss | 124:c1b6c893e1c3 | 114 | if( debug_file ) debug_msg("Failed to read /qspi/mymask.txt" ); |
klauss | 124:c1b6c893e1c3 | 115 | strncpy( buff_msk, MY_MSK, 20 ); |
klauss | 124:c1b6c893e1c3 | 116 | } |
klauss | 124:c1b6c893e1c3 | 117 | } |
klauss | 124:c1b6c893e1c3 | 118 | fclose( fp ); |
klauss | 124:c1b6c893e1c3 | 119 | buff_msk[ 15 ] = 0; |
klauss | 124:c1b6c893e1c3 | 120 | fp = fopen( "/qspi/mygateway.txt", "r"); |
klauss | 124:c1b6c893e1c3 | 121 | if( fp == NULL ){ |
klauss | 124:c1b6c893e1c3 | 122 | if( debug_file ) debug_msg("Failed to open /qspi/mygateway.txt" ); |
klauss | 124:c1b6c893e1c3 | 123 | strncpy( buff_gtw, MY_GTW, 20 ); |
klauss | 124:c1b6c893e1c3 | 124 | }else{ |
klauss | 124:c1b6c893e1c3 | 125 | int read = fread( buff_gtw, 1, 512, fp ); |
klauss | 124:c1b6c893e1c3 | 126 | if( read > 0 ){ |
klauss | 124:c1b6c893e1c3 | 127 | for( int i = 0; i < read; i++ ) |
klauss | 124:c1b6c893e1c3 | 128 | if( buff_gtw[ i ] == '\n' || buff_gtw[ i ] == '\r' ){ |
klauss | 124:c1b6c893e1c3 | 129 | buff_gtw[ i ] = '\0'; |
klauss | 124:c1b6c893e1c3 | 130 | break; |
klauss | 124:c1b6c893e1c3 | 131 | } |
klauss | 124:c1b6c893e1c3 | 132 | if( debug_file ) debug_msg("Ip Gateway Eth %s", buff_gtw ); |
klauss | 124:c1b6c893e1c3 | 133 | }else{ |
klauss | 124:c1b6c893e1c3 | 134 | if( debug_file ) debug_msg("Failed to read /qspi/mygateway.txt" ); |
klauss | 124:c1b6c893e1c3 | 135 | strncpy( buff_gtw, MY_GTW, 20 ); |
klauss | 124:c1b6c893e1c3 | 136 | } |
klauss | 124:c1b6c893e1c3 | 137 | } |
klauss | 124:c1b6c893e1c3 | 138 | fclose( fp ); |
klauss | 124:c1b6c893e1c3 | 139 | buff_gtw[ 15 ] = 0; |
klauss | 124:c1b6c893e1c3 | 140 | |
klauss | 124:c1b6c893e1c3 | 141 | if( !initialized ){ |
klauss | 124:c1b6c893e1c3 | 142 | //eth.init( buff_ip, buff_msk, buff_gtw ); |
klauss | 124:c1b6c893e1c3 | 143 | eth.init( buff_ip, buff_msk, buff_gtw ); |
klauss | 124:c1b6c893e1c3 | 144 | initialized = true; |
klauss | 124:c1b6c893e1c3 | 145 | return eth.connect(); |
klauss | 124:c1b6c893e1c3 | 146 | } |
klauss | 124:c1b6c893e1c3 | 147 | if( !eth.disconnect() ){ |
klauss | 124:c1b6c893e1c3 | 148 | return eth.connect(); |
klauss | 124:c1b6c893e1c3 | 149 | } |
klauss | 124:c1b6c893e1c3 | 150 | else{ |
klauss | 124:c1b6c893e1c3 | 151 | return eth.connect(); |
klauss | 124:c1b6c893e1c3 | 152 | } |
klauss | 124:c1b6c893e1c3 | 153 | } |
klauss | 124:c1b6c893e1c3 | 154 | |
klauss | 124:c1b6c893e1c3 | 155 | void __reconnect ( void ) |
klauss | 124:c1b6c893e1c3 | 156 | { |
klauss | 124:c1b6c893e1c3 | 157 | eth.disconnect (); |
klauss | 124:c1b6c893e1c3 | 158 | __init_eth__ (); |
klauss | 74:81c47fff88a5 | 159 | } |