diff --git a/c/src/p2fa.c b/c/src/p2fa.c index 9588058..a5e4823 100644 --- a/c/src/p2fa.c +++ b/c/src/p2fa.c @@ -29,23 +29,15 @@ void Handler(int sigNum) { } int draw() { - Debug("EPD_2in13_V4_test Demo\r\n"); if(DEV_Module_Init()!=0){ return -1; } - Debug("e-Paper Init and Clear...\r\n"); EPD_2in13_V4_Init(); + EPD_2in13_V4_Clear(); -// struct timespec start={0,0}, finish={0,0}; -// clock_gettime(CLOCK_REALTIME,&start); -// EPD_2in13_V4_Clear(); -// clock_gettime(CLOCK_REALTIME,&finish); -// Debug("%ld S\r\n",finish.tv_sec-start.tv_sec); - - //Create a new image cache UBYTE *BlackImage; - UWORD Imagesize = ((EPD_2in13_V4_WIDTH % 8 == 0)? (EPD_2in13_V4_WIDTH / 8 ): (EPD_2in13_V4_WIDTH / 8 + 1)) * EPD_2in13_V4_HEIGHT; - if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) { + UWORD ImageSize = ((EPD_2in13_V4_WIDTH % 8 == 0)? (EPD_2in13_V4_WIDTH / 8 ): (EPD_2in13_V4_WIDTH / 8 + 1)) * EPD_2in13_V4_HEIGHT; + if((BlackImage = (UBYTE *)malloc(ImageSize)) == NULL) { Debug("Failed to apply for black memory...\r\n"); return -1; } @@ -147,11 +139,10 @@ int drawn() { return -1; } Paint_NewImage(BlackImage, EPD_2in13_V4_WIDTH, EPD_2in13_V4_HEIGHT, 90, WHITE); + EPD_2in13_V4_Init(); + Paint_SelectImage(BlackImage); Paint_Clear(WHITE); - EPD_2in13_V4_Init(); - - Paint_SelectImage(BlackImage); Paint_DrawString(10, 40, "Hello, World!", &Font16, WHITE, BLACK); const char *confName = "default"; @@ -169,20 +160,40 @@ int drawn() { clock_t startTime; clock_t endTime; double elapsedTime; - for (int j = 0; j < 3; ++j) { - for (int i = getTimeRemainingMS(30); i > 500; i = getTimeRemainingMS(30)) { - startTime = clock(); - Debug("Time Left: %dms\n", i); - int progWidth = (int)(((double)i / (double)(30 * 1000)) * 240); - Debug("Progress bar width: %d\n", progWidth); - Paint_DrawRectangle(10, 112, 240 - progWidth, 102, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL); - Paint_DrawRectangle(10, 102, 240 - progWidth, 92, WHITE, DOT_PIXEL_1X1, DRAW_FILL_FULL); - EPD_2in13_V4_Display(BlackImage); - endTime = clock(); - elapsedTime = (double)(endTime - startTime) / CLOCKS_PER_SEC; - if (elapsedTime < 200) { - DEV_Delay_ms(200 - (elapsedTime * 1000)); - } +// for (int j = 0; j < 3; ++j) { +// for (int i = getTimeRemainingMS(30); i > 500; i = getTimeRemainingMS(30)) { +// startTime = clock(); +// Debug("Time Left: %dms\n", i); +// int progWidth = (int)(((double)i / (double)(30 * 1000)) * 240); +// Debug("Progress bar width: %d\n", progWidth); +// Paint_DrawRectangle(10, 112, 240 - progWidth, 102, BLACK, DOT_PIXEL_1X1, DRAW_FILL_FULL); +// Paint_DrawRectangle(10, 102, 240 - progWidth, 92, WHITE, DOT_PIXEL_1X1, DRAW_FILL_FULL); +// EPD_2in13_V4_Display_Partial(BlackImage); +// endTime = clock(); +// elapsedTime = (double)(endTime - startTime) / CLOCKS_PER_SEC; +// if (elapsedTime < 200) { +// DEV_Delay_ms(200 - (elapsedTime * 1000)); +// } +// } +// } + + int progBarCurrentIndex = 11; + int progBarEndIndex; + for (int i = getTimeRemainingMS(30); i > 750; i = getTimeRemainingMS(30)) { + startTime = clock(); + + Debug("Time Left: %d\n", i); + double percentLeft = ((double)i / (double)(30 * 1000)); + progBarEndIndex = (int)(228 * percentLeft); + while (progBarCurrentIndex < progBarEndIndex) { + Paint_DrawLine(progBarCurrentIndex, 111, progBarCurrentIndex, 93, WHITE, DOT_PIXEL_1X1, LINE_STYLE_SOLID); + ++progBarCurrentIndex; + } + EPD_2in13_V4_Display_Partial(BlackImage); + endTime = clock(); + elapsedTime = (double)(endTime - startTime) / CLOCKS_PER_SEC; + if (elapsedTime < 750) { + DEV_Delay_ms(750 - (elapsedTime * 1000)); } }