How To Screen Capture - FT800

From MCS Wiki AVR
Jump to: navigation, search

How to Screen Capture

There is nothing better than been able to produce nice Screen captures from your Graphics Display (instead of using a camera) when wanting to write a manual or a help file explaining the different screen operations/features at what they do.

 

The process is quite simple to implement into your program generating a Screen capture output.  You can use the supplied code or you can modify the code and produce your own version.

If you look at FT800 Capture.Bas  it demonstrates the Screen capture using two routines.

 

Sub ScreenShot:  is a demo originally from James Bowman (Gameduino2) which takes a snapshot and just outputs the data via Serial (which you have to write your own PC serial capture program).

 

Sub ScreenShot2:  is the same as above except it uses additional control codes for handshaking and stopping the program. A sample PC (Windows) program called Capture FT800.exe demonstrate the capture process which when successful  produces a BMP file.

 

Capture FT800.exe waits for a ACK to acknowledge a ready to receive message so transmission can start, once transfer begins and then finishes it receives a EOT acknowledge end of transmission., Additional to this if the user wants to stop/quit  transmission the program will send an ESC character to notify the hardware to stop sending data .

The easiest way to begin is to add Screenshot.inc  to your code:

$Include "FT800.inc"
$Include "FT800_Functions.inc"
 
$Include "ScreenShot.inc" ' ç==== add this line

Then decide where in your program you want to call ScreenShot2  so it can start the capturing process (working with Capture FT800.exe).

This example it’s called at the end of the program:

Do
 Demo
 Loop
 
 ScreenShot2
 
 End
 
This sample is called within a certain code area, straight after the screen is displayed.
 ClearScreen
 ColorRGB 255, 255, 255
 BitmapSource RAM_G
 BitmapLayout Header_Format(1+_base), Header_Stride(1+_base), Header_Height(1+_base)
 BitmapSize NEAREST, Border, Border, Header_Width(1+_base), Header_Height(1+_base)
 Begin_G BITMAPS ' start drawing bitmaps
 Const DA = FT_DispWidth / 4
 Ln1 = Header_Width(1+_base) / 2
 Const DB = FT_DispHeight / 2
 Ln2 = Header_Height(1+_base) / 2
 BMoffsetx = DA - Ln1
 BMoffsety = DB - Ln2
 Vertex2II BMoffsetx, BMoffsety, 0, 0
 UpdateScreen
 
 ScreenShot2

Using the Capture FT800.exe:

Note: when possible use the highest baud rate possible to decrease the wait time of receiving transmission. Don’t forget to make sure the Hardware baud rate matches the Capture FT800 baud rate! (it won’t time time out if wrong).


Embim3.png


1) Chose your Comm port
2) Select the Baud rate of your Hardware
3) You can either enter a filename or it can prompt you at the end of the capture.
4)

Press Start when ready, if successful you will see  a message.


Languages   English  
Personal tools
Namespaces
Variants
Actions
Navigation
Language