ArchMax_CC3000_NTP

Dependencies:   NTPClient3 NVIC_set_all_priorities cc3000_hostdriver_mbedsocket mbed

Committer:
JackB
Date:
Sat Oct 17 23:31:20 2015 +0000
Revision:
0:0e8d73b27253
None

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JackB 0:0e8d73b27253 1 #include "mbed.h"
JackB 0:0e8d73b27253 2 #include "main.h"
JackB 0:0e8d73b27253 3 //#include "EthernetInterface.h"
JackB 0:0e8d73b27253 4 #include "NTPClient.h"
JackB 0:0e8d73b27253 5 //#include "NetworkAPI/buffer.hpp"
JackB 0:0e8d73b27253 6 //#include "NetworkAPI/tcp/socket.hpp"
JackB 0:0e8d73b27253 7 #include "cc3000.h"
JackB 0:0e8d73b27253 8
JackB 0:0e8d73b27253 9 #define PORT 1234
JackB 0:0e8d73b27253 10 #define MAX_PENDING 1
JackB 0:0e8d73b27253 11
JackB 0:0e8d73b27253 12 #define CC3000_IRQ D3 // (D3)
JackB 0:0e8d73b27253 13 #define CC3000_EN D5 // (D5)
JackB 0:0e8d73b27253 14 #define CC3000_CS D10 // (D10)
JackB 0:0e8d73b27253 15 #define CC3000_MOSI D11 // (D11)
JackB 0:0e8d73b27253 16 #define CC3000_MISO D12 // (D12)
JackB 0:0e8d73b27253 17 #define CC3000_SCLK D13 // (D13)
JackB 0:0e8d73b27253 18
JackB 0:0e8d73b27253 19 #define SSID "Prakjaroen"
JackB 0:0e8d73b27253 20 #define PHRASE "A4B5C6D7E8F9"
JackB 0:0e8d73b27253 21 #define SECURITY WPA2
JackB 0:0e8d73b27253 22
JackB 0:0e8d73b27253 23 #define IP "192.168.2.165"
JackB 0:0e8d73b27253 24 #define MASK "255.255.255.0"
JackB 0:0e8d73b27253 25 #define GW "192.168.2.1"
JackB 0:0e8d73b27253 26 #define DHCP 1
JackB 0:0e8d73b27253 27
JackB 0:0e8d73b27253 28 Serial pc(USBTX, USBRX);
JackB 0:0e8d73b27253 29
JackB 0:0e8d73b27253 30 using namespace mbed_cc3000;
JackB 0:0e8d73b27253 31
JackB 0:0e8d73b27253 32 cc3000 wifi(CC3000_IRQ, CC3000_EN, CC3000_CS, SPI(CC3000_MOSI, CC3000_MISO, CC3000_SCLK), SSID, PHRASE, SECURITY, false); //SparkFun Board on Arduino pin definitions
JackB 0:0e8d73b27253 33
JackB 0:0e8d73b27253 34 // array to store RM parameters from EEPROM
JackB 0:0e8d73b27253 35 unsigned char cRMParamsFromEeprom[128];
JackB 0:0e8d73b27253 36
JackB 0:0e8d73b27253 37 // array to store MAC address from EEPROM
JackB 0:0e8d73b27253 38 unsigned char cMacFromEeprom[6];
JackB 0:0e8d73b27253 39
JackB 0:0e8d73b27253 40 int main() {
JackB 0:0e8d73b27253 41 init(); /* board dependent init */
JackB 0:0e8d73b27253 42 pc.baud(230400);
JackB 0:0e8d73b27253 43
JackB 0:0e8d73b27253 44 printf("\r\n--------------------------------------------------------------------------------\r\n");
JackB 0:0e8d73b27253 45 printf("cc3000 NTP client demo.\r\n");
JackB 0:0e8d73b27253 46 #if (DHCP == 1)
JackB 0:0e8d73b27253 47 printf("Initialize the interface using DHCP...\r\n");
JackB 0:0e8d73b27253 48 printf("wifi.init() ");
JackB 0:0e8d73b27253 49 wifi.init();
JackB 0:0e8d73b27253 50 #else
JackB 0:0e8d73b27253 51 printf("Initialize the interface using a static IP address...\r\n");
JackB 0:0e8d73b27253 52 printf("wifi.init(%s, %s, %s) ", IP, MASK, GW);
JackB 0:0e8d73b27253 53 wifi.init(IP, MASK, GW);
JackB 0:0e8d73b27253 54 #endif
JackB 0:0e8d73b27253 55 printf("done.\r\n");
JackB 0:0e8d73b27253 56 printf("wifi.connect() ");
JackB 0:0e8d73b27253 57 if (wifi.connect() == -1) {
JackB 0:0e8d73b27253 58 printf("failed.\r\n");
JackB 0:0e8d73b27253 59 printf("Failed to connect. Please verify connection details and try again. \r\n");
JackB 0:0e8d73b27253 60 } else {
JackB 0:0e8d73b27253 61 printf("done.\r\n");
JackB 0:0e8d73b27253 62 printf("IP address: %s \r\n", wifi.getIPAddress());
JackB 0:0e8d73b27253 63 }
JackB 0:0e8d73b27253 64
JackB 0:0e8d73b27253 65 NTPClient ntp_client;
JackB 0:0e8d73b27253 66 time_t ct_time;
JackB 0:0e8d73b27253 67 char time_buffer[80];
JackB 0:0e8d73b27253 68 char time_buffer_old[80];
JackB 0:0e8d73b27253 69 wait(1);
JackB 0:0e8d73b27253 70
JackB 0:0e8d73b27253 71 strcpy(time_buffer_old, "");
JackB 0:0e8d73b27253 72
JackB 0:0e8d73b27253 73 // Parameters
JackB 0:0e8d73b27253 74 char* domain_name = "0.uk.pool.ntp.org";
JackB 0:0e8d73b27253 75 int port_number = 123;
JackB 0:0e8d73b27253 76
JackB 0:0e8d73b27253 77 // Read time from server
JackB 0:0e8d73b27253 78 printf("Reading time...\r\n");
JackB 0:0e8d73b27253 79 ntp_client.setTime(domain_name, port_number);
JackB 0:0e8d73b27253 80
JackB 0:0e8d73b27253 81 // ct_time = time(NULL);
JackB 0:0e8d73b27253 82 // strftime(time_buffer, 80, "%a %b %d %T %p %z %Z\n", localtime(&ct_time));
JackB 0:0e8d73b27253 83 // printf("UTC/GMT: %s\n", time_buffer);
JackB 0:0e8d73b27253 84 // printf("UTC %s\n", ctime(&ct_time));
JackB 0:0e8d73b27253 85
JackB 0:0e8d73b27253 86 // Choose standard or daylight savings time, comment out other
JackB 0:0e8d73b27253 87 // ct_time= time(NULL) + 3600; // Winter time - Convert to Europe/Amsterdam Time
JackB 0:0e8d73b27253 88 ct_time = time(NULL) + 7200; // Summer time - Convert to Europe/Amsterdam Time
JackB 0:0e8d73b27253 89 set_time(ct_time);
JackB 0:0e8d73b27253 90
JackB 0:0e8d73b27253 91 // ct_time = time(NULL);
JackB 0:0e8d73b27253 92 strftime(time_buffer, 80, "%a %d-%b-%Y %T", localtime(&ct_time));
JackB 0:0e8d73b27253 93 printf("%s\r\n", time_buffer);
JackB 0:0e8d73b27253 94
JackB 0:0e8d73b27253 95 while (1) {
JackB 0:0e8d73b27253 96 ct_time = time(NULL);
JackB 0:0e8d73b27253 97 strftime(time_buffer, 80, "%S", localtime(&ct_time));
JackB 0:0e8d73b27253 98 if (strcmp(time_buffer, time_buffer_old) != 0) {
JackB 0:0e8d73b27253 99 strcpy(time_buffer_old, time_buffer);
JackB 0:0e8d73b27253 100 strftime(time_buffer, 80, "%a %d-%b-%Y %T", localtime(&ct_time));
JackB 0:0e8d73b27253 101 printf("%s\r\n", time_buffer);
JackB 0:0e8d73b27253 102 // Sync ones a day
JackB 0:0e8d73b27253 103 strftime(time_buffer, 80, "%T", localtime(&ct_time));
JackB 0:0e8d73b27253 104 if (strcmp(time_buffer, "00:00:00") == 0) {
JackB 0:0e8d73b27253 105 ntp_client.setTime(domain_name, port_number);
JackB 0:0e8d73b27253 106 }
JackB 0:0e8d73b27253 107 }
JackB 0:0e8d73b27253 108 }
JackB 0:0e8d73b27253 109 }
JackB 0:0e8d73b27253 110