lcd handler for weather predictor

Dependencies:   C12832_lcd LCD_fonts

Revision:
2:459f757bd2f4
Parent:
1:4399eaceb999
Child:
3:3569342a4ab0
--- a/GraphicHandler.cpp	Wed Jan 28 15:52:09 2015 +0000
+++ b/GraphicHandler.cpp	Sun Feb 15 09:27:58 2015 +0000
@@ -12,6 +12,7 @@
     now_data        = new float[data_dimension];
     predict_data    = new float[data_dimension * predict_length];
     predict_weather = new int[predict_length];
+    predict_probability = new float[predict_length];
 
     // ティッカー初期化
     time_ticker.attach(this, &GraphicHandler::update_time, 60.0);
@@ -37,16 +38,18 @@
 {
     delete [] now_data;
     delete [] predict_data;
+    delete [] predict_probability;
     delete [] predict_weather;
     delete joy_left;
     delete joy_right;
 }
 
 // 予測データと天気のセット
-void GraphicHandler::set_predict_data(float* predict_data, int* predict_weather)
+void GraphicHandler::set_predict_data(float* predict_data, int* predict_weather, float* predict_probability)
 {
     memcpy(this->predict_data, predict_data, sizeof(float) * data_dimension * predict_length);
     memcpy(this->predict_weather, predict_weather, sizeof(int) * predict_length);
+    memcpy(this->predict_probability, predict_probability, sizeof(float) * predict_length);
 }
 
 // 観測データのセット
@@ -124,7 +127,7 @@
         draw_data_at(predict_data[base_index + 1], "%%", (unsigned char *)Small_7, 37, 12);
         draw_data_at(predict_data[base_index + 2], "hPa", (unsigned char *)Small_7, 37, 20);
         draw_weather_bitmap_at(predict_weather[current_display_no-1], current_image_no, 87, 2);
-        // draw_percentage_at(0.5, (unsigned char *)Small_6, 112, 25);
+        draw_percentage_at(predict_probability[current_display_no-1], (unsigned char *)Small_6, 112, 25);
         // 予測時刻
         draw_time_at((unsigned char *)Arial_9, seq_time_interval * current_display_no, 5, 10);
     }
@@ -197,49 +200,50 @@
 }
 
 // 天候の描画ルーチン
-    void GraphicHandler::draw_weather_bitmap_at(int weather_id,
-            int image_no,
-            int x, int y) {
-        Bitmap buffer;
+void GraphicHandler::draw_weather_bitmap_at(int weather_id,
+        int image_no,
+        int x, int y)
+{
+    Bitmap buffer;
 
-        // lcd.setmode(XOR);
-        // ビットマップ選択
-        switch(weather_id) {
-            case SHINY:
-                // 番号についても場合分けだよ!
-                if (image_no == 0) {
-                    buffer = bitm_shiny1;
-                } else if (image_no == 1) {
-                    buffer = bitm_shiny2;
-                }
-                break;
-            case CLOUDY:
-                if (image_no == 0) {
-                    buffer = bitm_cloudy1;
-                } else if (image_no == 1) {
-                    buffer = bitm_cloudy2;
-                }
-                break;
-            case RAINY:
-                if (image_no == 0) {
-                    buffer = bitm_rainy1;
-                } else if (image_no == 1) {
-                    buffer = bitm_rainy2;
-                }
-                break;
-            case SNOWY:
-                if (image_no == 0) {
-                    buffer = bitm_snowy1;
-                } else if (image_no == 1) {
-                    buffer = bitm_snowy2;
-                }
-                break;
-            default:
-                fprintf(stderr, "ERROR : weather drawing \r\n");
-                break;
-        }
-        // 描画
-        lcd.print_bm(buffer, x, y);
-        lcd.copy_to_lcd();
-        return;
+    // lcd.setmode(XOR);
+    // ビットマップ選択
+    switch(weather_id) {
+        case SHINY:
+            // 番号についても場合分けだよ!
+            if (image_no == 0) {
+                buffer = bitm_shiny1;
+            } else if (image_no == 1) {
+                buffer = bitm_shiny2;
+            }
+            break;
+        case CLOUDY:
+            if (image_no == 0) {
+                buffer = bitm_cloudy1;
+            } else if (image_no == 1) {
+                buffer = bitm_cloudy2;
+            }
+            break;
+        case RAINY:
+            if (image_no == 0) {
+                buffer = bitm_rainy1;
+            } else if (image_no == 1) {
+                buffer = bitm_rainy2;
+            }
+            break;
+        case SNOWY:
+            if (image_no == 0) {
+                buffer = bitm_snowy1;
+            } else if (image_no == 1) {
+                buffer = bitm_snowy2;
+            }
+            break;
+        default:
+            fprintf(stderr, "ERROR : weather drawing \r\n");
+            break;
     }
+    // 描画
+    lcd.print_bm(buffer, x, y);
+    lcd.copy_to_lcd();
+    return;
+}