/* * Server FTP x/4 GEVINI * Richiede scheda SD e modulo Ethernet * Require SD card and Ethernet Module */ #include #include #include "sdios.h" #include #include #include "gevino_opto_npn_io.h" byte mac [] = { 0xde , 0xad , 0xbe , 0xef , 0xfe , 0xef }; IPAddress serverIp( 169,254,0,10 ); IPAddress externalIp( 0, 0, 0, 0 ); IPAddress subnet(255, 255, 255, 0); #define DHCP 1 FtpServer ftpSrv; void setup() { SerialUSB.begin(115200); gevino_io_setup(); while(!SerialUSB); SerialUSB.print("chip id: "); SerialUSB.print(*(volatile uint32_t *)0x0080A00C,HEX); SerialUSB.print(*(volatile uint32_t *)0x0080A040,HEX); SerialUSB.print(*(volatile uint32_t *)0x0080A044,HEX); SerialUSB.println(*(volatile uint32_t *)0x0080A048,HEX); mac[3] = (*(volatile uint32_t *)0x0080A00C); mac[4] = (*(volatile uint32_t *)0x0080A00C)>>8; mac[5] = (*(volatile uint32_t *)0x0080A00C)>>16; SerialUSB.print("MAC "); if( mac[0] < 0x10 ) SerialUSB.print("0"); SerialUSB.print(mac[0],HEX); SerialUSB.print(":"); if( mac[1] < 0x10 ) SerialUSB.print("0"); SerialUSB.print(mac[1],HEX); SerialUSB.print(":"); if( mac[2] < 0x10 ) SerialUSB.print("0"); SerialUSB.print(mac[2],HEX); SerialUSB.print(":"); if( mac[3] < 0x10 ) SerialUSB.print("0"); SerialUSB.print(mac[3],HEX); SerialUSB.print(":"); if( mac[4] < 0x10 ) SerialUSB.print("0"); SerialUSB.print(mac[4],HEX); SerialUSB.print(":"); if( mac[5] < 0x10 ) SerialUSB.print("0"); SerialUSB.println(mac[5],HEX); // serverIp.fromString(getFieldSD("DefaultIP=")); // subnet.fromString(getFieldSD("Subnet=")); if( DHCP ){ if( !Ethernet.begin(mac, 10000) ){ SerialUSB.println("Static IP"); Ethernet.begin(mac, serverIp); Ethernet.setSubnetMask(subnet); } else SerialUSB.println("DHCP"); }else{ SerialUSB.println("Static IP"); Ethernet.begin(mac, serverIp); Ethernet.setSubnetMask(subnet); } if (Ethernet.hardwareStatus() != EthernetNoHardware){ SerialUSB.println(Ethernet.localIP()); ftpSrv.init();// Initialize the FTP server // ftpSrv.credentials( getFieldSD("FTPuser=").c_str(), getFieldSD("FTPpassw=").c_str() ); }else{ SerialUSB.println("Ethernet module not present"); } if (Ethernet.linkStatus() == LinkON) SerialUSB.println("ETH Link On"); else SerialUSB.println("ETH Link Off"); } //**************************************************************************************************************** void loop(){ ftpSrv.service(); }