ArchMax_CC3000_NTP
Dependencies: NTPClient3 NVIC_set_all_priorities cc3000_hostdriver_mbedsocket mbed
main.cpp@0:0e8d73b27253, 2015-10-17 (annotated)
- Committer:
- JackB
- Date:
- Sat Oct 17 23:31:20 2015 +0000
- Revision:
- 0:0e8d73b27253
None
Who changed what in which revision?
User | Revision | Line number | New 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 |