rev1

Dependencies:   4DGL-uLCD-SE EthernetInterface NTPClient SDFileSystem mbed-rtos mbed wave_player PinDetect

Fork of WavePlayer_HelloWorld by jim hamblen

Revision:
2:4d370e3f4618
Parent:
1:5b8e223e983d
Child:
3:5f0b28699a67
--- a/main.cpp	Thu Jan 24 02:59:05 2013 +0000
+++ b/main.cpp	Fri Apr 22 17:05:16 2016 +0000
@@ -1,20 +1,92 @@
+//WavePlayer_HelloWorld4180
+//internet_clock
 
 #include "mbed.h"
 #include "SDFileSystem.h"
 #include "wave_player.h"
+#include "EthernetInterface.h"
+#include "NTPClient.h"
+#include "uLCD_4DGL.h"
+#include "rtos.h"
 
 
-SDFileSystem sd(p5, p6, p7, p8, "sd"); //SD card
+
+SDFileSystem sd(p11, p12, p13, p14, "sd"); //SD card
 
 AnalogOut DACout(p18);
 
 wave_player waver(&DACout);
 
+// Parameters
+char* domain_name = "0.uk.pool.ntp.org";
+int port_number = 123;
+
+// Networking
+EthernetInterface eth;
+NTPClient ntp_client;
+
+// Graphic LCD - TX, RX, and RES pins
+uLCD_4DGL uLCD(p28,p27,p29);
+
+//global variables
+time_t ct_time;
+
+void time_thread(void const *args)
+{
+   
+    char time_buffer[80];
+     // Loop and update clock
+    while (1) {
+        uLCD.locate(0, 1);
+        ct_time = time(NULL);
+        strftime(time_buffer, 80, "    %a %b %d\n    %T %p %z\n    %Z\n", \
+                 localtime(&ct_time));
+        uLCD.printf("    UTC/GMT:\n%s", time_buffer);
+        Thread::wait(100);
+    }
+}
+
 int main()
 {
+
+
+
+
+    // Initialize LCD
+    uLCD.baudrate(115200);
+    uLCD.background_color(BLACK);
+    uLCD.cls();
+
+    // Connect to network and wait for DHCP
+    uLCD.locate(0,0);
+    uLCD.printf("Getting IP Address\n");
+    eth.init();
+    if ( eth.connect(60000) == -1 ) {
+        uLCD.printf("ERROR: Could not\nget IP address");
+        return -1;
+    }
+    uLCD.printf("IP address is \n%s\n\n",eth.getIPAddress());
+    Thread::wait(1000);
+
+    // Read time from server
+    uLCD.printf("Reading time...\n\r");
+    ntp_client.setTime(domain_name, port_number);
+    uLCD.printf("Time set\n");
+    Thread::wait(2000);
+    eth.disconnect();
+
+    // Reset LCD
+    uLCD.background_color(WHITE);
+    uLCD.textbackground_color(WHITE);
+    uLCD.color(RED);
+    uLCD.cls();
+    uLCD.text_height(2);
+
+    Thread thread_time(time_thread);
+
     FILE *wave_file;
     printf("\n\n\nHello, wave world!\n");
-    wave_file=fopen("/sd/sample.wav","r");
+    wave_file=fopen("/sd/bob.wav","r");
     waver.play(wave_file);
     fclose(wave_file);
 }
\ No newline at end of file