From 9be8fc37aaf3d339e54050cf163320bb0f34b5c1 Mon Sep 17 00:00:00 2001 From: tmeissner Date: Sun, 2 Feb 2014 00:34:30 +0100 Subject: [PATCH 1/3] new cli option -i to print bmp file info --- st7565-lcd/raspilcd.adb | 39 +++++++++++++++++++++------------------ st7565-lcd/st7565lcd.ads | 2 +- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/st7565-lcd/raspilcd.adb b/st7565-lcd/raspilcd.adb index e885af9..3a981c6 100644 --- a/st7565-lcd/raspilcd.adb +++ b/st7565-lcd/raspilcd.adb @@ -16,7 +16,6 @@ -with Ada.Text_IO; with bcm2835_h; with st7565lcd; @@ -34,7 +33,6 @@ procedure raspilcd is -- shorter names for packages - package IO renames Ada.Text_IO; package LCD renames st7565lcd; package IOS renames Ada.Streams.Stream_IO; @@ -49,20 +47,22 @@ procedure raspilcd is lcd_data : LCD.t_lcd_array; -- exception handling - cli_exception : exception; + cli_exception : exception; begin - -- no picture given - if Argument_Count /= 1 then + -- command line argument error + if Argument_Count = 0 or Argument_Count > 2 or + (Argument_Count = 1 and Argument(1) = "-i") or + (Argument_Count = 2 and Argument(1) /= "-i") then raise cli_exception; end if; -- open picture file declare - filename : string := Argument(1); + filename : string := Argument(Argument_Count); begin IOS.Open(My_File, IOS.In_File, filename); My_File_Access := IOS.Stream(My_File); @@ -71,10 +71,13 @@ begin -- read in picture LCD.read_bmp(file => My_File, file_access => My_File_Access, bmp_picture => bmp_picture); - --Put_Line("Width: " & Integer'Image(picture_header.biWidth)); - --Put_Line("Height: " & Integer'Image(picture_header.biHeight)); - --Put_Line("Color Depth: " & Integer'Image(Integer(picture_header.biBitCount))); - --Put_Line("Compression: " & Integer'Image(Integer(picture_header.biCompression))); + -- print bmp header info + if Argument(1) = "-i" then + put_Line(" width: " & Integer'Image(bmp_picture.header.biWidth)); + put_Line(" height: " & Integer'Image(bmp_picture.header.biHeight)); + put_Line(" color depth: " & Integer'Image(Integer(bmp_picture.header.biBitCount))); + put_Line(" compression: " & Integer'Image(Integer(bmp_picture.header.biCompression))); + end if; -- close picture file Ada.Streams.Stream_IO.Close(My_File); @@ -85,11 +88,7 @@ begin -- load bcm2835 lib -- print picture and some text on lcd - if integer(bcm2835_h.bcm2835_init) = 0 then - - IO.Put_Line("Error while initializing BCM2835 library"); - - else + if integer(bcm2835_h.bcm2835_init) /= 0 then LCD.io_init; @@ -106,7 +105,7 @@ begin -- close library if integer(bcm2835_h.bcm2835_close) = 0 then - IO.Put_Line("Error while closing BCM2835 library"); + put_line("Error while closing BCM2835 library"); end if; end if; @@ -114,15 +113,19 @@ begin -- exception handling exception - when cli_exception => + when cli_exception | CONSTRAINT_ERROR => put_line(LCD.exception_head); - put_line("usage: ./raspitest BMP-FILE (as root)"); + put_line("usage: ./raspilcd [option] BMP-FILE (as root)"); + put_line(" -i: show bmp info"); when LCD.bmp_exception => put_line(LCD.exception_head); put_line("error: malformed BMP-FILE (valid: 128x64, no compression, 32bpp)"); when LCD.mask_exception => put_line(LCD.exception_head); put_line("error: malformed BMP color mask"); + when NAME_ERROR => + put_line(LCD.exception_head); + put_line("error: Could not find bmp file"); end raspilcd; diff --git a/st7565-lcd/st7565lcd.ads b/st7565-lcd/st7565lcd.ads index 0ff8f6d..d8e5fbc 100644 --- a/st7565-lcd/st7565lcd.ads +++ b/st7565-lcd/st7565lcd.ads @@ -274,7 +274,7 @@ package st7565lcd is mask_exception : exception; bmp_exception : exception; - exception_head : string := "raspi-lcd version 0.1, (c) 2014 by tmeissner"; + exception_head : string := "raspilcd version 0.1.1, (c) 2014 by tmeissner"; -- procedure declarations From fadbf6865de42db13473f8117020455dbcaccfa3 Mon Sep 17 00:00:00 2001 From: tmeissner Date: Sun, 2 Feb 2014 00:56:22 +0100 Subject: [PATCH 2/3] renamed test.bmp to test_0.bmp --- st7565-lcd/{test.bmp => test_0.bmp} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename st7565-lcd/{test.bmp => test_0.bmp} (100%) diff --git a/st7565-lcd/test.bmp b/st7565-lcd/test_0.bmp similarity index 100% rename from st7565-lcd/test.bmp rename to st7565-lcd/test_0.bmp From 7e0eadfa7ad767f8d2bf5630df53fe7673022ab6 Mon Sep 17 00:00:00 2001 From: tmeissner Date: Sun, 2 Feb 2014 00:58:19 +0100 Subject: [PATCH 3/3] new test_1.bmp with bottom-up pixel array --- st7565-lcd/test_1.bmp | Bin 0 -> 32838 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 st7565-lcd/test_1.bmp diff --git a/st7565-lcd/test_1.bmp b/st7565-lcd/test_1.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4ad0879e642c4af865fbd2bea33a1c4684688138 GIT binary patch literal 32838 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 literal 0 HcmV?d00001