Fork of Smoothie to port to mbed non-LPC targets.

Dependencies:   mbed

Fork of Smoothie by Stéphane Cachat

Committer:
Michael J. Spencer
Date:
Fri Feb 28 18:52:52 2014 -0800
Revision:
2:1df0b61d3b5a
Update to latest Smoothie.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Michael J. Spencer 2:1df0b61d3b5a 1 #ifndef _NETWORK_H
Michael J. Spencer 2:1df0b61d3b5a 2 #define _NETWORK_H
Michael J. Spencer 2:1df0b61d3b5a 3
Michael J. Spencer 2:1df0b61d3b5a 4 #include "timer.h"
Michael J. Spencer 2:1df0b61d3b5a 5 #include "LPC17XX_Ethernet.h"
Michael J. Spencer 2:1df0b61d3b5a 6 #include "Module.h"
Michael J. Spencer 2:1df0b61d3b5a 7 #include "NetworkPublicAccess.h"
Michael J. Spencer 2:1df0b61d3b5a 8
Michael J. Spencer 2:1df0b61d3b5a 9 #define network_enable_checksum CHECKSUM("enable")
Michael J. Spencer 2:1df0b61d3b5a 10 #define network_webserver_checksum CHECKSUM("webserver")
Michael J. Spencer 2:1df0b61d3b5a 11 #define network_telnet_checksum CHECKSUM("telnet")
Michael J. Spencer 2:1df0b61d3b5a 12 #define network_mac_override_checksum CHECKSUM("mac_override")
Michael J. Spencer 2:1df0b61d3b5a 13 #define network_ip_address_checksum CHECKSUM("ip_address")
Michael J. Spencer 2:1df0b61d3b5a 14 #define network_ip_gateway_checksum CHECKSUM("ip_gateway")
Michael J. Spencer 2:1df0b61d3b5a 15 #define network_ip_mask_checksum CHECKSUM("ip_mask")
Michael J. Spencer 2:1df0b61d3b5a 16
Michael J. Spencer 2:1df0b61d3b5a 17 class Network : public Module
Michael J. Spencer 2:1df0b61d3b5a 18 {
Michael J. Spencer 2:1df0b61d3b5a 19 public:
Michael J. Spencer 2:1df0b61d3b5a 20 Network();
Michael J. Spencer 2:1df0b61d3b5a 21 virtual ~Network();
Michael J. Spencer 2:1df0b61d3b5a 22
Michael J. Spencer 2:1df0b61d3b5a 23 void on_module_loaded();
Michael J. Spencer 2:1df0b61d3b5a 24 void on_idle(void* argument);
Michael J. Spencer 2:1df0b61d3b5a 25 void on_main_loop(void* argument);
Michael J. Spencer 2:1df0b61d3b5a 26 void on_get_public_data(void* argument);
Michael J. Spencer 2:1df0b61d3b5a 27 void dhcpc_configured(uint32_t ipaddr, uint32_t ipmask, uint32_t ipgw);
Michael J. Spencer 2:1df0b61d3b5a 28 static Network *getInstance() { return instance;}
Michael J. Spencer 2:1df0b61d3b5a 29 void tapdev_send(void *pPacket, unsigned int size);
Michael J. Spencer 2:1df0b61d3b5a 30
Michael J. Spencer 2:1df0b61d3b5a 31 private:
Michael J. Spencer 2:1df0b61d3b5a 32 void init();
Michael J. Spencer 2:1df0b61d3b5a 33 uint32_t tick(uint32_t dummy);
Michael J. Spencer 2:1df0b61d3b5a 34 void handlePacket();
Michael J. Spencer 2:1df0b61d3b5a 35
Michael J. Spencer 2:1df0b61d3b5a 36 static Network *instance;
Michael J. Spencer 2:1df0b61d3b5a 37
Michael J. Spencer 2:1df0b61d3b5a 38 LPC17XX_Ethernet *ethernet;
Michael J. Spencer 2:1df0b61d3b5a 39
Michael J. Spencer 2:1df0b61d3b5a 40 struct timer periodic_timer, arp_timer;
Michael J. Spencer 2:1df0b61d3b5a 41 uint8_t mac_address[6];
Michael J. Spencer 2:1df0b61d3b5a 42 uint8_t ipaddr[4];
Michael J. Spencer 2:1df0b61d3b5a 43 uint8_t ipmask[4];
Michael J. Spencer 2:1df0b61d3b5a 44 uint8_t ipgw[4];
Michael J. Spencer 2:1df0b61d3b5a 45 volatile uint32_t tickcnt;
Michael J. Spencer 2:1df0b61d3b5a 46
Michael J. Spencer 2:1df0b61d3b5a 47 };
Michael J. Spencer 2:1df0b61d3b5a 48
Michael J. Spencer 2:1df0b61d3b5a 49 #endif