config AX12

Fork of configure_ax12_test_bras_module by CRAC Team

Committer:
clementlignie
Date:
Wed Feb 01 13:42:30 2017 +0000
Revision:
2:91b6646ea994
Parent:
0:c03cffe402df
config AX12

Who changed what in which revision?

UserRevisionLine numberNew contents of line
slowness 0:c03cffe402df 1 /* mbed Microcontroller Library - Ethernet
slowness 0:c03cffe402df 2 * Copyright (c) 2009-2011 ARM Limited. All rights reserved.
slowness 0:c03cffe402df 3 */
slowness 0:c03cffe402df 4
slowness 0:c03cffe402df 5 #ifndef MBED_ETHERNET_H
slowness 0:c03cffe402df 6 #define MBED_ETHERNET_H
slowness 0:c03cffe402df 7
slowness 0:c03cffe402df 8 #include "device.h"
slowness 0:c03cffe402df 9
slowness 0:c03cffe402df 10 #if DEVICE_ETHERNET
slowness 0:c03cffe402df 11
slowness 0:c03cffe402df 12 #include "Base.h"
slowness 0:c03cffe402df 13
slowness 0:c03cffe402df 14 namespace mbed {
slowness 0:c03cffe402df 15
slowness 0:c03cffe402df 16 /* Class: Ethernet
slowness 0:c03cffe402df 17 * An ethernet interface, to use with the ethernet pins.
slowness 0:c03cffe402df 18 *
slowness 0:c03cffe402df 19 * Example:
slowness 0:c03cffe402df 20 * > // Read destination and source from every ethernet packet
slowness 0:c03cffe402df 21 * >
slowness 0:c03cffe402df 22 * > #include "mbed.h"
slowness 0:c03cffe402df 23 * >
slowness 0:c03cffe402df 24 * > Ethernet eth;
slowness 0:c03cffe402df 25 * >
slowness 0:c03cffe402df 26 * > int main() {
slowness 0:c03cffe402df 27 * > char buf[0x600];
slowness 0:c03cffe402df 28 * >
slowness 0:c03cffe402df 29 * > while(1) {
slowness 0:c03cffe402df 30 * > int size = eth.receive();
slowness 0:c03cffe402df 31 * > if(size > 0) {
slowness 0:c03cffe402df 32 * > eth.read(buf, size);
slowness 0:c03cffe402df 33 * > printf("Destination: %02X:%02X:%02X:%02X:%02X:%02X\n",
slowness 0:c03cffe402df 34 * > buf[0], buf[1], buf[2], buf[3], buf[4], buf[5]);
slowness 0:c03cffe402df 35 * > printf("Source: %02X:%02X:%02X:%02X:%02X:%02X\n",
slowness 0:c03cffe402df 36 * > buf[6], buf[7], buf[8], buf[9], buf[10], buf[11]);
slowness 0:c03cffe402df 37 * > }
slowness 0:c03cffe402df 38 * >
slowness 0:c03cffe402df 39 * > wait(1);
slowness 0:c03cffe402df 40 * > }
slowness 0:c03cffe402df 41 * > }
slowness 0:c03cffe402df 42 *
slowness 0:c03cffe402df 43 */
slowness 0:c03cffe402df 44 class Ethernet : public Base {
slowness 0:c03cffe402df 45
slowness 0:c03cffe402df 46 public:
slowness 0:c03cffe402df 47
slowness 0:c03cffe402df 48 /* Constructor: Ethernet
slowness 0:c03cffe402df 49 * Initialise the ethernet interface.
slowness 0:c03cffe402df 50 */
slowness 0:c03cffe402df 51 Ethernet();
slowness 0:c03cffe402df 52
slowness 0:c03cffe402df 53 /* Destructor: Ethernet
slowness 0:c03cffe402df 54 * Powers the hardware down.
slowness 0:c03cffe402df 55 */
slowness 0:c03cffe402df 56 virtual ~Ethernet();
slowness 0:c03cffe402df 57
slowness 0:c03cffe402df 58 enum Mode {
slowness 0:c03cffe402df 59 AutoNegotiate
slowness 0:c03cffe402df 60 , HalfDuplex10
slowness 0:c03cffe402df 61 , FullDuplex10
slowness 0:c03cffe402df 62 , HalfDuplex100
slowness 0:c03cffe402df 63 , FullDuplex100
slowness 0:c03cffe402df 64 };
slowness 0:c03cffe402df 65
slowness 0:c03cffe402df 66 /* Function: write
slowness 0:c03cffe402df 67 * Writes into an outgoing ethernet packet.
slowness 0:c03cffe402df 68 *
slowness 0:c03cffe402df 69 * It will append size bytes of data to the previously written bytes.
slowness 0:c03cffe402df 70 *
slowness 0:c03cffe402df 71 * Variables:
slowness 0:c03cffe402df 72 * data - An array to write.
slowness 0:c03cffe402df 73 * size - The size of data.
slowness 0:c03cffe402df 74 *
slowness 0:c03cffe402df 75 * Returns:
slowness 0:c03cffe402df 76 * The number of written bytes.
slowness 0:c03cffe402df 77 */
slowness 0:c03cffe402df 78 int write(const char *data, int size);
slowness 0:c03cffe402df 79
slowness 0:c03cffe402df 80 /* Function: send
slowness 0:c03cffe402df 81 * Send an outgoing ethernet packet.
slowness 0:c03cffe402df 82 *
slowness 0:c03cffe402df 83 * After filling in the data in an ethernet packet it must be send.
slowness 0:c03cffe402df 84 * Send will provide a new packet to write to.
slowness 0:c03cffe402df 85 *
slowness 0:c03cffe402df 86 * Returns:
slowness 0:c03cffe402df 87 * 0 - If the sending was failed.
slowness 0:c03cffe402df 88 * 1 - If the package is successfully sent.
slowness 0:c03cffe402df 89 */
slowness 0:c03cffe402df 90 int send();
slowness 0:c03cffe402df 91
slowness 0:c03cffe402df 92 /* Function: receive
slowness 0:c03cffe402df 93 * Recevies an arrived ethernet packet.
slowness 0:c03cffe402df 94 *
slowness 0:c03cffe402df 95 * Receiving an ethernet packet will drop the last received ethernet packet
slowness 0:c03cffe402df 96 * and make a new ethernet packet ready to read.
slowness 0:c03cffe402df 97 * If no ethernet packet is arrived it will return 0.
slowness 0:c03cffe402df 98 *
slowness 0:c03cffe402df 99 * Returns:
slowness 0:c03cffe402df 100 * 0 - If no ethernet packet is arrived.
slowness 0:c03cffe402df 101 * The size of the arrived packet.
slowness 0:c03cffe402df 102 */
slowness 0:c03cffe402df 103 int receive();
slowness 0:c03cffe402df 104
slowness 0:c03cffe402df 105 /* Function: read
slowness 0:c03cffe402df 106 * Read from an recevied ethernet packet.
slowness 0:c03cffe402df 107 *
slowness 0:c03cffe402df 108 * After receive returnd a number bigger than 0it is
slowness 0:c03cffe402df 109 * possible to read bytes from this packet.
slowness 0:c03cffe402df 110 * Read will write up to size bytes into data.
slowness 0:c03cffe402df 111 *
slowness 0:c03cffe402df 112 * It is possible to use read multible times.
slowness 0:c03cffe402df 113 * Each time read will start reading after the last read byte before.
slowness 0:c03cffe402df 114 *
slowness 0:c03cffe402df 115 * Returns:
slowness 0:c03cffe402df 116 * The number of byte read.
slowness 0:c03cffe402df 117 */
slowness 0:c03cffe402df 118 int read(char *data, int size);
slowness 0:c03cffe402df 119
slowness 0:c03cffe402df 120 /* Function: address
slowness 0:c03cffe402df 121 * Gives the ethernet address of the mbed.
slowness 0:c03cffe402df 122 *
slowness 0:c03cffe402df 123 * Variables:
slowness 0:c03cffe402df 124 * mac - Must be a pointer to a 6 byte char array to copy the ethernet address in.
slowness 0:c03cffe402df 125 */
slowness 0:c03cffe402df 126 void address(char *mac);
slowness 0:c03cffe402df 127
slowness 0:c03cffe402df 128 /* Function: link
slowness 0:c03cffe402df 129 * Returns if an ethernet link is pressent or not. It takes a wile after Ethernet initializion to show up.
slowness 0:c03cffe402df 130 *
slowness 0:c03cffe402df 131 * Returns:
slowness 0:c03cffe402df 132 * 0 - If no ethernet link is pressent.
slowness 0:c03cffe402df 133 * 1 - If an ethernet link is pressent.
slowness 0:c03cffe402df 134 *
slowness 0:c03cffe402df 135 * Example:
slowness 0:c03cffe402df 136 * > // Using the Ethernet link function
slowness 0:c03cffe402df 137 * > #include "mbed.h"
slowness 0:c03cffe402df 138 * >
slowness 0:c03cffe402df 139 * > Ethernet eth;
slowness 0:c03cffe402df 140 * >
slowness 0:c03cffe402df 141 * > int main() {
slowness 0:c03cffe402df 142 * > wait(1); // Needed after startup.
slowness 0:c03cffe402df 143 * > if(eth.link()) {
slowness 0:c03cffe402df 144 * > printf("online\n");
slowness 0:c03cffe402df 145 * > } else {
slowness 0:c03cffe402df 146 * > printf("offline\n");
slowness 0:c03cffe402df 147 * > }
slowness 0:c03cffe402df 148 * > }
slowness 0:c03cffe402df 149 *
slowness 0:c03cffe402df 150 */
slowness 0:c03cffe402df 151 int link();
slowness 0:c03cffe402df 152
slowness 0:c03cffe402df 153 /* Function: set_link
slowness 0:c03cffe402df 154 * Sets the speed and duplex parameters of an ethernet link
slowness 0:c03cffe402df 155 *
slowness 0:c03cffe402df 156 * Variables:
slowness 0:c03cffe402df 157 * mode - the speed and duplex mode to set the link to:
slowness 0:c03cffe402df 158 *
slowness 0:c03cffe402df 159 * > AutoNegotiate Auto negotiate speed and duplex
slowness 0:c03cffe402df 160 * > HalfDuplex10 10 Mbit, half duplex
slowness 0:c03cffe402df 161 * > FullDuplex10 10 Mbit, full duplex
slowness 0:c03cffe402df 162 * > HalfDuplex100 100 Mbit, half duplex
slowness 0:c03cffe402df 163 * > FullDuplex100 100 Mbit, full duplex
slowness 0:c03cffe402df 164 */
slowness 0:c03cffe402df 165 void set_link(Mode mode);
slowness 0:c03cffe402df 166
slowness 0:c03cffe402df 167 };
slowness 0:c03cffe402df 168
slowness 0:c03cffe402df 169 } // namespace mbed
slowness 0:c03cffe402df 170
slowness 0:c03cffe402df 171 #endif
slowness 0:c03cffe402df 172
slowness 0:c03cffe402df 173 #endif