modify parallel epd run file
This commit is contained in:
		
							
								
								
									
										177
									
								
								inkycal/display/drivers/parallel_drivers/examples/main.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										177
									
								
								inkycal/display/drivers/parallel_drivers/examples/main.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,177 @@ | ||||
| #include "../lib/Config/DEV_Config.h" | ||||
| #include "example.h" | ||||
| #include "../lib/GUI/GUI_BMPfile.h" | ||||
|  | ||||
| #include <math.h> | ||||
|  | ||||
| #include <stdlib.h>     //exit() | ||||
| #include <signal.h>     //signal() | ||||
|  | ||||
|  | ||||
| #define USE_Normal_Demo false | ||||
| #define SHOW_BMP true | ||||
|  | ||||
| UWORD VCOM = 2510; | ||||
|  | ||||
| IT8951_Dev_Info Dev_Info; | ||||
| UWORD Panel_Width; | ||||
| UWORD Panel_Height; | ||||
| UDOUBLE Init_Target_Memory_Addr; | ||||
| int epd_mode = 0;	//0: no rotate, no mirror | ||||
| 					//1: no rotate, horizontal mirror, for 10.3inch | ||||
| 					//2: no totate, horizontal mirror, for 5.17inch | ||||
| 					//3: no rotate, no mirror, isColor, for 6inch color | ||||
| 					 | ||||
| void  Handler(int signo){ | ||||
|     Debug("\r\nHandler:exit\r\n"); | ||||
|     if(Refresh_Frame_Buf != NULL){ | ||||
|         free(Refresh_Frame_Buf); | ||||
|         Debug("free Refresh_Frame_Buf\r\n"); | ||||
|         Refresh_Frame_Buf = NULL; | ||||
|     } | ||||
|     if(Panel_Frame_Buf != NULL){ | ||||
|         free(Panel_Frame_Buf); | ||||
|         Debug("free Panel_Frame_Buf\r\n"); | ||||
|         Panel_Frame_Buf = NULL; | ||||
|     } | ||||
|     if(Panel_Area_Frame_Buf != NULL){ | ||||
|         free(Panel_Area_Frame_Buf); | ||||
|         Debug("free Panel_Area_Frame_Buf\r\n"); | ||||
|         Panel_Area_Frame_Buf = NULL; | ||||
|     } | ||||
|     if(bmp_src_buf != NULL){ | ||||
|         free(bmp_src_buf); | ||||
|         Debug("free bmp_src_buf\r\n"); | ||||
|         bmp_src_buf = NULL; | ||||
|     } | ||||
|     if(bmp_dst_buf != NULL){ | ||||
|         free(bmp_dst_buf); | ||||
|         Debug("free bmp_dst_buf\r\n"); | ||||
|         bmp_dst_buf = NULL; | ||||
|     } | ||||
|     Debug("Going to sleep\r\n"); | ||||
|     EPD_IT8951_Sleep(); | ||||
|     DEV_Module_Exit(); | ||||
|     exit(0); | ||||
| } | ||||
|  | ||||
|  | ||||
| int main(int argc, char *argv[]) | ||||
| { | ||||
|     //Exception handling:ctrl + c | ||||
|     signal(SIGINT, Handler); | ||||
|  | ||||
|     if (argc < 2){ | ||||
|         Debug("Please input VCOM value on FPC cable!\r\n"); | ||||
|         Debug("Example: sudo ./epd -2.51\r\n"); | ||||
|         exit(1); | ||||
|     } | ||||
| 	if (argc != 3){ | ||||
| 		Debug("Please input e-Paper display mode!\r\n"); | ||||
| 		Debug("Example: sudo ./epd -2.51 0 or sudo ./epd -2.51 1\r\n"); | ||||
| 		Debug("Now, 10.3 inch glass panle is mode1, else is mode0\r\n"); | ||||
| 		Debug("If you don't know what to type in just type 0 \r\n"); | ||||
| 		exit(1); | ||||
|     } | ||||
|  | ||||
|     //Init the BCM2835 Device | ||||
|     if(DEV_Module_Init()!=0){ | ||||
|         return -1; | ||||
|     } | ||||
|  | ||||
|     double temp; | ||||
|     sscanf(argv[1],"%lf",&temp); | ||||
|     VCOM = (UWORD)(fabs(temp)*1000); | ||||
|     Debug("VCOM value:%d\r\n", VCOM); | ||||
| 	sscanf(argv[2],"%d",&epd_mode); | ||||
|     Debug("Display mode:%d\r\n", epd_mode); | ||||
|     Dev_Info = EPD_IT8951_Init(VCOM); | ||||
|  | ||||
|     //get some important info from Dev_Info structure | ||||
|     Panel_Width = Dev_Info.Panel_W; | ||||
|     Panel_Height = Dev_Info.Panel_H; | ||||
|     Init_Target_Memory_Addr = Dev_Info.Memory_Addr_L | (Dev_Info.Memory_Addr_H << 16); | ||||
|     char* LUT_Version = (char*)Dev_Info.LUT_Version; | ||||
|     if( strcmp(LUT_Version, "M641") == 0 ){ | ||||
|         //6inch e-Paper HAT(800,600), 6inch HD e-Paper HAT(1448,1072), 6inch HD touch e-Paper HAT(1448,1072) | ||||
|         A2_Mode = 4; | ||||
|         Four_Byte_Align = true; | ||||
|     }else if( strcmp(LUT_Version, "M841_TFAB512") == 0 ){ | ||||
|         //Another firmware version for 6inch HD e-Paper HAT(1448,1072), 6inch HD touch e-Paper HAT(1448,1072) | ||||
|         A2_Mode = 6; | ||||
|         Four_Byte_Align = true; | ||||
|     }else if( strcmp(LUT_Version, "M841") == 0 ){ | ||||
|         //9.7inch e-Paper HAT(1200,825) | ||||
|         A2_Mode = 6; | ||||
|     }else if( strcmp(LUT_Version, "M841_TFA2812") == 0 ){ | ||||
|         //7.8inch e-Paper HAT(1872,1404) | ||||
|         A2_Mode = 6; | ||||
|     }else if( strcmp(LUT_Version, "M841_TFA5210") == 0 ){ | ||||
|         //10.3inch e-Paper HAT(1872,1404) | ||||
|         A2_Mode = 6; | ||||
|     }else{ | ||||
|         //default set to 6 as A2 Mode | ||||
|         A2_Mode = 6; | ||||
|     } | ||||
|     Debug("A2 Mode:%d\r\n", A2_Mode); | ||||
|  | ||||
| 	EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, INIT_Mode); | ||||
|  | ||||
|  | ||||
| #if(SHOW_BMP) | ||||
|     //Show a bmp file | ||||
|     //1bp use A2 mode by default, before used it, refresh the screen with WHITE | ||||
|     Display_BMP_Example(Panel_Width, Panel_Height, Init_Target_Memory_Addr, BitsPerPixel_4, "/home/pi/InkycalVenv/inkycal/display/drivers/7_in_8_drivers/pic/1872x1404_2.bmp"); | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, GC16_Mode); | ||||
| #endif | ||||
|  | ||||
| #if(USE_Normal_Demo) | ||||
| /* | ||||
|     //Show 16 grayscale | ||||
|     Display_ColorPalette_Example(Panel_Width, Panel_Height, Init_Target_Memory_Addr); | ||||
| 	EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, GC16_Mode); | ||||
|  | ||||
|     //Show some character and pattern | ||||
|     Display_CharacterPattern_Example(Panel_Width, Panel_Height, Init_Target_Memory_Addr, BitsPerPixel_4); | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, GC16_Mode); | ||||
|  | ||||
|     //Show a bmp file | ||||
|     //1bp use A2 mode by default, before used it, refresh the screen with WHITE | ||||
|     Display_BMP_Example(Panel_Width, Panel_Height, Init_Target_Memory_Addr, BitsPerPixel_1); | ||||
|     Display_BMP_Example(Panel_Width, Panel_Height, Init_Target_Memory_Addr, BitsPerPixel_2); | ||||
|     Display_BMP_Example(Panel_Width, Panel_Height, Init_Target_Memory_Addr, BitsPerPixel_4); | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, GC16_Mode); | ||||
|      | ||||
|     //Show A2 mode refresh effect | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, A2_Mode); | ||||
|     Dynamic_Refresh_Example(Dev_Info,Init_Target_Memory_Addr); | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, A2_Mode); | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, GC16_Mode); | ||||
| 	 | ||||
|     //Show how to display a gif, not works well on 6inch e-Paper HAT, 9.7inch e-Paper HAT, others work well | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, A2_Mode); | ||||
|     Dynamic_GIF_Example(Panel_Width, Panel_Height, Init_Target_Memory_Addr); | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, A2_Mode); | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, GC16_Mode); | ||||
|  | ||||
|     //Show how to test frame rate, test it individually,which is related to refresh area size and refresh mode | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, A2_Mode); | ||||
|     Check_FrameRate_Example(800, 600, Init_Target_Memory_Addr, BitsPerPixel_1); | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, A2_Mode); | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, GC16_Mode); | ||||
|     * */ | ||||
| #endif | ||||
|  | ||||
|  | ||||
|     //We recommended refresh the panel to white color before storing in the warehouse. | ||||
|     EPD_IT8951_Clear_Refresh(Dev_Info, Init_Target_Memory_Addr, INIT_Mode); | ||||
|  | ||||
|     //EPD_IT8951_Standby(); | ||||
|     EPD_IT8951_Sleep(); | ||||
|  | ||||
|     //In case RPI is transmitting image in no hold mode, which requires at most 10s | ||||
|     DEV_Delay_ms(5000); | ||||
|  | ||||
|     DEV_Module_Exit(); | ||||
|     return 0; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user