You can use two mode time setting. (1) receive real time from NTP server (2) manual setting.Before startup, it should be download some voice file into micro SD-card.
Dependencies: FatFileSystem mbed HTTPClient_ToBeRemoved TextLCD HTTPServer NTPClient_NetServices EthernetNetIf
main.cpp@0:ae31fe6f181c, 2012-02-23 (annotated)
- Committer:
- y_notsu
- Date:
- Thu Feb 23 14:35:52 2012 +0000
- Revision:
- 0:ae31fe6f181c
- Child:
- 1:8816ea8be54b
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
y_notsu | 0:ae31fe6f181c | 1 | #include "mbed.h" |
y_notsu | 0:ae31fe6f181c | 2 | //#define USE_TextLCD_20x4 |
y_notsu | 0:ae31fe6f181c | 3 | #define USE_FIXED_IP |
y_notsu | 0:ae31fe6f181c | 4 | |
y_notsu | 0:ae31fe6f181c | 5 | //////////////////////////////////////// |
y_notsu | 0:ae31fe6f181c | 6 | //////// For Waveplayer //////// |
y_notsu | 0:ae31fe6f181c | 7 | //////////////////////////////////////// |
y_notsu | 0:ae31fe6f181c | 8 | //Place suitable uncompressed wav files with 8 or 16 bit sample sizes on the SD card and ensure the |
y_notsu | 0:ae31fe6f181c | 9 | //file names are 8.3 format. Then change the main method below to the relevant file paths. |
y_notsu | 0:ae31fe6f181c | 10 | #include "wavplayer.h" |
y_notsu | 0:ae31fe6f181c | 11 | |
y_notsu | 0:ae31fe6f181c | 12 | |
y_notsu | 0:ae31fe6f181c | 13 | //////////////////////////////////////// |
y_notsu | 0:ae31fe6f181c | 14 | //////// general setting //////// |
y_notsu | 0:ae31fe6f181c | 15 | //////////////////////////////////////// |
y_notsu | 0:ae31fe6f181c | 16 | //#define USE_TextLCD_20x4 |
y_notsu | 0:ae31fe6f181c | 17 | #define USE_FIXED_IP |
y_notsu | 0:ae31fe6f181c | 18 | |
y_notsu | 0:ae31fe6f181c | 19 | //////////////////////////////////////// |
y_notsu | 0:ae31fe6f181c | 20 | //////// For TextLCD //////// |
y_notsu | 0:ae31fe6f181c | 21 | //////////////////////////////////////// |
y_notsu | 0:ae31fe6f181c | 22 | #include "TextLCD.h" |
y_notsu | 0:ae31fe6f181c | 23 | #ifdef USE_TextLCD_20x4 |
y_notsu | 0:ae31fe6f181c | 24 | //TextLCD lcd( p24, p26, p27, p28, p29, p30, TextLCD::LCD20x4 ); // rs, e, d0-d3 |
y_notsu | 0:ae31fe6f181c | 25 | #else |
y_notsu | 0:ae31fe6f181c | 26 | TextLCD lcd( p24, p26, p27, p28, p29, p30 ); // rs, e, d0-d3 |
y_notsu | 0:ae31fe6f181c | 27 | #endif |
y_notsu | 0:ae31fe6f181c | 28 | |
y_notsu | 0:ae31fe6f181c | 29 | //////////////////////////////////////// |
y_notsu | 0:ae31fe6f181c | 30 | //////// For SD_card //////// |
y_notsu | 0:ae31fe6f181c | 31 | //////////////////////////////////////// |
y_notsu | 0:ae31fe6f181c | 32 | #include "SDHCFileSystem.h" |
y_notsu | 0:ae31fe6f181c | 33 | //SDFileSystem sd(p5, p6, p7, p13, "sd"); // mosi, miso, sclk, cs, name |
y_notsu | 0:ae31fe6f181c | 34 | SDFileSystem sd(p5, p6, p7, p8, "sd"); // mosi, miso, sclk, cs, name (HW modification candidate) |
y_notsu | 0:ae31fe6f181c | 35 | |
y_notsu | 0:ae31fe6f181c | 36 | //////////////////////////////////////// |
y_notsu | 0:ae31fe6f181c | 37 | //////// For USB storage //////// |
y_notsu | 0:ae31fe6f181c | 38 | //////////////////////////////////////// |
y_notsu | 0:ae31fe6f181c | 39 | //#include "MSCFileSystem.h" |
y_notsu | 0:ae31fe6f181c | 40 | //MSCFileSystem usb("usb"); |
y_notsu | 0:ae31fe6f181c | 41 | |
y_notsu | 0:ae31fe6f181c | 42 | //////////////////////////////////////// |
y_notsu | 0:ae31fe6f181c | 43 | //////// For Ethernet test //////// |
y_notsu | 0:ae31fe6f181c | 44 | //////////////////////////////////////// |
y_notsu | 0:ae31fe6f181c | 45 | #include "EthernetNetIf.h" |
y_notsu | 0:ae31fe6f181c | 46 | //#include "HTTPServer.h" |
y_notsu | 0:ae31fe6f181c | 47 | //#ifdef USE_FIXED_IP |
y_notsu | 0:ae31fe6f181c | 48 | //EthernetNetIf eth( |
y_notsu | 0:ae31fe6f181c | 49 | // IpAddr(192,168,0,20), //IP Address |
y_notsu | 0:ae31fe6f181c | 50 | // IpAddr(255,255,255,0), //Network Mask |
y_notsu | 0:ae31fe6f181c | 51 | // IpAddr(192,168,0,1), //Gateway |
y_notsu | 0:ae31fe6f181c | 52 | // IpAddr(192,168,0,1) //DNS |
y_notsu | 0:ae31fe6f181c | 53 | //); |
y_notsu | 0:ae31fe6f181c | 54 | //#else |
y_notsu | 0:ae31fe6f181c | 55 | EthernetNetIf eth; |
y_notsu | 0:ae31fe6f181c | 56 | //#endif |
y_notsu | 0:ae31fe6f181c | 57 | //HTTPServer svr; |
y_notsu | 0:ae31fe6f181c | 58 | //#include "HTTPClient.h" |
y_notsu | 0:ae31fe6f181c | 59 | #include "NTPClient.h" |
y_notsu | 0:ae31fe6f181c | 60 | NTPClient ntp; |
y_notsu | 0:ae31fe6f181c | 61 | const char ntp_server[] = "0.uk.pool.ntp.org"; |
y_notsu | 0:ae31fe6f181c | 62 | |
y_notsu | 0:ae31fe6f181c | 63 | LocalFileSystem web("local"); |
y_notsu | 0:ae31fe6f181c | 64 | |
y_notsu | 0:ae31fe6f181c | 65 | |
y_notsu | 0:ae31fe6f181c | 66 | |
y_notsu | 0:ae31fe6f181c | 67 | |
y_notsu | 0:ae31fe6f181c | 68 | void test_file_write( char *title, char *path ); |
y_notsu | 0:ae31fe6f181c | 69 | //void test_httpserver( void ); |
y_notsu | 0:ae31fe6f181c | 70 | int position( void ); |
y_notsu | 0:ae31fe6f181c | 71 | |
y_notsu | 0:ae31fe6f181c | 72 | DigitalOut led1(LED1); |
y_notsu | 0:ae31fe6f181c | 73 | DigitalOut led4(LED4); |
y_notsu | 0:ae31fe6f181c | 74 | |
y_notsu | 0:ae31fe6f181c | 75 | DigitalIn SW1(p15); |
y_notsu | 0:ae31fe6f181c | 76 | DigitalIn SW2(p16); |
y_notsu | 0:ae31fe6f181c | 77 | DigitalIn TGSW(p17); |
y_notsu | 0:ae31fe6f181c | 78 | DigitalIn SW3(p14); |
y_notsu | 0:ae31fe6f181c | 79 | |
y_notsu | 0:ae31fe6f181c | 80 | int playflg; |
y_notsu | 0:ae31fe6f181c | 81 | int playflg2; |
y_notsu | 0:ae31fe6f181c | 82 | int timest; |
y_notsu | 0:ae31fe6f181c | 83 | |
y_notsu | 0:ae31fe6f181c | 84 | char *wavefilename1; |
y_notsu | 0:ae31fe6f181c | 85 | char *wavefilename2; |
y_notsu | 0:ae31fe6f181c | 86 | char *wavefilename3; |
y_notsu | 0:ae31fe6f181c | 87 | char *wavefilename4; |
y_notsu | 0:ae31fe6f181c | 88 | |
y_notsu | 0:ae31fe6f181c | 89 | Ticker rt; |
y_notsu | 0:ae31fe6f181c | 90 | char buf[40]; |
y_notsu | 0:ae31fe6f181c | 91 | time_t ctTime; |
y_notsu | 0:ae31fe6f181c | 92 | |
y_notsu | 0:ae31fe6f181c | 93 | void timecall() |
y_notsu | 0:ae31fe6f181c | 94 | { |
y_notsu | 0:ae31fe6f181c | 95 | if(TGSW==1)ctTime = time(NULL)+32400;//JST time |
y_notsu | 0:ae31fe6f181c | 96 | else ctTime = time(NULL); |
y_notsu | 0:ae31fe6f181c | 97 | strftime(buf,sizeof(buf), " (%Y/%m/%d %a %p %I:%M:%S)", localtime(&ctTime)); |
y_notsu | 0:ae31fe6f181c | 98 | lcd.cls(); |
y_notsu | 0:ae31fe6f181c | 99 | lcd.printf("%s",buf); |
y_notsu | 0:ae31fe6f181c | 100 | } |
y_notsu | 0:ae31fe6f181c | 101 | |
y_notsu | 0:ae31fe6f181c | 102 | |
y_notsu | 0:ae31fe6f181c | 103 | int main() { |
y_notsu | 0:ae31fe6f181c | 104 | WavPlayer myWavPlayer; |
y_notsu | 0:ae31fe6f181c | 105 | |
y_notsu | 0:ae31fe6f181c | 106 | led1 = 1 ; |
y_notsu | 0:ae31fe6f181c | 107 | playflg = 0; |
y_notsu | 0:ae31fe6f181c | 108 | playflg2 = 0; |
y_notsu | 0:ae31fe6f181c | 109 | printf("\r\n--------------- Starting -----------------\r\n"); |
y_notsu | 0:ae31fe6f181c | 110 | lcd.printf("----Starting----"); |
y_notsu | 0:ae31fe6f181c | 111 | lcd.locate(0,1); |
y_notsu | 0:ae31fe6f181c | 112 | wait(3); |
y_notsu | 0:ae31fe6f181c | 113 | test_file_write( "SD card", "/sd/star_bd.txt" ); |
y_notsu | 0:ae31fe6f181c | 114 | wait(2); |
y_notsu | 0:ae31fe6f181c | 115 | //test_file_write( "USB storage", "/usb/star_bd.txt" ); |
y_notsu | 0:ae31fe6f181c | 116 | //wait( 2 ); |
y_notsu | 0:ae31fe6f181c | 117 | myWavPlayer.play_wave("/sd/startup.wav"); |
y_notsu | 0:ae31fe6f181c | 118 | wait(0.5); |
y_notsu | 0:ae31fe6f181c | 119 | myWavPlayer.play_wave("/sd/startup2.wav"); |
y_notsu | 0:ae31fe6f181c | 120 | lcd.cls(); |
y_notsu | 0:ae31fe6f181c | 121 | printf("\r\nSetting up...\r\n"); |
y_notsu | 0:ae31fe6f181c | 122 | |
y_notsu | 0:ae31fe6f181c | 123 | lcd.printf("Setting up...\n"); |
y_notsu | 0:ae31fe6f181c | 124 | if(TGSW==1) |
y_notsu | 0:ae31fe6f181c | 125 | { |
y_notsu | 0:ae31fe6f181c | 126 | EthernetErr ethErr = eth.setup(); |
y_notsu | 0:ae31fe6f181c | 127 | if (ethErr) { |
y_notsu | 0:ae31fe6f181c | 128 | printf("Error %d in setup.\n", ethErr); |
y_notsu | 0:ae31fe6f181c | 129 | lcd.printf("Error %d in setup.\n", ethErr); |
y_notsu | 0:ae31fe6f181c | 130 | return -1; |
y_notsu | 0:ae31fe6f181c | 131 | } |
y_notsu | 0:ae31fe6f181c | 132 | } |
y_notsu | 0:ae31fe6f181c | 133 | lcd.locate(0,1); |
y_notsu | 0:ae31fe6f181c | 134 | printf("\r\nSetup OK\r\n"); |
y_notsu | 0:ae31fe6f181c | 135 | wait(1); |
y_notsu | 0:ae31fe6f181c | 136 | //test_httpserver(); |
y_notsu | 0:ae31fe6f181c | 137 | |
y_notsu | 0:ae31fe6f181c | 138 | if(TGSW) |
y_notsu | 0:ae31fe6f181c | 139 | { |
y_notsu | 0:ae31fe6f181c | 140 | //RTC setup |
y_notsu | 0:ae31fe6f181c | 141 | Host server(IpAddr(), 123, ntp_server); |
y_notsu | 0:ae31fe6f181c | 142 | ntp.setTime(server); |
y_notsu | 0:ae31fe6f181c | 143 | timest=1; |
y_notsu | 0:ae31fe6f181c | 144 | } |
y_notsu | 0:ae31fe6f181c | 145 | else |
y_notsu | 0:ae31fe6f181c | 146 | { |
y_notsu | 0:ae31fe6f181c | 147 | //Internal RTC mode |
y_notsu | 0:ae31fe6f181c | 148 | // setup time structure for 29 Oct 2010 00:00:00 |
y_notsu | 0:ae31fe6f181c | 149 | struct tm t; |
y_notsu | 0:ae31fe6f181c | 150 | t.tm_sec = 00; // 0-59 |
y_notsu | 0:ae31fe6f181c | 151 | t.tm_min = 00; // 0-59 |
y_notsu | 0:ae31fe6f181c | 152 | t.tm_hour = 00; // 0-23 |
y_notsu | 0:ae31fe6f181c | 153 | t.tm_mday = 1; // 1-31 |
y_notsu | 0:ae31fe6f181c | 154 | t.tm_mon = 1; // 0-11 |
y_notsu | 0:ae31fe6f181c | 155 | t.tm_year = 110; // year since 1900 |
y_notsu | 0:ae31fe6f181c | 156 | ctTime = mktime(&t); |
y_notsu | 0:ae31fe6f181c | 157 | set_time(ctTime); |
y_notsu | 0:ae31fe6f181c | 158 | strftime(buf,sizeof(buf), " (%Y/%m/%d %a %p %I:%M:%S)", localtime(&ctTime)); |
y_notsu | 0:ae31fe6f181c | 159 | lcd.cls(); |
y_notsu | 0:ae31fe6f181c | 160 | lcd.printf("%s",buf); |
y_notsu | 0:ae31fe6f181c | 161 | //lcd.locate(8,0); |
y_notsu | 0:ae31fe6f181c | 162 | //Adjustmnt Clock |
y_notsu | 0:ae31fe6f181c | 163 | //month |
y_notsu | 0:ae31fe6f181c | 164 | lcd.cls(); |
y_notsu | 0:ae31fe6f181c | 165 | lcd.printf("Month Setting"); |
y_notsu | 0:ae31fe6f181c | 166 | wait(1.0); |
y_notsu | 0:ae31fe6f181c | 167 | lcd.cls(); |
y_notsu | 0:ae31fe6f181c | 168 | lcd.printf("%s",buf); |
y_notsu | 0:ae31fe6f181c | 169 | while(SW2==0) |
y_notsu | 0:ae31fe6f181c | 170 | { |
y_notsu | 0:ae31fe6f181c | 171 | if(SW1) |
y_notsu | 0:ae31fe6f181c | 172 | { |
y_notsu | 0:ae31fe6f181c | 173 | t.tm_mon = t.tm_mon + 1; |
y_notsu | 0:ae31fe6f181c | 174 | ctTime = mktime(&t); |
y_notsu | 0:ae31fe6f181c | 175 | set_time(ctTime); |
y_notsu | 0:ae31fe6f181c | 176 | } |
y_notsu | 0:ae31fe6f181c | 177 | else if(SW3) |
y_notsu | 0:ae31fe6f181c | 178 | { |
y_notsu | 0:ae31fe6f181c | 179 | t.tm_mon = t.tm_mon - 1; |
y_notsu | 0:ae31fe6f181c | 180 | ctTime = mktime(&t); |
y_notsu | 0:ae31fe6f181c | 181 | set_time(ctTime); |
y_notsu | 0:ae31fe6f181c | 182 | } |
y_notsu | 0:ae31fe6f181c | 183 | strftime(buf,sizeof(buf), " (%Y/%m/%d %a %p %I:%M:%S)", localtime(&ctTime)); |
y_notsu | 0:ae31fe6f181c | 184 | lcd.cls(); |
y_notsu | 0:ae31fe6f181c | 185 | lcd.printf("%s",buf); |
y_notsu | 0:ae31fe6f181c | 186 | wait(0.5); |
y_notsu | 0:ae31fe6f181c | 187 | } |
y_notsu | 0:ae31fe6f181c | 188 | wait(1); |
y_notsu | 0:ae31fe6f181c | 189 | lcd.cls(); |
y_notsu | 0:ae31fe6f181c | 190 | lcd.printf("Day Setting"); |
y_notsu | 0:ae31fe6f181c | 191 | wait(1.0); |
y_notsu | 0:ae31fe6f181c | 192 | lcd.cls(); |
y_notsu | 0:ae31fe6f181c | 193 | lcd.printf("%s",buf); |
y_notsu | 0:ae31fe6f181c | 194 | // Day setting |
y_notsu | 0:ae31fe6f181c | 195 | //lcd.locate(11,0); |
y_notsu | 0:ae31fe6f181c | 196 | while(SW2==0) |
y_notsu | 0:ae31fe6f181c | 197 | { |
y_notsu | 0:ae31fe6f181c | 198 | if(SW1) |
y_notsu | 0:ae31fe6f181c | 199 | { |
y_notsu | 0:ae31fe6f181c | 200 | t.tm_mday = t.tm_mday + 1; |
y_notsu | 0:ae31fe6f181c | 201 | ctTime = mktime(&t); |
y_notsu | 0:ae31fe6f181c | 202 | set_time(ctTime); |
y_notsu | 0:ae31fe6f181c | 203 | } |
y_notsu | 0:ae31fe6f181c | 204 | else if(SW3) |
y_notsu | 0:ae31fe6f181c | 205 | { |
y_notsu | 0:ae31fe6f181c | 206 | t.tm_mday = t.tm_mday - 1; |
y_notsu | 0:ae31fe6f181c | 207 | ctTime = mktime(&t); |
y_notsu | 0:ae31fe6f181c | 208 | set_time(ctTime); |
y_notsu | 0:ae31fe6f181c | 209 | } |
y_notsu | 0:ae31fe6f181c | 210 | strftime(buf,sizeof(buf), " (%Y/%m/%d %a %p %I:%M:%S)", localtime(&ctTime)); |
y_notsu | 0:ae31fe6f181c | 211 | lcd.cls(); |
y_notsu | 0:ae31fe6f181c | 212 | lcd.printf("%s",buf); |
y_notsu | 0:ae31fe6f181c | 213 | wait(0.5); |
y_notsu | 0:ae31fe6f181c | 214 | } |
y_notsu | 0:ae31fe6f181c | 215 | wait(1.0); |
y_notsu | 0:ae31fe6f181c | 216 | lcd.cls(); |
y_notsu | 0:ae31fe6f181c | 217 | lcd.printf("Hour Setting"); |
y_notsu | 0:ae31fe6f181c | 218 | wait(1.0); |
y_notsu | 0:ae31fe6f181c | 219 | lcd.cls(); |
y_notsu | 0:ae31fe6f181c | 220 | lcd.printf("%s",buf); |
y_notsu | 0:ae31fe6f181c | 221 | // Hour setting |
y_notsu | 0:ae31fe6f181c | 222 | //lcd.locate(11,0); |
y_notsu | 0:ae31fe6f181c | 223 | while(SW2==0) |
y_notsu | 0:ae31fe6f181c | 224 | { |
y_notsu | 0:ae31fe6f181c | 225 | if(SW1) |
y_notsu | 0:ae31fe6f181c | 226 | { |
y_notsu | 0:ae31fe6f181c | 227 | t.tm_hour = t.tm_hour + 1; |
y_notsu | 0:ae31fe6f181c | 228 | ctTime = mktime(&t); |
y_notsu | 0:ae31fe6f181c | 229 | set_time(ctTime); |
y_notsu | 0:ae31fe6f181c | 230 | } |
y_notsu | 0:ae31fe6f181c | 231 | else if(SW3) |
y_notsu | 0:ae31fe6f181c | 232 | { |
y_notsu | 0:ae31fe6f181c | 233 | t.tm_hour = t.tm_hour - 1; |
y_notsu | 0:ae31fe6f181c | 234 | ctTime = mktime(&t); |
y_notsu | 0:ae31fe6f181c | 235 | set_time(ctTime); |
y_notsu | 0:ae31fe6f181c | 236 | } |
y_notsu | 0:ae31fe6f181c | 237 | strftime(buf,sizeof(buf), " (%Y/%m/%d %a %p %I:%M:%S)", localtime(&ctTime)); |
y_notsu | 0:ae31fe6f181c | 238 | lcd.cls(); |
y_notsu | 0:ae31fe6f181c | 239 | lcd.printf("%s",buf); |
y_notsu | 0:ae31fe6f181c | 240 | wait(0.5); |
y_notsu | 0:ae31fe6f181c | 241 | } |
y_notsu | 0:ae31fe6f181c | 242 | wait(1.0); |
y_notsu | 0:ae31fe6f181c | 243 | lcd.cls(); |
y_notsu | 0:ae31fe6f181c | 244 | lcd.printf("Min Setting"); |
y_notsu | 0:ae31fe6f181c | 245 | wait(1.0); |
y_notsu | 0:ae31fe6f181c | 246 | lcd.cls(); |
y_notsu | 0:ae31fe6f181c | 247 | lcd.printf("%s",buf); |
y_notsu | 0:ae31fe6f181c | 248 | // Min setting |
y_notsu | 0:ae31fe6f181c | 249 | //lcd.locate(11,0); |
y_notsu | 0:ae31fe6f181c | 250 | while(SW2==0) |
y_notsu | 0:ae31fe6f181c | 251 | { |
y_notsu | 0:ae31fe6f181c | 252 | if(SW1) |
y_notsu | 0:ae31fe6f181c | 253 | { |
y_notsu | 0:ae31fe6f181c | 254 | t.tm_min = t.tm_min + 1; |
y_notsu | 0:ae31fe6f181c | 255 | ctTime = mktime(&t); |
y_notsu | 0:ae31fe6f181c | 256 | set_time(ctTime); |
y_notsu | 0:ae31fe6f181c | 257 | } |
y_notsu | 0:ae31fe6f181c | 258 | else if(SW3) |
y_notsu | 0:ae31fe6f181c | 259 | { |
y_notsu | 0:ae31fe6f181c | 260 | t.tm_min = t.tm_min - 1; |
y_notsu | 0:ae31fe6f181c | 261 | ctTime = mktime(&t); |
y_notsu | 0:ae31fe6f181c | 262 | set_time(ctTime); |
y_notsu | 0:ae31fe6f181c | 263 | } |
y_notsu | 0:ae31fe6f181c | 264 | strftime(buf,sizeof(buf), " (%Y/%m/%d %a %p %I:%M:%S)", localtime(&ctTime)); |
y_notsu | 0:ae31fe6f181c | 265 | lcd.cls(); |
y_notsu | 0:ae31fe6f181c | 266 | lcd.printf("%s",buf); |
y_notsu | 0:ae31fe6f181c | 267 | wait(0.5); |
y_notsu | 0:ae31fe6f181c | 268 | } |
y_notsu | 0:ae31fe6f181c | 269 | wait(2.0); |
y_notsu | 0:ae31fe6f181c | 270 | strftime(buf,sizeof(buf), " (%Y/%m/%d %a %p %I:%M:%S)", localtime(&ctTime)); |
y_notsu | 0:ae31fe6f181c | 271 | lcd.cls(); |
y_notsu | 0:ae31fe6f181c | 272 | lcd.printf("%s",buf); |
y_notsu | 0:ae31fe6f181c | 273 | wait(1.0); |
y_notsu | 0:ae31fe6f181c | 274 | |
y_notsu | 0:ae31fe6f181c | 275 | } |
y_notsu | 0:ae31fe6f181c | 276 | lcd.cls(); |
y_notsu | 0:ae31fe6f181c | 277 | lcd.printf("Time Set End"); |
y_notsu | 0:ae31fe6f181c | 278 | wait(1); |
y_notsu | 0:ae31fe6f181c | 279 | |
y_notsu | 0:ae31fe6f181c | 280 | // rt.attach_us(&timecall,300.0); |
y_notsu | 0:ae31fe6f181c | 281 | |
y_notsu | 0:ae31fe6f181c | 282 | while(1) |
y_notsu | 0:ae31fe6f181c | 283 | { |
y_notsu | 0:ae31fe6f181c | 284 | lcd.cls(); |
y_notsu | 0:ae31fe6f181c | 285 | //lcd.printf("WAVE file select:"); |
y_notsu | 0:ae31fe6f181c | 286 | |
y_notsu | 0:ae31fe6f181c | 287 | if(TGSW==1)ctTime = time(NULL)+32400;//JST time |
y_notsu | 0:ae31fe6f181c | 288 | else ctTime = time(NULL); |
y_notsu | 0:ae31fe6f181c | 289 | strftime(buf,sizeof(buf), " (%Y/%m/%d %a %p %I:%M:%S)", localtime(&ctTime)); |
y_notsu | 0:ae31fe6f181c | 290 | lcd.printf("%s",buf); |
y_notsu | 0:ae31fe6f181c | 291 | |
y_notsu | 0:ae31fe6f181c | 292 | //wait(0.5); |
y_notsu | 0:ae31fe6f181c | 293 | |
y_notsu | 0:ae31fe6f181c | 294 | if(SW1) |
y_notsu | 0:ae31fe6f181c | 295 | { |
y_notsu | 0:ae31fe6f181c | 296 | if(buf[20]=='1') |
y_notsu | 0:ae31fe6f181c | 297 | { |
y_notsu | 0:ae31fe6f181c | 298 | if(buf[21]=='0') wavefilename1 = "/sd/10ji.wav"; |
y_notsu | 0:ae31fe6f181c | 299 | else if(buf[21]=='1') wavefilename1 = "/sd/11ji.wav"; |
y_notsu | 0:ae31fe6f181c | 300 | else if(buf[21]=='2') wavefilename1 = "/sd/12ji.wav"; |
y_notsu | 0:ae31fe6f181c | 301 | else wavefilename1 = "/sd/jikanga.wav"; |
y_notsu | 0:ae31fe6f181c | 302 | } |
y_notsu | 0:ae31fe6f181c | 303 | else |
y_notsu | 0:ae31fe6f181c | 304 | { |
y_notsu | 0:ae31fe6f181c | 305 | if(buf[20]=='0') |
y_notsu | 0:ae31fe6f181c | 306 | { |
y_notsu | 0:ae31fe6f181c | 307 | if(buf[21]=='1') wavefilename1 = "/sd/1ji.wav"; |
y_notsu | 0:ae31fe6f181c | 308 | if(buf[21]=='2') wavefilename1 = "/sd/2ji.wav"; |
y_notsu | 0:ae31fe6f181c | 309 | if(buf[21]=='3') wavefilename1 = "/sd/3ji.wav"; |
y_notsu | 0:ae31fe6f181c | 310 | if(buf[21]=='4') wavefilename1 = "/sd/4ji.wav"; |
y_notsu | 0:ae31fe6f181c | 311 | if(buf[21]=='5') wavefilename1 = "/sd/5ji.wav"; |
y_notsu | 0:ae31fe6f181c | 312 | if(buf[21]=='6') wavefilename1 = "/sd/6ji.wav"; |
y_notsu | 0:ae31fe6f181c | 313 | if(buf[21]=='7') wavefilename1 = "/sd/7ji.wav"; |
y_notsu | 0:ae31fe6f181c | 314 | if(buf[21]=='8') wavefilename1 = "/sd/8ji.wav"; |
y_notsu | 0:ae31fe6f181c | 315 | if(buf[21]=='9') wavefilename1 = "/sd/9ji.wav"; |
y_notsu | 0:ae31fe6f181c | 316 | } |
y_notsu | 0:ae31fe6f181c | 317 | else |
y_notsu | 0:ae31fe6f181c | 318 | { |
y_notsu | 0:ae31fe6f181c | 319 | wavefilename1 = "/sd/jikanga.wav"; |
y_notsu | 0:ae31fe6f181c | 320 | } |
y_notsu | 0:ae31fe6f181c | 321 | } |
y_notsu | 0:ae31fe6f181c | 322 | |
y_notsu | 0:ae31fe6f181c | 323 | if(buf[23]=='0') |
y_notsu | 0:ae31fe6f181c | 324 | { |
y_notsu | 0:ae31fe6f181c | 325 | wavefilename3 = "/sd/desu.wav"; |
y_notsu | 0:ae31fe6f181c | 326 | if(buf[24]=='0') wavefilename2 = "/sd/just.wav"; |
y_notsu | 0:ae31fe6f181c | 327 | else if(buf[24]=='1') wavefilename2 = "/sd/1min.wav"; |
y_notsu | 0:ae31fe6f181c | 328 | else if(buf[24]=='2') wavefilename2 = "/sd/2min.wav"; |
y_notsu | 0:ae31fe6f181c | 329 | else if(buf[24]=='3') wavefilename2 = "/sd/3min.wav"; |
y_notsu | 0:ae31fe6f181c | 330 | else if(buf[24]=='4') wavefilename2 = "/sd/4min.wav"; |
y_notsu | 0:ae31fe6f181c | 331 | else if(buf[24]=='5') wavefilename2 = "/sd/5min.wav"; |
y_notsu | 0:ae31fe6f181c | 332 | else if(buf[24]=='6') wavefilename2 = "/sd/6min.wav"; |
y_notsu | 0:ae31fe6f181c | 333 | else if(buf[24]=='7') wavefilename2 = "/sd/7min.wav"; |
y_notsu | 0:ae31fe6f181c | 334 | else if(buf[24]=='8') wavefilename2 = "/sd/8min.wav"; |
y_notsu | 0:ae31fe6f181c | 335 | else if(buf[24]=='9') wavefilename2 = "/sd/9min.wav"; |
y_notsu | 0:ae31fe6f181c | 336 | else wavefilename2 = "/sd/oksi.wav"; |
y_notsu | 0:ae31fe6f181c | 337 | } |
y_notsu | 0:ae31fe6f181c | 338 | else if(buf[23]=='1') |
y_notsu | 0:ae31fe6f181c | 339 | { |
y_notsu | 0:ae31fe6f181c | 340 | if(buf[24]=='0'){ |
y_notsu | 0:ae31fe6f181c | 341 | wavefilename2 = "/sd/10min.wav"; |
y_notsu | 0:ae31fe6f181c | 342 | wavefilename3 = "/sd/desu.wav"; |
y_notsu | 0:ae31fe6f181c | 343 | } |
y_notsu | 0:ae31fe6f181c | 344 | else{ |
y_notsu | 0:ae31fe6f181c | 345 | wavefilename2 = "/sd/10.wav"; |
y_notsu | 0:ae31fe6f181c | 346 | playflg2=1; |
y_notsu | 0:ae31fe6f181c | 347 | wavefilename4 = "/sd/desu.wav"; |
y_notsu | 0:ae31fe6f181c | 348 | } |
y_notsu | 0:ae31fe6f181c | 349 | } |
y_notsu | 0:ae31fe6f181c | 350 | else if(buf[23]=='2') |
y_notsu | 0:ae31fe6f181c | 351 | { |
y_notsu | 0:ae31fe6f181c | 352 | if(buf[24]=='0'){ |
y_notsu | 0:ae31fe6f181c | 353 | wavefilename2 = "/sd/20min.wav"; |
y_notsu | 0:ae31fe6f181c | 354 | wavefilename3 = "/sd/desu.wav"; |
y_notsu | 0:ae31fe6f181c | 355 | } |
y_notsu | 0:ae31fe6f181c | 356 | else{ |
y_notsu | 0:ae31fe6f181c | 357 | wavefilename2 = "/sd/20.wav"; |
y_notsu | 0:ae31fe6f181c | 358 | playflg2=1; |
y_notsu | 0:ae31fe6f181c | 359 | wavefilename4 = "/sd/desu.wav"; |
y_notsu | 0:ae31fe6f181c | 360 | } |
y_notsu | 0:ae31fe6f181c | 361 | } |
y_notsu | 0:ae31fe6f181c | 362 | else if(buf[23]=='3') |
y_notsu | 0:ae31fe6f181c | 363 | { |
y_notsu | 0:ae31fe6f181c | 364 | if(buf[24]=='0'){ |
y_notsu | 0:ae31fe6f181c | 365 | wavefilename2 = "/sd/30min.wav"; |
y_notsu | 0:ae31fe6f181c | 366 | wavefilename3 = "/sd/desu.wav"; |
y_notsu | 0:ae31fe6f181c | 367 | } |
y_notsu | 0:ae31fe6f181c | 368 | else{ |
y_notsu | 0:ae31fe6f181c | 369 | wavefilename2 = "/sd/30.wav"; |
y_notsu | 0:ae31fe6f181c | 370 | playflg2=1; |
y_notsu | 0:ae31fe6f181c | 371 | wavefilename4 = "/sd/desu.wav"; |
y_notsu | 0:ae31fe6f181c | 372 | } |
y_notsu | 0:ae31fe6f181c | 373 | } |
y_notsu | 0:ae31fe6f181c | 374 | else if(buf[23]=='4') |
y_notsu | 0:ae31fe6f181c | 375 | { |
y_notsu | 0:ae31fe6f181c | 376 | if(buf[24]=='0'){ |
y_notsu | 0:ae31fe6f181c | 377 | wavefilename2 = "/sd/40min.wav"; |
y_notsu | 0:ae31fe6f181c | 378 | wavefilename3 = "/sd/desu.wav"; |
y_notsu | 0:ae31fe6f181c | 379 | } |
y_notsu | 0:ae31fe6f181c | 380 | else{ |
y_notsu | 0:ae31fe6f181c | 381 | wavefilename2 = "/sd/40.wav"; |
y_notsu | 0:ae31fe6f181c | 382 | playflg2=1; |
y_notsu | 0:ae31fe6f181c | 383 | wavefilename4 = "/sd/desu.wav"; |
y_notsu | 0:ae31fe6f181c | 384 | } |
y_notsu | 0:ae31fe6f181c | 385 | } |
y_notsu | 0:ae31fe6f181c | 386 | else if(buf[23]=='5') |
y_notsu | 0:ae31fe6f181c | 387 | { |
y_notsu | 0:ae31fe6f181c | 388 | if(buf[24]=='0'){ |
y_notsu | 0:ae31fe6f181c | 389 | wavefilename2 = "/sd/50min.wav"; |
y_notsu | 0:ae31fe6f181c | 390 | wavefilename3 = "/sd/desu.wav"; |
y_notsu | 0:ae31fe6f181c | 391 | } |
y_notsu | 0:ae31fe6f181c | 392 | else{ |
y_notsu | 0:ae31fe6f181c | 393 | wavefilename2 = "/sd/50.wav"; |
y_notsu | 0:ae31fe6f181c | 394 | playflg2=1; |
y_notsu | 0:ae31fe6f181c | 395 | wavefilename4 = "/sd/desu.wav"; |
y_notsu | 0:ae31fe6f181c | 396 | } |
y_notsu | 0:ae31fe6f181c | 397 | } |
y_notsu | 0:ae31fe6f181c | 398 | else |
y_notsu | 0:ae31fe6f181c | 399 | { |
y_notsu | 0:ae31fe6f181c | 400 | wavefilename2 = "/sd/okasi.wav"; |
y_notsu | 0:ae31fe6f181c | 401 | wavefilename3 = "/sd/desu.wav"; |
y_notsu | 0:ae31fe6f181c | 402 | } |
y_notsu | 0:ae31fe6f181c | 403 | |
y_notsu | 0:ae31fe6f181c | 404 | if(playflg2==1) |
y_notsu | 0:ae31fe6f181c | 405 | { |
y_notsu | 0:ae31fe6f181c | 406 | if(buf[24]=='1') wavefilename3 = "/sd/1min.wav"; |
y_notsu | 0:ae31fe6f181c | 407 | else if(buf[24]=='2') wavefilename3 = "/sd/2min.wav"; |
y_notsu | 0:ae31fe6f181c | 408 | else if(buf[24]=='3') wavefilename3 = "/sd/3min.wav"; |
y_notsu | 0:ae31fe6f181c | 409 | else if(buf[24]=='4') wavefilename3 = "/sd/4min.wav"; |
y_notsu | 0:ae31fe6f181c | 410 | else if(buf[24]=='5') wavefilename3 = "/sd/5min.wav"; |
y_notsu | 0:ae31fe6f181c | 411 | else if(buf[24]=='6') wavefilename3 = "/sd/6min.wav"; |
y_notsu | 0:ae31fe6f181c | 412 | else if(buf[24]=='7') wavefilename3 = "/sd/7min.wav"; |
y_notsu | 0:ae31fe6f181c | 413 | else if(buf[24]=='8') wavefilename3 = "/sd/8min.wav"; |
y_notsu | 0:ae31fe6f181c | 414 | else if(buf[24]=='9') wavefilename3 = "/sd/9min.wav"; |
y_notsu | 0:ae31fe6f181c | 415 | } |
y_notsu | 0:ae31fe6f181c | 416 | |
y_notsu | 0:ae31fe6f181c | 417 | playflg=1; |
y_notsu | 0:ae31fe6f181c | 418 | } |
y_notsu | 0:ae31fe6f181c | 419 | |
y_notsu | 0:ae31fe6f181c | 420 | //if(SW1) |
y_notsu | 0:ae31fe6f181c | 421 | //{ |
y_notsu | 0:ae31fe6f181c | 422 | // wavefilename1 = "/sd/1ji.wav"; |
y_notsu | 0:ae31fe6f181c | 423 | // wavefilename2 = "/sd/5min.wav"; |
y_notsu | 0:ae31fe6f181c | 424 | // wavefilename3 = "/sd/desu.wav"; |
y_notsu | 0:ae31fe6f181c | 425 | // playflg = 1; |
y_notsu | 0:ae31fe6f181c | 426 | //} |
y_notsu | 0:ae31fe6f181c | 427 | //if(SW2) |
y_notsu | 0:ae31fe6f181c | 428 | //{ |
y_notsu | 0:ae31fe6f181c | 429 | // wavefilename1 = "/sd/11ji.wav" ; |
y_notsu | 0:ae31fe6f181c | 430 | // wavefilename2 = "/sd/30.wav"; |
y_notsu | 0:ae31fe6f181c | 431 | // wavefilename3 = "/sd/7min.wav"; |
y_notsu | 0:ae31fe6f181c | 432 | // wavefilename4 = "/sd/desu.wav"; |
y_notsu | 0:ae31fe6f181c | 433 | // playflg =1; |
y_notsu | 0:ae31fe6f181c | 434 | //playflg2 = 1; |
y_notsu | 0:ae31fe6f181c | 435 | //} |
y_notsu | 0:ae31fe6f181c | 436 | |
y_notsu | 0:ae31fe6f181c | 437 | if(playflg==1) |
y_notsu | 0:ae31fe6f181c | 438 | { |
y_notsu | 0:ae31fe6f181c | 439 | lcd.cls(); |
y_notsu | 0:ae31fe6f181c | 440 | lcd.printf("%s", buf); |
y_notsu | 0:ae31fe6f181c | 441 | //lcd.printf("Wave file playing"); |
y_notsu | 0:ae31fe6f181c | 442 | //lcd.locate(0,1); |
y_notsu | 0:ae31fe6f181c | 443 | //lcd.printf(wavefilename1); |
y_notsu | 0:ae31fe6f181c | 444 | myWavPlayer.play_wave(wavefilename1); // 8 bit sample size |
y_notsu | 0:ae31fe6f181c | 445 | myWavPlayer.play_wave(wavefilename2); |
y_notsu | 0:ae31fe6f181c | 446 | myWavPlayer.play_wave(wavefilename3); |
y_notsu | 0:ae31fe6f181c | 447 | if(playflg2==1) |
y_notsu | 0:ae31fe6f181c | 448 | { |
y_notsu | 0:ae31fe6f181c | 449 | myWavPlayer.play_wave(wavefilename4); |
y_notsu | 0:ae31fe6f181c | 450 | } |
y_notsu | 0:ae31fe6f181c | 451 | led1 = 0; |
y_notsu | 0:ae31fe6f181c | 452 | led4 = 1; |
y_notsu | 0:ae31fe6f181c | 453 | } |
y_notsu | 0:ae31fe6f181c | 454 | if(SW2) |
y_notsu | 0:ae31fe6f181c | 455 | { |
y_notsu | 0:ae31fe6f181c | 456 | myWavPlayer.play_wave("/sd/doubler.wav"); |
y_notsu | 0:ae31fe6f181c | 457 | |
y_notsu | 0:ae31fe6f181c | 458 | } |
y_notsu | 0:ae31fe6f181c | 459 | |
y_notsu | 0:ae31fe6f181c | 460 | wait(0.2); |
y_notsu | 0:ae31fe6f181c | 461 | led4 = 0; |
y_notsu | 0:ae31fe6f181c | 462 | led1 = 1; |
y_notsu | 0:ae31fe6f181c | 463 | playflg =0; |
y_notsu | 0:ae31fe6f181c | 464 | playflg2=0; |
y_notsu | 0:ae31fe6f181c | 465 | } |
y_notsu | 0:ae31fe6f181c | 466 | } |
y_notsu | 0:ae31fe6f181c | 467 | |
y_notsu | 0:ae31fe6f181c | 468 | |
y_notsu | 0:ae31fe6f181c | 469 | void test_file_write( char *title, char *path ) { |
y_notsu | 0:ae31fe6f181c | 470 | // SD card test |
y_notsu | 0:ae31fe6f181c | 471 | lcd.locate( 0, position() ); |
y_notsu | 0:ae31fe6f181c | 472 | lcd.printf( "%s: ", title ); |
y_notsu | 0:ae31fe6f181c | 473 | |
y_notsu | 0:ae31fe6f181c | 474 | FILE *fp = fopen( path, "w" ); |
y_notsu | 0:ae31fe6f181c | 475 | if ( fp == NULL ) { |
y_notsu | 0:ae31fe6f181c | 476 | lcd.printf( "error" ); |
y_notsu | 0:ae31fe6f181c | 477 | error( "Could not open file for write\n" ); |
y_notsu | 0:ae31fe6f181c | 478 | } |
y_notsu | 0:ae31fe6f181c | 479 | fprintf( fp, "The mbed writing a file through the star board orange (%s)!", title ); |
y_notsu | 0:ae31fe6f181c | 480 | fclose( fp ); |
y_notsu | 0:ae31fe6f181c | 481 | |
y_notsu | 0:ae31fe6f181c | 482 | lcd.printf( "OK." ); |
y_notsu | 0:ae31fe6f181c | 483 | } |
y_notsu | 0:ae31fe6f181c | 484 | |
y_notsu | 0:ae31fe6f181c | 485 | |
y_notsu | 0:ae31fe6f181c | 486 | /* |
y_notsu | 0:ae31fe6f181c | 487 | void test_httpserver( void ) { |
y_notsu | 0:ae31fe6f181c | 488 | DigitalOut led1( LED1 ); |
y_notsu | 0:ae31fe6f181c | 489 | lcd.locate( 0, position() ); |
y_notsu | 0:ae31fe6f181c | 490 | lcd.printf( "HTTP srv: " ); |
y_notsu | 0:ae31fe6f181c | 491 | |
y_notsu | 0:ae31fe6f181c | 492 | Base::add_rpc_class<DigitalOut>(); |
y_notsu | 0:ae31fe6f181c | 493 | |
y_notsu | 0:ae31fe6f181c | 494 | printf("Setting up...n"); |
y_notsu | 0:ae31fe6f181c | 495 | EthernetErr ethErr = eth.setup(); |
y_notsu | 0:ae31fe6f181c | 496 | if ( ethErr ) { |
y_notsu | 0:ae31fe6f181c | 497 | lcd.printf( "error" ); |
y_notsu | 0:ae31fe6f181c | 498 | error( "error @ eth.setup()\n" ); |
y_notsu | 0:ae31fe6f181c | 499 | } |
y_notsu | 0:ae31fe6f181c | 500 | lcd.printf("OK "); |
y_notsu | 0:ae31fe6f181c | 501 | |
y_notsu | 0:ae31fe6f181c | 502 | FSHandler::mount("/local", "/"); //Mount /webfs path on web root path |
y_notsu | 0:ae31fe6f181c | 503 | FSHandler::mount("/sd", "/sd"); //Mount /webfs path on web sd path |
y_notsu | 0:ae31fe6f181c | 504 | //FSHandler::mount("/usb", "/usb"); //Mount /webfs path on web usb path |
y_notsu | 0:ae31fe6f181c | 505 | |
y_notsu | 0:ae31fe6f181c | 506 | svr.addHandler<FSHandler>("/"); //Default handler |
y_notsu | 0:ae31fe6f181c | 507 | svr.addHandler<FSHandler>("/sd"); |
y_notsu | 0:ae31fe6f181c | 508 | //svr.addHandler<FSHandler>("/usb"); |
y_notsu | 0:ae31fe6f181c | 509 | //Example : Access to mbed.htm : http://a.b.c.d/mbed.htm or http://a.b.c.d/files/mbed.htm |
y_notsu | 0:ae31fe6f181c | 510 | |
y_notsu | 0:ae31fe6f181c | 511 | svr.bind(80); |
y_notsu | 0:ae31fe6f181c | 512 | |
y_notsu | 0:ae31fe6f181c | 513 | lcd.locate( 5, position() -1 ); |
y_notsu | 0:ae31fe6f181c | 514 | lcd.printf("Listening"); |
y_notsu | 0:ae31fe6f181c | 515 | |
y_notsu | 0:ae31fe6f181c | 516 | Timer tm; |
y_notsu | 0:ae31fe6f181c | 517 | tm.start(); |
y_notsu | 0:ae31fe6f181c | 518 | //Listen indefinitely |
y_notsu | 0:ae31fe6f181c | 519 | while (true) { |
y_notsu | 0:ae31fe6f181c | 520 | Net::poll(); |
y_notsu | 0:ae31fe6f181c | 521 | if (tm.read()>.5) { |
y_notsu | 0:ae31fe6f181c | 522 | led1=!led1; //Show that we are alive |
y_notsu | 0:ae31fe6f181c | 523 | tm.start(); |
y_notsu | 0:ae31fe6f181c | 524 | } |
y_notsu | 0:ae31fe6f181c | 525 | } |
y_notsu | 0:ae31fe6f181c | 526 | } |
y_notsu | 0:ae31fe6f181c | 527 | */ |
y_notsu | 0:ae31fe6f181c | 528 | |
y_notsu | 0:ae31fe6f181c | 529 | int position( void ) { |
y_notsu | 0:ae31fe6f181c | 530 | static int p = 0; |
y_notsu | 0:ae31fe6f181c | 531 | |
y_notsu | 0:ae31fe6f181c | 532 | #ifdef USE_TextLCD_20x4 |
y_notsu | 0:ae31fe6f181c | 533 | return( ++p % 4 ); |
y_notsu | 0:ae31fe6f181c | 534 | #else |
y_notsu | 0:ae31fe6f181c | 535 | return( ++p % 2 ); |
y_notsu | 0:ae31fe6f181c | 536 | #endif |
y_notsu | 0:ae31fe6f181c | 537 | } |
y_notsu | 0:ae31fe6f181c | 538 |