lcd handler for weather predictor
Dependencies: C12832_lcd LCD_fonts
Diff: GraphicHandler.cpp
- 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; +}