mouvement AX12 petit robot version 2

Fork of command_AX12_petit_robot_v2 by CRAC Team

Committer:
ClementBreteau
Date:
Fri May 12 14:35:09 2017 +0000
Revision:
7:ad4a19e26b84
Parent:
2:99b1cb0d9f5e
position ax12

Who changed what in which revision?

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