http://http://diytec.web.fc2.com/mark2r2/

Dependencies:   EthernetNetIf NTPClient_NetServices mbed ConfigFile

Committer:
mark2r2
Date:
Tue Sep 20 12:46:26 2011 +0000
Revision:
0:08a4d61cd84c
V1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mark2r2 0:08a4d61cd84c 1 /*************************************************************
mark2r2 0:08a4d61cd84c 2
mark2r2 0:08a4d61cd84c 3 display.c
mark2r2 0:08a4d61cd84c 4
mark2r2 0:08a4d61cd84c 5 *************************************************************/
mark2r2 0:08a4d61cd84c 6 #include "mbed.h"
mark2r2 0:08a4d61cd84c 7 #include "TextLCD.h"
mark2r2 0:08a4d61cd84c 8 #include "GPS.h"
mark2r2 0:08a4d61cd84c 9 #include "NTPClient.h"
mark2r2 0:08a4d61cd84c 10
mark2r2 0:08a4d61cd84c 11 extern void calculate_sv();
mark2r2 0:08a4d61cd84c 12 extern float cpm;
mark2r2 0:08a4d61cd84c 13 extern float uSv;
mark2r2 0:08a4d61cd84c 14 extern int LCD_writing;
mark2r2 0:08a4d61cd84c 15 extern GPS* gps;
mark2r2 0:08a4d61cd84c 16 extern TextLCD lcd;
mark2r2 0:08a4d61cd84c 17 extern NTPResult ntpRet;
mark2r2 0:08a4d61cd84c 18 extern time_t tz_offset;
mark2r2 0:08a4d61cd84c 19
mark2r2 0:08a4d61cd84c 20 void debug_print()
mark2r2 0:08a4d61cd84c 21 {
mark2r2 0:08a4d61cd84c 22
mark2r2 0:08a4d61cd84c 23 calculate_sv();
mark2r2 0:08a4d61cd84c 24 #ifdef DEBUG
mark2r2 0:08a4d61cd84c 25 printf("cpm=%3.2f, %3.2fuSv/h\r\n",cpm,uSv);
mark2r2 0:08a4d61cd84c 26 for(int i=0;i<first_touch_index;i++){
mark2r2 0:08a4d61cd84c 27 printf("[%d]=%f\r\n",i,cpm_array[i]);
mark2r2 0:08a4d61cd84c 28 }
mark2r2 0:08a4d61cd84c 29 printf("first_touch_index=%d\r\n",first_touch_index);
mark2r2 0:08a4d61cd84c 30 printf("cpm_index=%d\r\n",cpm_index);
mark2r2 0:08a4d61cd84c 31 #endif
mark2r2 0:08a4d61cd84c 32 }
mark2r2 0:08a4d61cd84c 33
mark2r2 0:08a4d61cd84c 34 /**************************************
mark2r2 0:08a4d61cd84c 35 * calendar hyoji
mark2r2 0:08a4d61cd84c 36 ***************************************/
mark2r2 0:08a4d61cd84c 37 void calendarHyoji(char *msg){
mark2r2 0:08a4d61cd84c 38 time_t ctTime;
mark2r2 0:08a4d61cd84c 39 struct tm *jst_time;
mark2r2 0:08a4d61cd84c 40 char tmp[100] = "\0";
mark2r2 0:08a4d61cd84c 41
mark2r2 0:08a4d61cd84c 42 ctTime = time(NULL);
mark2r2 0:08a4d61cd84c 43 ctTime += tz_offset;
mark2r2 0:08a4d61cd84c 44 jst_time = localtime(&ctTime);
mark2r2 0:08a4d61cd84c 45
mark2r2 0:08a4d61cd84c 46 sprintf(tmp,"%4d/%02d/%02d %02d:%02d",
mark2r2 0:08a4d61cd84c 47 jst_time->tm_year+1900,
mark2r2 0:08a4d61cd84c 48 (jst_time->tm_mon + 1),
mark2r2 0:08a4d61cd84c 49 jst_time->tm_mday,
mark2r2 0:08a4d61cd84c 50 jst_time->tm_hour,
mark2r2 0:08a4d61cd84c 51 jst_time->tm_min);
mark2r2 0:08a4d61cd84c 52 strcat(msg, tmp);
mark2r2 0:08a4d61cd84c 53 }
mark2r2 0:08a4d61cd84c 54 /**************************************
mark2r2 0:08a4d61cd84c 55 * fullcalendar hyoji
mark2r2 0:08a4d61cd84c 56 ***************************************/
mark2r2 0:08a4d61cd84c 57 void fullcalendarHyoji(char *msg){
mark2r2 0:08a4d61cd84c 58 time_t ctTime;
mark2r2 0:08a4d61cd84c 59 struct tm *jst_time;
mark2r2 0:08a4d61cd84c 60 char tmp[100];
mark2r2 0:08a4d61cd84c 61 tmp[0] = '\0';
mark2r2 0:08a4d61cd84c 62
mark2r2 0:08a4d61cd84c 63 ctTime = time(NULL);
mark2r2 0:08a4d61cd84c 64 ctTime += tz_offset;
mark2r2 0:08a4d61cd84c 65 jst_time = localtime(&ctTime);
mark2r2 0:08a4d61cd84c 66
mark2r2 0:08a4d61cd84c 67 sprintf(tmp,"%4d/%02d/%02d,%02d:%02d:%02d,",jst_time->tm_year+1900,(jst_time->tm_mon + 1),jst_time->tm_mday, jst_time->tm_hour, jst_time->tm_min, jst_time->tm_sec);
mark2r2 0:08a4d61cd84c 68 strcat(msg, tmp);
mark2r2 0:08a4d61cd84c 69 }
mark2r2 0:08a4d61cd84c 70
mark2r2 0:08a4d61cd84c 71 void LCD_out_sub(){
mark2r2 0:08a4d61cd84c 72 calculate_sv();
mark2r2 0:08a4d61cd84c 73 lcd.printf("\n%3dcpm/",((int)cpm < 1000 ? (int)cpm : 999));
mark2r2 0:08a4d61cd84c 74 if (uSv < 10.0) {
mark2r2 0:08a4d61cd84c 75 lcd.printf("%.3fuSv",uSv);
mark2r2 0:08a4d61cd84c 76 } else if (uSv < 100.0) {
mark2r2 0:08a4d61cd84c 77 lcd.printf("%.2fuSv",uSv);
mark2r2 0:08a4d61cd84c 78 } else {
mark2r2 0:08a4d61cd84c 79 lcd.printf("%.2fuSv",99.99);
mark2r2 0:08a4d61cd84c 80 }
mark2r2 0:08a4d61cd84c 81 }
mark2r2 0:08a4d61cd84c 82
mark2r2 0:08a4d61cd84c 83
mark2r2 0:08a4d61cd84c 84 /**************************************
mark2r2 0:08a4d61cd84c 85 * LCD output kiokuchi wo LCD ni hyoji
mark2r2 0:08a4d61cd84c 86 ***************************************/
mark2r2 0:08a4d61cd84c 87 void LCD_output(){
mark2r2 0:08a4d61cd84c 88 if(LCD_writing){
mark2r2 0:08a4d61cd84c 89 return;
mark2r2 0:08a4d61cd84c 90 }
mark2r2 0:08a4d61cd84c 91 LCD_writing=1;
mark2r2 0:08a4d61cd84c 92 LCD_out_sub();
mark2r2 0:08a4d61cd84c 93 LCD_writing=0;
mark2r2 0:08a4d61cd84c 94 }
mark2r2 0:08a4d61cd84c 95
mark2r2 0:08a4d61cd84c 96
mark2r2 0:08a4d61cd84c 97 void LCD_time_and_output(){
mark2r2 0:08a4d61cd84c 98 char msg[256];
mark2r2 0:08a4d61cd84c 99 msg[0]='\0';
mark2r2 0:08a4d61cd84c 100
mark2r2 0:08a4d61cd84c 101 if(LCD_writing){
mark2r2 0:08a4d61cd84c 102 return;
mark2r2 0:08a4d61cd84c 103 }
mark2r2 0:08a4d61cd84c 104 LCD_writing=1;
mark2r2 0:08a4d61cd84c 105 lcd.cls();
mark2r2 0:08a4d61cd84c 106 lcd.locate(0,0);
mark2r2 0:08a4d61cd84c 107
mark2r2 0:08a4d61cd84c 108 if ( ntpRet == NTP_OK) {
mark2r2 0:08a4d61cd84c 109 calendarHyoji(msg);
mark2r2 0:08a4d61cd84c 110 }
mark2r2 0:08a4d61cd84c 111 lcd.printf("%s",msg);
mark2r2 0:08a4d61cd84c 112 lcd.locate(0,0);
mark2r2 0:08a4d61cd84c 113 LCD_out_sub();
mark2r2 0:08a4d61cd84c 114 LCD_writing=0;
mark2r2 0:08a4d61cd84c 115 }
mark2r2 0:08a4d61cd84c 116
mark2r2 0:08a4d61cd84c 117 void LCD_cpm_output() {
mark2r2 0:08a4d61cd84c 118 if(LCD_writing){
mark2r2 0:08a4d61cd84c 119 return;
mark2r2 0:08a4d61cd84c 120 }
mark2r2 0:08a4d61cd84c 121 LCD_writing=1;
mark2r2 0:08a4d61cd84c 122 lcd.cls();
mark2r2 0:08a4d61cd84c 123 lcd.locate(0,0);
mark2r2 0:08a4d61cd84c 124 calculate_sv();
mark2r2 0:08a4d61cd84c 125 lcd.printf("GM check mode\n%.3fcpm",cpm);
mark2r2 0:08a4d61cd84c 126 LCD_writing=0;
mark2r2 0:08a4d61cd84c 127 }
mark2r2 0:08a4d61cd84c 128
mark2r2 0:08a4d61cd84c 129 void printable_msg(char* msg){
mark2r2 0:08a4d61cd84c 130 char tmp[256];
mark2r2 0:08a4d61cd84c 131 tmp[0]= '\0';
mark2r2 0:08a4d61cd84c 132
mark2r2 0:08a4d61cd84c 133 if(gps->longitude!=0 && gps->latitude!=0)
mark2r2 0:08a4d61cd84c 134 sprintf(msg,"%f,%f:",gps->longitude,gps->latitude);
mark2r2 0:08a4d61cd84c 135
mark2r2 0:08a4d61cd84c 136 calculate_sv();
mark2r2 0:08a4d61cd84c 137
mark2r2 0:08a4d61cd84c 138 fullcalendarHyoji(tmp);
mark2r2 0:08a4d61cd84c 139 strcat(msg,tmp);
mark2r2 0:08a4d61cd84c 140
mark2r2 0:08a4d61cd84c 141 strcat(msg," ");
mark2r2 0:08a4d61cd84c 142 sprintf(tmp,"%d",(int)cpm);
mark2r2 0:08a4d61cd84c 143 strcat(msg,tmp);
mark2r2 0:08a4d61cd84c 144 strcat(msg,"cpm,");
mark2r2 0:08a4d61cd84c 145 sprintf(tmp,"%.3f",uSv);
mark2r2 0:08a4d61cd84c 146 strcat(msg,tmp);
mark2r2 0:08a4d61cd84c 147 strcat(msg,"uSv\n");
mark2r2 0:08a4d61cd84c 148
mark2r2 0:08a4d61cd84c 149 }
mark2r2 0:08a4d61cd84c 150