Driver for 4D Systems LCD screen with Picaso processor. Ported from 4D Systems Picaso Serial Linux Library
Dependents: Lab4_Demo_Game 4180_Final_Project
Fork of uLCD_4D_Picaso by
uLCD_4D_Picaso.h@9:72f00cef468b, 2016-10-27 (annotated)
- Committer:
- shorwich
- Date:
- Thu Oct 27 23:42:13 2016 +0000
- Revision:
- 9:72f00cef468b
- Parent:
- 8:25147173a168
Moved graphics command functions to separate file for clarity.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
admcrae | 5:ec04cd4e98ce | 1 | /** @headerfile uLCD_4D_Picaso.h |
admcrae | 4:30010dda3b34 | 2 | * |
admcrae | 0:e314f3b805ed | 3 | * This is a class to drive 4D systems screens with Picaso graphics processors |
admcrae | 0:e314f3b805ed | 4 | * |
admcrae | 0:e314f3b805ed | 5 | * This is a port of the 4D systems Picaso Serial Linux Library |
admcrae | 0:e314f3b805ed | 6 | * Copyright (c) 2014 4D Systems PTY Ltd, Sydney, Australia |
admcrae | 0:e314f3b805ed | 7 | * From https://github.com/4dsystems/Picaso-Serial-Linux-Library, retrieved March 5, 2015 |
admcrae | 0:e314f3b805ed | 8 | * |
admcrae | 5:ec04cd4e98ce | 9 | * Documentation in this file is adapted from the 4D systems Picaso Serial Command Manual, Rev 1.18, Copyright (c) 2014 4D Systems. |
admcrae | 5:ec04cd4e98ce | 10 | * |
admcrae | 0:e314f3b805ed | 11 | * All software in this library is provided without warranty; use at your own risk. |
admcrae | 0:e314f3b805ed | 12 | */ |
admcrae | 0:e314f3b805ed | 13 | |
admcrae | 0:e314f3b805ed | 14 | #ifndef uLCD_4D_Picaso_H |
admcrae | 0:e314f3b805ed | 15 | #define uLCD_4D_Picaso_H |
admcrae | 0:e314f3b805ed | 16 | |
admcrae | 4:30010dda3b34 | 17 | /** @define LCD_USING_MODSERIAL |
admcrae | 4:30010dda3b34 | 18 | * |
admcrae | 4:30010dda3b34 | 19 | * This library can work with either the standard mbed Serial library or with the MODSERIAL |
admcrae | 4:30010dda3b34 | 20 | * library by Andy Kirkham. MODSERIAL allows RX buffering, which could prevent dropped characters |
admcrae | 4:30010dda3b34 | 21 | * at high baud rates. The version of MODSERIAL by Erik Olieman, which is supposed to support more |
admcrae | 4:30010dda3b34 | 22 | * devices, does not appear to work with this library at present, for unknown reasons. |
admcrae | 4:30010dda3b34 | 23 | */ |
admcrae | 0:e314f3b805ed | 24 | #define LCD_USING_MODSERIAL 1 |
admcrae | 0:e314f3b805ed | 25 | |
admcrae | 0:e314f3b805ed | 26 | #include "mbed.h" |
admcrae | 2:ebe7029e2825 | 27 | #include "Picaso_enums.h" |
admcrae | 0:e314f3b805ed | 28 | |
admcrae | 0:e314f3b805ed | 29 | #if LCD_USING_MODSERIAL |
admcrae | 0:e314f3b805ed | 30 | #include "MODSERIAL.h" |
admcrae | 0:e314f3b805ed | 31 | #endif |
admcrae | 0:e314f3b805ed | 32 | |
shorwich | 9:72f00cef468b | 33 | //Constant 4D Serial Commands |
shorwich | 9:72f00cef468b | 34 | // function call index definitions, generated by build of serial |
shorwich | 9:72f00cef468b | 35 | #define F_charheight 29 |
shorwich | 9:72f00cef468b | 36 | #define F_charwidth 30 |
shorwich | 9:72f00cef468b | 37 | #define F_bus_In -45 |
shorwich | 9:72f00cef468b | 38 | #define F_bus_Out -46 |
shorwich | 9:72f00cef468b | 39 | #define F_bus_Read -49 |
shorwich | 9:72f00cef468b | 40 | #define F_bus_Set -47 |
shorwich | 9:72f00cef468b | 41 | #define F_bus_Write -48 |
shorwich | 9:72f00cef468b | 42 | #define F_file_Close -232 |
shorwich | 9:72f00cef468b | 43 | #define F_file_Count 1 |
shorwich | 9:72f00cef468b | 44 | #define F_file_Dir 2 |
shorwich | 9:72f00cef468b | 45 | #define F_file_Erase 3 |
shorwich | 9:72f00cef468b | 46 | #define F_file_Error -225 |
shorwich | 9:72f00cef468b | 47 | #define F_file_Exec 4 |
shorwich | 9:72f00cef468b | 48 | #define F_file_Exists 5 |
shorwich | 9:72f00cef468b | 49 | #define F_file_FindFirst 6 |
shorwich | 9:72f00cef468b | 50 | #define F_file_FindNext -229 |
shorwich | 9:72f00cef468b | 51 | #define F_file_GetC -242 |
shorwich | 9:72f00cef468b | 52 | #define F_file_GetS 7 |
shorwich | 9:72f00cef468b | 53 | #define F_file_GetW -244 |
shorwich | 9:72f00cef468b | 54 | #define F_file_Image -239 |
shorwich | 9:72f00cef468b | 55 | #define F_file_Index -235 |
shorwich | 9:72f00cef468b | 56 | #define F_file_LoadFunction 8 |
shorwich | 9:72f00cef468b | 57 | #define F_file_LoadImageControl 9 |
shorwich | 9:72f00cef468b | 58 | #define F_file_Mount -253 |
shorwich | 9:72f00cef468b | 59 | #define F_file_Open 10 |
shorwich | 9:72f00cef468b | 60 | #define F_file_PlayWAV 11 |
shorwich | 9:72f00cef468b | 61 | #define F_file_PutC 31 |
shorwich | 9:72f00cef468b | 62 | #define F_file_PutS 32 |
shorwich | 9:72f00cef468b | 63 | #define F_file_PutW -243 |
shorwich | 9:72f00cef468b | 64 | #define F_file_Read 12 |
shorwich | 9:72f00cef468b | 65 | #define F_file_Rewind -248 |
shorwich | 9:72f00cef468b | 66 | #define F_file_Run 13 |
shorwich | 9:72f00cef468b | 67 | #define F_file_ScreenCapture -240 |
shorwich | 9:72f00cef468b | 68 | #define F_file_Seek -234 |
shorwich | 9:72f00cef468b | 69 | #define F_file_Size 14 |
shorwich | 9:72f00cef468b | 70 | #define F_file_Tell 15 |
shorwich | 9:72f00cef468b | 71 | #define F_file_Unmount -254 |
shorwich | 9:72f00cef468b | 72 | #define F_file_Write 16 |
shorwich | 9:72f00cef468b | 73 | #define F_gfx_BevelShadow -104 |
shorwich | 9:72f00cef468b | 74 | #define F_gfx_BevelWidth -103 |
shorwich | 9:72f00cef468b | 75 | #define F_gfx_BGcolour -92 |
shorwich | 9:72f00cef468b | 76 | #define F_gfx_Button 17 |
shorwich | 9:72f00cef468b | 77 | #define F_gfx_ChangeColour -76 |
shorwich | 9:72f00cef468b | 78 | #define F_gfx_Circle -61 |
shorwich | 9:72f00cef468b | 79 | #define F_gfx_CircleFilled -62 |
shorwich | 9:72f00cef468b | 80 | #define F_gfx_Clipping -94 |
shorwich | 9:72f00cef468b | 81 | #define F_gfx_ClipWindow -75 |
shorwich | 9:72f00cef468b | 82 | #define F_gfx_Cls -51 |
shorwich | 9:72f00cef468b | 83 | #define F_gfx_Contrast -100 |
shorwich | 9:72f00cef468b | 84 | #define F_gfx_Ellipse -78 |
shorwich | 9:72f00cef468b | 85 | #define F_gfx_EllipseFilled -79 |
shorwich | 9:72f00cef468b | 86 | #define F_gfx_FrameDelay -97 |
shorwich | 9:72f00cef468b | 87 | #define F_gfx_Get -90 |
shorwich | 9:72f00cef468b | 88 | #define F_gfx_GetPixel -64 |
shorwich | 9:72f00cef468b | 89 | #define F_gfx_Line -56 |
shorwich | 9:72f00cef468b | 90 | #define F_gfx_LinePattern -101 |
shorwich | 9:72f00cef468b | 91 | #define F_gfx_LineTo -54 |
shorwich | 9:72f00cef468b | 92 | #define F_gfx_MoveTo -52 |
shorwich | 9:72f00cef468b | 93 | #define F_gfx_Orbit 18 |
shorwich | 9:72f00cef468b | 94 | #define F_gfx_OutlineColour -99 |
shorwich | 9:72f00cef468b | 95 | #define F_gfx_Panel -81 |
shorwich | 9:72f00cef468b | 96 | #define F_gfx_Polygon 19 |
shorwich | 9:72f00cef468b | 97 | #define F_gfx_PolygonFilled 20 |
shorwich | 9:72f00cef468b | 98 | #define F_gfx_Polyline 21 |
shorwich | 9:72f00cef468b | 99 | #define F_gfx_PutPixel -63 |
shorwich | 9:72f00cef468b | 100 | #define F_gfx_Rectangle -59 |
shorwich | 9:72f00cef468b | 101 | #define F_gfx_RectangleFilled -60 |
shorwich | 9:72f00cef468b | 102 | #define F_gfx_ScreenCopyPaste -83 |
shorwich | 9:72f00cef468b | 103 | #define F_gfx_ScreenMode -98 |
shorwich | 9:72f00cef468b | 104 | #define F_gfx_Set -50 |
shorwich | 9:72f00cef468b | 105 | #define F_gfx_SetClipRegion -77 |
shorwich | 9:72f00cef468b | 106 | #define F_gfx_Slider -82 |
shorwich | 9:72f00cef468b | 107 | #define F_gfx_Transparency -96 |
shorwich | 9:72f00cef468b | 108 | #define F_gfx_TransparentColour -95 |
shorwich | 9:72f00cef468b | 109 | #define F_gfx_Triangle -65 |
shorwich | 9:72f00cef468b | 110 | #define F_gfx_TriangleFilled -87 |
shorwich | 9:72f00cef468b | 111 | #define F_img_ClearAttributes -187 |
shorwich | 9:72f00cef468b | 112 | #define F_img_Darken -181 |
shorwich | 9:72f00cef468b | 113 | #define F_img_Disable -180 |
shorwich | 9:72f00cef468b | 114 | #define F_img_Enable -179 |
shorwich | 9:72f00cef468b | 115 | #define F_img_GetWord -184 |
shorwich | 9:72f00cef468b | 116 | #define F_img_Lighten -182 |
shorwich | 9:72f00cef468b | 117 | #define F_img_SetAttributes -186 |
shorwich | 9:72f00cef468b | 118 | #define F_img_SetPosition -178 |
shorwich | 9:72f00cef468b | 119 | #define F_img_SetWord -183 |
shorwich | 9:72f00cef468b | 120 | #define F_img_Show -185 |
shorwich | 9:72f00cef468b | 121 | #define F_img_Touched -188 |
shorwich | 9:72f00cef468b | 122 | #define F_media_Flush -118 |
shorwich | 9:72f00cef468b | 123 | #define F_media_Image -117 |
shorwich | 9:72f00cef468b | 124 | #define F_media_Init -119 |
shorwich | 9:72f00cef468b | 125 | #define F_media_RdSector 22 |
shorwich | 9:72f00cef468b | 126 | #define F_media_ReadByte -113 |
shorwich | 9:72f00cef468b | 127 | #define F_media_ReadWord -114 |
shorwich | 9:72f00cef468b | 128 | #define F_media_SetAdd -109 |
shorwich | 9:72f00cef468b | 129 | #define F_media_SetSector -110 |
shorwich | 9:72f00cef468b | 130 | #define F_media_Video -107 |
shorwich | 9:72f00cef468b | 131 | #define F_media_VideoFrame -108 |
shorwich | 9:72f00cef468b | 132 | #define F_media_WriteByte -115 |
shorwich | 9:72f00cef468b | 133 | #define F_media_WriteWord -116 |
shorwich | 9:72f00cef468b | 134 | #define F_media_WrSector 23 |
shorwich | 9:72f00cef468b | 135 | #define F_mem_Free -220 |
shorwich | 9:72f00cef468b | 136 | #define F_mem_Heap -221 |
shorwich | 9:72f00cef468b | 137 | #define F_peekM 39 |
shorwich | 9:72f00cef468b | 138 | #define F_pin_HI -42 |
shorwich | 9:72f00cef468b | 139 | #define F_pin_LO -43 |
shorwich | 9:72f00cef468b | 140 | #define F_pin_Read -44 |
shorwich | 9:72f00cef468b | 141 | #define F_pin_Set -41 |
shorwich | 9:72f00cef468b | 142 | #define F_pokeM 40 |
shorwich | 9:72f00cef468b | 143 | #define F_putCH -2 |
shorwich | 9:72f00cef468b | 144 | #define F_putstr 24 |
shorwich | 9:72f00cef468b | 145 | #define F_snd_BufSize -258 |
shorwich | 9:72f00cef468b | 146 | #define F_snd_Continue -261 |
shorwich | 9:72f00cef468b | 147 | #define F_snd_Pause -260 |
shorwich | 9:72f00cef468b | 148 | #define F_snd_Pitch -257 |
shorwich | 9:72f00cef468b | 149 | #define F_snd_Playing -262 |
shorwich | 9:72f00cef468b | 150 | #define F_snd_Stop -259 |
shorwich | 9:72f00cef468b | 151 | #define F_snd_Volume -256 |
shorwich | 9:72f00cef468b | 152 | #define F_sys_Sleep -197 |
shorwich | 9:72f00cef468b | 153 | #define F_touch_DetectRegion -199 |
shorwich | 9:72f00cef468b | 154 | #define F_touch_Get -201 |
shorwich | 9:72f00cef468b | 155 | #define F_touch_Set -200 |
shorwich | 9:72f00cef468b | 156 | #define F_txt_Attributes -38 |
shorwich | 9:72f00cef468b | 157 | #define F_txt_BGcolour -26 |
shorwich | 9:72f00cef468b | 158 | #define F_txt_Bold -34 |
shorwich | 9:72f00cef468b | 159 | #define F_txt_FGcolour -25 |
shorwich | 9:72f00cef468b | 160 | #define F_txt_FontID -27 |
shorwich | 9:72f00cef468b | 161 | #define F_txt_Height -29 |
shorwich | 9:72f00cef468b | 162 | #define F_txt_Inverse -36 |
shorwich | 9:72f00cef468b | 163 | #define F_txt_Italic -35 |
shorwich | 9:72f00cef468b | 164 | #define F_txt_MoveCursor -23 |
shorwich | 9:72f00cef468b | 165 | #define F_txt_Opacity -33 |
shorwich | 9:72f00cef468b | 166 | #define F_txt_Set -24 |
shorwich | 9:72f00cef468b | 167 | #define F_txt_Underline -37 |
shorwich | 9:72f00cef468b | 168 | #define F_txt_Width -28 |
shorwich | 9:72f00cef468b | 169 | #define F_txt_Wrap -39 |
shorwich | 9:72f00cef468b | 170 | #define F_txt_Xgap -30 |
shorwich | 9:72f00cef468b | 171 | #define F_txt_Ygap -31 |
shorwich | 9:72f00cef468b | 172 | #define F_file_CallFunction 25 |
shorwich | 9:72f00cef468b | 173 | #define F_sys_GetModel 26 |
shorwich | 9:72f00cef468b | 174 | #define F_sys_GetVersion 27 |
shorwich | 9:72f00cef468b | 175 | #define F_sys_GetPmmC 28 |
shorwich | 9:72f00cef468b | 176 | #define F_writeString 33 |
shorwich | 9:72f00cef468b | 177 | #define F_readString 34 |
shorwich | 9:72f00cef468b | 178 | #define F_blitComtoDisplay 35 |
shorwich | 9:72f00cef468b | 179 | #define F_file_FindFirstRet 36 |
shorwich | 9:72f00cef468b | 180 | #define F_file_FindNextRet 37 |
shorwich | 9:72f00cef468b | 181 | #define F_setbaudWait 38 |
admcrae | 2:ebe7029e2825 | 182 | |
admcrae | 2:ebe7029e2825 | 183 | |
admcrae | 4:30010dda3b34 | 184 | /** |
admcrae | 4:30010dda3b34 | 185 | * @class uLCD_4D_Picaso |
admcrae | 4:30010dda3b34 | 186 | * |
admcrae | 4:30010dda3b34 | 187 | * This class contains all of the Picaso Serial C library functions, ported to mbed. |
admcrae | 4:30010dda3b34 | 188 | */ |
shorwich | 7:7754ce600ca6 | 189 | class uLCD_4D_Picaso : public Stream { |
admcrae | 0:e314f3b805ed | 190 | public: |
admcrae | 0:e314f3b805ed | 191 | |
admcrae | 2:ebe7029e2825 | 192 | /** |
admcrae | 2:ebe7029e2825 | 193 | * Class constructor |
admcrae | 4:30010dda3b34 | 194 | * |
admcrae | 2:ebe7029e2825 | 195 | * @param tx Serial transmit pin. |
admcrae | 2:ebe7029e2825 | 196 | * @param rx Serial receive pin. |
admcrae | 2:ebe7029e2825 | 197 | * @param reset Reset GPIO pin. |
admcrae | 2:ebe7029e2825 | 198 | */ |
admcrae | 0:e314f3b805ed | 199 | uLCD_4D_Picaso(PinName tx, PinName rx, PinName reset); |
admcrae | 2:ebe7029e2825 | 200 | |
admcrae | 2:ebe7029e2825 | 201 | /** |
admcrae | 2:ebe7029e2825 | 202 | * Resets the LCD screen (takes 3 seconds). |
admcrae | 2:ebe7029e2825 | 203 | */ |
admcrae | 0:e314f3b805ed | 204 | void LCD_reset(); |
admcrae | 0:e314f3b805ed | 205 | |
admcrae | 2:ebe7029e2825 | 206 | |
admcrae | 2:ebe7029e2825 | 207 | // LCD text commands: |
admcrae | 2:ebe7029e2825 | 208 | |
admcrae | 2:ebe7029e2825 | 209 | /** |
admcrae | 2:ebe7029e2825 | 210 | * Prints single character to screen. |
admcrae | 2:ebe7029e2825 | 211 | * @param Character to be printed. |
admcrae | 2:ebe7029e2825 | 212 | */ |
admcrae | 2:ebe7029e2825 | 213 | void putCH(uint16_t Character); |
admcrae | 2:ebe7029e2825 | 214 | |
admcrae | 2:ebe7029e2825 | 215 | /** |
admcrae | 2:ebe7029e2825 | 216 | * Prints null-terminated string to screen. |
admcrae | 2:ebe7029e2825 | 217 | * @param InString String to be printed. Maximum length is 511 characters plus null. |
admcrae | 2:ebe7029e2825 | 218 | * @return Number of characters printed. |
admcrae | 2:ebe7029e2825 | 219 | */ |
admcrae | 2:ebe7029e2825 | 220 | uint16_t putStr(char *InString); |
admcrae | 2:ebe7029e2825 | 221 | |
admcrae | 2:ebe7029e2825 | 222 | /** |
admcrae | 2:ebe7029e2825 | 223 | * Moves text cursor to specified line and column (based on font size), with (0, 0) being the top-left corner. |
admcrae | 2:ebe7029e2825 | 224 | */ |
admcrae | 2:ebe7029e2825 | 225 | void txt_MoveCursor(uint16_t Line, uint16_t Column); |
admcrae | 2:ebe7029e2825 | 226 | |
admcrae | 2:ebe7029e2825 | 227 | /** |
admcrae | 2:ebe7029e2825 | 228 | * Sets text bold, italic, inverse, and underlined attributes. |
admcrae | 2:ebe7029e2825 | 229 | * @param Attribs Word containing attribute flags. OR attribute constants together to set multiple. |
admcrae | 2:ebe7029e2825 | 230 | * @return Previous text attribute word. |
admcrae | 2:ebe7029e2825 | 231 | */ |
admcrae | 2:ebe7029e2825 | 232 | Picaso::TextAttribute txt_Attributes(Picaso::TextAttribute Attribs); |
admcrae | 2:ebe7029e2825 | 233 | |
admcrae | 2:ebe7029e2825 | 234 | /** |
admcrae | 2:ebe7029e2825 | 235 | * Sets text inverse attribute. |
admcrae | 2:ebe7029e2825 | 236 | * @return Previous setting. |
admcrae | 2:ebe7029e2825 | 237 | */ |
admcrae | 2:ebe7029e2825 | 238 | uint16_t txt_Inverse(uint16_t Inverse); |
admcrae | 2:ebe7029e2825 | 239 | |
admcrae | 2:ebe7029e2825 | 240 | /** |
admcrae | 2:ebe7029e2825 | 241 | * Sets text italic attribute. |
admcrae | 2:ebe7029e2825 | 242 | * @return Previous setting. |
admcrae | 2:ebe7029e2825 | 243 | */ |
admcrae | 2:ebe7029e2825 | 244 | uint16_t txt_Italic(uint16_t Italic); |
admcrae | 2:ebe7029e2825 | 245 | |
admcrae | 2:ebe7029e2825 | 246 | /** |
admcrae | 2:ebe7029e2825 | 247 | * Sets text bold attribute. |
admcrae | 2:ebe7029e2825 | 248 | * @return Previous setting. |
admcrae | 2:ebe7029e2825 | 249 | */ |
admcrae | 2:ebe7029e2825 | 250 | uint16_t txt_Bold(uint16_t Bold); |
admcrae | 2:ebe7029e2825 | 251 | |
admcrae | 2:ebe7029e2825 | 252 | /** |
admcrae | 2:ebe7029e2825 | 253 | * Sets text underline attribute. |
admcrae | 2:ebe7029e2825 | 254 | * @return Previous setting. |
admcrae | 2:ebe7029e2825 | 255 | */ |
admcrae | 2:ebe7029e2825 | 256 | uint16_t txt_Underline(uint16_t Underline); |
admcrae | 2:ebe7029e2825 | 257 | |
admcrae | 2:ebe7029e2825 | 258 | /** |
admcrae | 2:ebe7029e2825 | 259 | * Sets text background color. |
admcrae | 2:ebe7029e2825 | 260 | * @return Previous color setting. |
admcrae | 2:ebe7029e2825 | 261 | */ |
admcrae | 2:ebe7029e2825 | 262 | Picaso::Color txt_BGcolour(Picaso::Color Color); |
admcrae | 2:ebe7029e2825 | 263 | |
admcrae | 2:ebe7029e2825 | 264 | /* |
admcrae | 2:ebe7029e2825 | 265 | * Sets text foreground color. |
admcrae | 2:ebe7029e2825 | 266 | * @return Previous color setting. |
admcrae | 2:ebe7029e2825 | 267 | */ |
admcrae | 2:ebe7029e2825 | 268 | Picaso::Color txt_FGcolour(Picaso::Color Color); |
admcrae | 2:ebe7029e2825 | 269 | |
admcrae | 2:ebe7029e2825 | 270 | /** |
admcrae | 2:ebe7029e2825 | 271 | * Sets text background opacity (i.e. whether background pixels are drawn). |
admcrae | 2:ebe7029e2825 | 272 | * @return Previous setting. |
admcrae | 2:ebe7029e2825 | 273 | */ |
admcrae | 2:ebe7029e2825 | 274 | Picaso::TextOpacity txt_Opacity(Picaso::TextOpacity TransparentOpaque); |
admcrae | 2:ebe7029e2825 | 275 | |
admcrae | 2:ebe7029e2825 | 276 | /** |
admcrae | 2:ebe7029e2825 | 277 | * Sets text font. Note that one can also pass a handle to a file with a font: see Picaso Serial Command Manual for more information. |
admcrae | 2:ebe7029e2825 | 278 | * @return Previous setting. |
admcrae | 2:ebe7029e2825 | 279 | */ |
admcrae | 2:ebe7029e2825 | 280 | Picaso::Font txt_FontID(Picaso::Font FontNumber); |
admcrae | 2:ebe7029e2825 | 281 | |
admcrae | 2:ebe7029e2825 | 282 | /** |
admcrae | 2:ebe7029e2825 | 283 | * Sets text font height. |
admcrae | 6:70c65c7c4337 | 284 | * @param Multiplier Font height as multiple of default height. |
admcrae | 2:ebe7029e2825 | 285 | * @return Previous setting. |
admcrae | 2:ebe7029e2825 | 286 | */ |
admcrae | 2:ebe7029e2825 | 287 | uint16_t txt_Height(uint16_t Multiplier); |
admcrae | 2:ebe7029e2825 | 288 | |
admcrae | 2:ebe7029e2825 | 289 | /** |
admcrae | 2:ebe7029e2825 | 290 | * Sets text font width. |
admcrae | 2:ebe7029e2825 | 291 | * @param Multiplier Font width as multiple of default. |
admcrae | 2:ebe7029e2825 | 292 | * @return Previous setting. |
admcrae | 2:ebe7029e2825 | 293 | */ |
admcrae | 2:ebe7029e2825 | 294 | uint16_t txt_Width(uint16_t Multiplier); |
admcrae | 2:ebe7029e2825 | 295 | |
admcrae | 2:ebe7029e2825 | 296 | /** |
admcrae | 2:ebe7029e2825 | 297 | * Returns the height, in pixels, of a given character under the current font settings. If height is greater than 255, the returned value will be modulo 8. |
admcrae | 2:ebe7029e2825 | 298 | */ |
admcrae | 2:ebe7029e2825 | 299 | uint16_t charheight(char TestChar); |
admcrae | 2:ebe7029e2825 | 300 | |
admcrae | 2:ebe7029e2825 | 301 | /** |
admcrae | 2:ebe7029e2825 | 302 | * Returns the width, in pixels, of a given character under the current font settings. If width is greater than 255, the returned value will be modulo 8. |
admcrae | 2:ebe7029e2825 | 303 | */ |
admcrae | 2:ebe7029e2825 | 304 | uint16_t charwidth(char TestChar); |
admcrae | 2:ebe7029e2825 | 305 | |
admcrae | 2:ebe7029e2825 | 306 | /** |
admcrae | 2:ebe7029e2825 | 307 | * Sets the pixel position (from left side) at which text wraps around on right side. |
admcrae | 2:ebe7029e2825 | 308 | * @return Previous setting. |
admcrae | 2:ebe7029e2825 | 309 | */ |
admcrae | 2:ebe7029e2825 | 310 | uint16_t txt_Wrap(uint16_t Position); |
admcrae | 2:ebe7029e2825 | 311 | |
admcrae | 2:ebe7029e2825 | 312 | /** |
admcrae | 2:ebe7029e2825 | 313 | * Sets gap, in pixels, between characters in the x-direction. |
admcrae | 2:ebe7029e2825 | 314 | * @return Previous setting. |
admcrae | 2:ebe7029e2825 | 315 | */ |
admcrae | 2:ebe7029e2825 | 316 | uint16_t txt_Xgap(uint16_t Pixels); |
admcrae | 2:ebe7029e2825 | 317 | |
admcrae | 2:ebe7029e2825 | 318 | /** |
admcrae | 2:ebe7029e2825 | 319 | * Sets gap, in pixels, between characters in the y-direction. |
admcrae | 2:ebe7029e2825 | 320 | * @return Previous setting. |
admcrae | 2:ebe7029e2825 | 321 | */ |
admcrae | 2:ebe7029e2825 | 322 | uint16_t txt_Ygap(uint16_t Pixels); |
admcrae | 2:ebe7029e2825 | 323 | |
admcrae | 2:ebe7029e2825 | 324 | /** |
admcrae | 2:ebe7029e2825 | 325 | * Sets one of several text attributes. Most attributes can be set by other functions. |
admcrae | 2:ebe7029e2825 | 326 | * @param Func Attribute to set. |
admcrae | 2:ebe7029e2825 | 327 | * @param Value Value to set parameter. See TextSetFunc definition for more information. |
admcrae | 2:ebe7029e2825 | 328 | */ |
admcrae | 2:ebe7029e2825 | 329 | void txt_Set(Picaso::TextSetFunc Func, uint16_t Value); |
admcrae | 2:ebe7029e2825 | 330 | |
admcrae | 2:ebe7029e2825 | 331 | |
admcrae | 2:ebe7029e2825 | 332 | // LCD graphics commands: |
admcrae | 2:ebe7029e2825 | 333 | |
admcrae | 2:ebe7029e2825 | 334 | /** |
admcrae | 2:ebe7029e2825 | 335 | * Clears screen and sets several attributes (such as transparency, outline color, opacity, pen style, line patterning, |
admcrae | 2:ebe7029e2825 | 336 | * text wrap position, text size, and origin) to their default values. |
admcrae | 2:ebe7029e2825 | 337 | */ |
admcrae | 0:e314f3b805ed | 338 | void gfx_Cls(void); |
admcrae | 2:ebe7029e2825 | 339 | |
admcrae | 2:ebe7029e2825 | 340 | /** |
admcrae | 2:ebe7029e2825 | 341 | * Changes all pixels on the screen of OldColor to NewColor. |
admcrae | 2:ebe7029e2825 | 342 | */ |
admcrae | 2:ebe7029e2825 | 343 | void gfx_ChangeColour(uint16_t OldColor, uint16_t NewColor); |
admcrae | 2:ebe7029e2825 | 344 | |
admcrae | 2:ebe7029e2825 | 345 | /** |
admcrae | 2:ebe7029e2825 | 346 | * Draws pixel of color Color at (X, Y). |
admcrae | 2:ebe7029e2825 | 347 | */ |
admcrae | 2:ebe7029e2825 | 348 | void gfx_PutPixel(uint16_t X, uint16_t Y, Picaso::Color Color); |
admcrae | 2:ebe7029e2825 | 349 | |
admcrae | 2:ebe7029e2825 | 350 | /** |
admcrae | 2:ebe7029e2825 | 351 | * Returns current color of pixel at (X, Y). |
admcrae | 2:ebe7029e2825 | 352 | */ |
admcrae | 2:ebe7029e2825 | 353 | Picaso::Color gfx_GetPixel(uint16_t X, uint16_t Y); |
admcrae | 2:ebe7029e2825 | 354 | |
admcrae | 2:ebe7029e2825 | 355 | /** |
admcrae | 2:ebe7029e2825 | 356 | * Draws (unfilled) circle on screen. |
admcrae | 2:ebe7029e2825 | 357 | * @param X,Y Coordinates (in pixels) of circle's center. |
admcrae | 2:ebe7029e2825 | 358 | * @param Radius Radius of circle. |
admcrae | 2:ebe7029e2825 | 359 | * @param Color Color of circle. |
admcrae | 2:ebe7029e2825 | 360 | */ |
admcrae | 2:ebe7029e2825 | 361 | void gfx_Circle(uint16_t X, uint16_t Y, uint16_t Radius, Picaso::Color Color); |
admcrae | 2:ebe7029e2825 | 362 | |
admcrae | 2:ebe7029e2825 | 363 | /** |
admcrae | 2:ebe7029e2825 | 364 | * Draws filled circle on screen. |
admcrae | 2:ebe7029e2825 | 365 | * @param X,Y Coordinates (in pixels) of circle's center. |
admcrae | 2:ebe7029e2825 | 366 | * @param Radius Radius of circle. |
admcrae | 2:ebe7029e2825 | 367 | * @param Color Color of circle. |
admcrae | 2:ebe7029e2825 | 368 | */ |
admcrae | 2:ebe7029e2825 | 369 | void gfx_CircleFilled(uint16_t X, uint16_t Y, uint16_t Radius, Picaso::Color Color); |
admcrae | 2:ebe7029e2825 | 370 | |
admcrae | 2:ebe7029e2825 | 371 | /** |
admcrae | 2:ebe7029e2825 | 372 | * Draws line from (X1, Y1) to (X2, Y2) with color Color |
admcrae | 2:ebe7029e2825 | 373 | */ |
admcrae | 2:ebe7029e2825 | 374 | void gfx_Line(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, Picaso::Color Color); |
admcrae | 2:ebe7029e2825 | 375 | |
admcrae | 2:ebe7029e2825 | 376 | /** |
admcrae | 2:ebe7029e2825 | 377 | * Draws unfilled rectangle on screen. |
admcrae | 2:ebe7029e2825 | 378 | * @param X1,Y1 Coordinates of top-left corner of rectangle. |
admcrae | 2:ebe7029e2825 | 379 | * @param X2,Y2 Coordinates of bottom-right corner of rectangle. |
admcrae | 2:ebe7029e2825 | 380 | * @param Color of rectangle. |
admcrae | 2:ebe7029e2825 | 381 | */ |
admcrae | 2:ebe7029e2825 | 382 | void gfx_Rectangle(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, Picaso::Color Color); |
admcrae | 2:ebe7029e2825 | 383 | |
admcrae | 2:ebe7029e2825 | 384 | /** |
admcrae | 2:ebe7029e2825 | 385 | * Draws filled rectangle on screen. |
admcrae | 2:ebe7029e2825 | 386 | * @param X1,Y1 Coordinates of top-left corner of rectangle. |
admcrae | 2:ebe7029e2825 | 387 | * @param X2,Y2 Coordinates of bottom-right corner of rectangle. |
admcrae | 2:ebe7029e2825 | 388 | * @param Color of rectangle. |
admcrae | 2:ebe7029e2825 | 389 | */ |
admcrae | 2:ebe7029e2825 | 390 | void gfx_RectangleFilled(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, Picaso::Color Color); |
admcrae | 2:ebe7029e2825 | 391 | |
admcrae | 2:ebe7029e2825 | 392 | /** |
admcrae | 2:ebe7029e2825 | 393 | * Plots line between a sequence of points. |
admcrae | 2:ebe7029e2825 | 394 | * @param n Number of vertices. |
admcrae | 2:ebe7029e2825 | 395 | * @param Xvalues,Yvalues Arrays of size n containing the coordinates of each vertex. |
admcrae | 2:ebe7029e2825 | 396 | * @param Color Color of line. |
admcrae | 2:ebe7029e2825 | 397 | */ |
admcrae | 2:ebe7029e2825 | 398 | void gfx_Polyline(uint16_t n, uint16_t* Xvalues, uint16_t* Yvalues, Picaso::Color Color); |
admcrae | 2:ebe7029e2825 | 399 | |
admcrae | 2:ebe7029e2825 | 400 | /** |
admcrae | 2:ebe7029e2825 | 401 | * Draws unfilled polygon on screen. |
admcrae | 2:ebe7029e2825 | 402 | * @param n Number of vertices. |
admcrae | 2:ebe7029e2825 | 403 | * @param Xvalues,Yvalues Arrays of size n contianing the coordinates of each vertex. |
admcrae | 2:ebe7029e2825 | 404 | * @param Color Color of polygon. |
admcrae | 2:ebe7029e2825 | 405 | */ |
admcrae | 2:ebe7029e2825 | 406 | void gfx_Polygon(uint16_t n, uint16_t* Xvalues, uint16_t* Yvalues, Picaso::Color Color); |
admcrae | 2:ebe7029e2825 | 407 | |
admcrae | 2:ebe7029e2825 | 408 | /** |
admcrae | 2:ebe7029e2825 | 409 | * Draws filled polygon on screen. |
admcrae | 2:ebe7029e2825 | 410 | * @param n Number of vertices. |
admcrae | 2:ebe7029e2825 | 411 | * @param Xvalues,Yvalues Arrays of size n contianing the coordinates of each vertex. |
admcrae | 2:ebe7029e2825 | 412 | * @param Color Color of polygon. |
admcrae | 2:ebe7029e2825 | 413 | */ |
admcrae | 2:ebe7029e2825 | 414 | void gfx_PolygonFilled(uint16_t n, uint16_t* Xvalues, uint16_t* Yvalues, Picaso::Color Color); |
admcrae | 2:ebe7029e2825 | 415 | |
admcrae | 2:ebe7029e2825 | 416 | /** |
admcrae | 2:ebe7029e2825 | 417 | * Draws unfilled triangle on screen. |
admcrae | 2:ebe7029e2825 | 418 | * @param X1,Y1 Coordinates of first vertex. |
admcrae | 2:ebe7029e2825 | 419 | * @param X2,Y2 Coordinates of second vertex. |
admcrae | 2:ebe7029e2825 | 420 | * @param X3,Y3 Coordinates of third vertex. |
admcrae | 2:ebe7029e2825 | 421 | * @param Color Color of triangle. |
admcrae | 2:ebe7029e2825 | 422 | */ |
admcrae | 2:ebe7029e2825 | 423 | void gfx_Triangle(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, Picaso::Color Color); |
admcrae | 2:ebe7029e2825 | 424 | |
admcrae | 2:ebe7029e2825 | 425 | /** |
admcrae | 2:ebe7029e2825 | 426 | * Draws filled triangle on screen. |
admcrae | 2:ebe7029e2825 | 427 | * @param X1,Y1 Coordinates of first vertex. |
admcrae | 2:ebe7029e2825 | 428 | * @param X2,Y2 Coordinates of second vertex. |
admcrae | 2:ebe7029e2825 | 429 | * @param X3,Y3 Coordinates of third vertex. |
admcrae | 2:ebe7029e2825 | 430 | * @param Color Color of triangle. |
admcrae | 2:ebe7029e2825 | 431 | */ |
admcrae | 2:ebe7029e2825 | 432 | void gfx_TriangleFilled(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, uint16_t X3, uint16_t Y3, Picaso::Color Color); |
admcrae | 2:ebe7029e2825 | 433 | |
admcrae | 2:ebe7029e2825 | 434 | /** |
admcrae | 2:ebe7029e2825 | 435 | * Draws ellipse on screen. |
admcrae | 2:ebe7029e2825 | 436 | * @param X,Y Coordinates of center of ellipse. |
admcrae | 2:ebe7029e2825 | 437 | * @param Xrad Ellipse's x-radius. |
admcrae | 2:ebe7029e2825 | 438 | * @param Yrad Ellipse's y-radius. |
admcrae | 2:ebe7029e2825 | 439 | * @param Color Color of ellipse. |
admcrae | 2:ebe7029e2825 | 440 | */ |
admcrae | 2:ebe7029e2825 | 441 | void gfx_Ellipse(uint16_t X, uint16_t Y, uint16_t Xrad, uint16_t Yrad, Picaso::Color Color); |
admcrae | 2:ebe7029e2825 | 442 | |
admcrae | 2:ebe7029e2825 | 443 | /** |
admcrae | 2:ebe7029e2825 | 444 | * Draws filled ellipse on screen. |
admcrae | 2:ebe7029e2825 | 445 | * @param X,Y Coordinates of center of ellipse. |
admcrae | 2:ebe7029e2825 | 446 | * @param Xrad Ellipse's x-radius. |
admcrae | 2:ebe7029e2825 | 447 | * @param Yrad Ellipse's y-radius. |
admcrae | 2:ebe7029e2825 | 448 | * @param Color Color of ellipse. |
admcrae | 2:ebe7029e2825 | 449 | */ |
admcrae | 2:ebe7029e2825 | 450 | void gfx_EllipseFilled(uint16_t X, uint16_t Y, uint16_t Xrad, uint16_t Yrad, Picaso::Color Color); |
admcrae | 2:ebe7029e2825 | 451 | |
admcrae | 2:ebe7029e2825 | 452 | |
admcrae | 2:ebe7029e2825 | 453 | |
admcrae | 2:ebe7029e2825 | 454 | |
admcrae | 2:ebe7029e2825 | 455 | /** |
admcrae | 2:ebe7029e2825 | 456 | * Enables or disables clipping. |
admcrae | 2:ebe7029e2825 | 457 | * @param OnOff 0 = Off, 1 = On. |
admcrae | 2:ebe7029e2825 | 458 | */ |
admcrae | 2:ebe7029e2825 | 459 | void gfx_Clipping(uint16_t OnOff); |
admcrae | 2:ebe7029e2825 | 460 | |
admcrae | 2:ebe7029e2825 | 461 | /** |
admcrae | 2:ebe7029e2825 | 462 | * Sets clipping window for graphics. Any objects and text will only be displayed within the window. |
admcrae | 2:ebe7029e2825 | 463 | * Clipping must first be enabled with the gfx_Clipping command. |
admcrae | 2:ebe7029e2825 | 464 | * @param X1, Y1 Coordinates of top left corner of window. |
admcrae | 2:ebe7029e2825 | 465 | * @param X2, Y2 Coordinates of bottom right corner of window. |
admcrae | 2:ebe7029e2825 | 466 | */ |
admcrae | 2:ebe7029e2825 | 467 | void gfx_ClipWindow(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2); |
admcrae | 2:ebe7029e2825 | 468 | |
admcrae | 2:ebe7029e2825 | 469 | /** |
admcrae | 2:ebe7029e2825 | 470 | * Forces clip window to include the last printed text or image. |
admcrae | 2:ebe7029e2825 | 471 | */ |
admcrae | 0:e314f3b805ed | 472 | void gfx_SetClipRegion(void); |
admcrae | 2:ebe7029e2825 | 473 | |
admcrae | 2:ebe7029e2825 | 474 | |
admcrae | 2:ebe7029e2825 | 475 | |
admcrae | 2:ebe7029e2825 | 476 | |
admcrae | 2:ebe7029e2825 | 477 | |
admcrae | 2:ebe7029e2825 | 478 | /** |
admcrae | 2:ebe7029e2825 | 479 | * Draws line from the origin to (X, Y), using current object color and then moves the origin to the endpoint. This command is most useful when used with gfx_Orbit. |
admcrae | 2:ebe7029e2825 | 480 | */ |
admcrae | 2:ebe7029e2825 | 481 | void gfx_LineTo(uint16_t X, uint16_t Y); |
admcrae | 2:ebe7029e2825 | 482 | |
admcrae | 2:ebe7029e2825 | 483 | /** |
admcrae | 2:ebe7029e2825 | 484 | * Moves the origin to (X, Y). |
admcrae | 2:ebe7029e2825 | 485 | */ |
admcrae | 2:ebe7029e2825 | 486 | void gfx_MoveTo(uint16_t X, uint16_t Y); |
admcrae | 2:ebe7029e2825 | 487 | |
admcrae | 2:ebe7029e2825 | 488 | /** |
admcrae | 2:ebe7029e2825 | 489 | * Calculates the X and Y coordinates relative to the origin, given an angle and distance. |
admcrae | 2:ebe7029e2825 | 490 | * @param Angle Angle in degrees. |
admcrae | 2:ebe7029e2825 | 491 | * @param Distance Distance from origin in pixels. |
admcrae | 2:ebe7029e2825 | 492 | * @param Xdest Pointer to variable where calculated X value will be stored. |
admcrae | 2:ebe7029e2825 | 493 | * @param Ydest Pointer to variable where calculated Y value will be stored. |
admcrae | 2:ebe7029e2825 | 494 | * @return Returns 0. |
admcrae | 2:ebe7029e2825 | 495 | */ |
admcrae | 2:ebe7029e2825 | 496 | uint16_t gfx_Orbit(uint16_t Angle, uint16_t Distance, uint16_t* Xdest, uint16_t* Ydest); |
admcrae | 2:ebe7029e2825 | 497 | |
admcrae | 2:ebe7029e2825 | 498 | |
admcrae | 2:ebe7029e2825 | 499 | /** |
admcrae | 2:ebe7029e2825 | 500 | * Draws button on screen. |
admcrae | 2:ebe7029e2825 | 501 | * @param Up Whether button appears raised (BUTTON_RAISED = 1) or depressed (BUTTON_DEPRESSED = 0). |
admcrae | 2:ebe7029e2825 | 502 | * @param x,y Coordinates of top left corner of button. |
admcrae | 2:ebe7029e2825 | 503 | * @param buttonColour Button color. |
admcrae | 2:ebe7029e2825 | 504 | * @param txtColour Text color. |
admcrae | 2:ebe7029e2825 | 505 | * @param font Text font ID. |
admcrae | 2:ebe7029e2825 | 506 | * @param txtWidth Text width, as multiple of default. |
admcrae | 2:ebe7029e2825 | 507 | * @param txtHeight Text height, as multiple of default. |
admcrae | 2:ebe7029e2825 | 508 | * @param text Null-terminated string with button text. May include newline characters for multiple lines of text in button. |
admcrae | 2:ebe7029e2825 | 509 | */ |
admcrae | 2:ebe7029e2825 | 510 | void gfx_Button(Picaso::ButtonState Up, uint16_t x, uint16_t y, Picaso::Color buttonColour, |
admcrae | 2:ebe7029e2825 | 511 | Picaso::Color txtColour, Picaso::Font font, uint16_t txtWidth, uint16_t txtHeight, char* text); |
admcrae | 2:ebe7029e2825 | 512 | |
admcrae | 2:ebe7029e2825 | 513 | /** |
admcrae | 2:ebe7029e2825 | 514 | * |
admcrae | 2:ebe7029e2825 | 515 | * @param Raised Panel appearance (raised or sunken). |
admcrae | 2:ebe7029e2825 | 516 | * @param X,Y Position of top-left corner of panel. |
admcrae | 2:ebe7029e2825 | 517 | * @param Width Panel width. |
admcrae | 2:ebe7029e2825 | 518 | * @param Height Panel height. |
admcrae | 2:ebe7029e2825 | 519 | * @param Color Panel color. |
admcrae | 2:ebe7029e2825 | 520 | */ |
admcrae | 2:ebe7029e2825 | 521 | void gfx_Panel(Picaso::PanelState Raised, uint16_t X, uint16_t Y, uint16_t Width, uint16_t Height, Picaso::Color Color); |
admcrae | 2:ebe7029e2825 | 522 | |
admcrae | 2:ebe7029e2825 | 523 | /** |
admcrae | 2:ebe7029e2825 | 524 | * Draws horizontal or vertical slider bar on screen. If X2 - X1 > Y2 - Y1, slider is assumed to be horizontal. Otherwise, slider is assumed to be vertical. |
admcrae | 2:ebe7029e2825 | 525 | * @param Mode Slider appearance (sunken, raised, or hidden). |
admcrae | 2:ebe7029e2825 | 526 | * @param X1,Y1 Coordinates of top-left corner of slider. |
admcrae | 2:ebe7029e2825 | 527 | * @param X2,Y2 Coordinates of bottom-right corner of slider. |
admcrae | 2:ebe7029e2825 | 528 | * @param Color Color of slider bar. |
admcrae | 2:ebe7029e2825 | 529 | * @param Scale Sets scale of slider position: slider can have positions from 0 to Scale. |
admcrae | 2:ebe7029e2825 | 530 | * @param Position of slider thumb. If negative, the absolute value is taken. |
admcrae | 5:ec04cd4e98ce | 531 | * @return Unknown--Serial command manual does not specify a return. |
admcrae | 2:ebe7029e2825 | 532 | */ |
admcrae | 2:ebe7029e2825 | 533 | uint16_t gfx_Slider(Picaso::SliderState Mode, uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2, Picaso::Color Color, uint16_t Scale, uint16_t Value); |
admcrae | 2:ebe7029e2825 | 534 | |
admcrae | 2:ebe7029e2825 | 535 | /** |
admcrae | 2:ebe7029e2825 | 536 | * Sets depth of bevel shadow on buttons drawn. |
admcrae | 2:ebe7029e2825 | 537 | * @param Value Shadow depth in pixels (0-4). |
admcrae | 2:ebe7029e2825 | 538 | * @return Previous setting. |
admcrae | 2:ebe7029e2825 | 539 | */ |
admcrae | 2:ebe7029e2825 | 540 | uint16_t gfx_BevelShadow(uint16_t Value); |
admcrae | 2:ebe7029e2825 | 541 | |
admcrae | 2:ebe7029e2825 | 542 | /** |
admcrae | 2:ebe7029e2825 | 543 | * Sets width of bevel on buttons drawn. |
admcrae | 2:ebe7029e2825 | 544 | * @param Value Shadow depth in pixels (0-15). |
admcrae | 2:ebe7029e2825 | 545 | * @return Previous setting. |
admcrae | 2:ebe7029e2825 | 546 | */ |
admcrae | 2:ebe7029e2825 | 547 | uint16_t gfx_BevelWidth(uint16_t Value); |
admcrae | 2:ebe7029e2825 | 548 | |
admcrae | 2:ebe7029e2825 | 549 | /** |
admcrae | 2:ebe7029e2825 | 550 | * Copies a region of the screen and pastes it to another. |
admcrae | 2:ebe7029e2825 | 551 | * @param Xs,Ys Coordinates of top-left corner of region to be copied. |
admcrae | 2:ebe7029e2825 | 552 | * @param Xd,Yd Coordinates of top-left corner of destination region. |
admcrae | 2:ebe7029e2825 | 553 | * @param Width Width of region to be copied. |
admcrae | 2:ebe7029e2825 | 554 | * @param Height Height of region to be copied. |
admcrae | 2:ebe7029e2825 | 555 | */ |
admcrae | 2:ebe7029e2825 | 556 | void gfx_ScreenCopyPaste(uint16_t Xs, uint16_t Ys, uint16_t Xd, uint16_t Yd, uint16_t Width, uint16_t Height); |
admcrae | 2:ebe7029e2825 | 557 | |
admcrae | 2:ebe7029e2825 | 558 | /** |
admcrae | 2:ebe7029e2825 | 559 | * Sets the screen background color. |
admcrae | 2:ebe7029e2825 | 560 | * @return Previous background color. |
admcrae | 2:ebe7029e2825 | 561 | */ |
admcrae | 2:ebe7029e2825 | 562 | Picaso::Color gfx_BGcolour(Picaso::Color Color); |
admcrae | 2:ebe7029e2825 | 563 | |
admcrae | 2:ebe7029e2825 | 564 | |
admcrae | 2:ebe7029e2825 | 565 | /** |
admcrae | 2:ebe7029e2825 | 566 | * Sets the outline color for rectangles and circles. |
admcrae | 2:ebe7029e2825 | 567 | * @return Previous outline color. |
admcrae | 2:ebe7029e2825 | 568 | */ |
admcrae | 2:ebe7029e2825 | 569 | Picaso::Color gfx_OutlineColour(Picaso::Color Color); |
admcrae | 2:ebe7029e2825 | 570 | |
admcrae | 2:ebe7029e2825 | 571 | /** |
admcrae | 2:ebe7029e2825 | 572 | * Sets display contrast or turns it on and off, depending on display model. |
admcrae | 2:ebe7029e2825 | 573 | * @param Contrast Constrast setting. For most displays, 0 = display off, non-zero = display on. See Serial Command Manual for exceptions. |
admcrae | 2:ebe7029e2825 | 574 | * @return Previous setting. |
admcrae | 2:ebe7029e2825 | 575 | */ |
admcrae | 2:ebe7029e2825 | 576 | uint16_t gfx_Contrast(uint16_t Contrast); |
admcrae | 2:ebe7029e2825 | 577 | |
admcrae | 2:ebe7029e2825 | 578 | /** |
admcrae | 2:ebe7029e2825 | 579 | * Sets inter-frame delay, in milliseconds, for media_Video command. |
admcrae | 2:ebe7029e2825 | 580 | * @return Previous setting. |
admcrae | 2:ebe7029e2825 | 581 | */ |
admcrae | 2:ebe7029e2825 | 582 | uint16_t gfx_FrameDelay(uint16_t Msec); |
admcrae | 2:ebe7029e2825 | 583 | |
admcrae | 2:ebe7029e2825 | 584 | /** |
admcrae | 2:ebe7029e2825 | 585 | * Sets line drawing pattern. |
admcrae | 2:ebe7029e2825 | 586 | * @param Pattern Word containing bit pattern; each set bit corresponds to a pixel turned off. |
admcrae | 2:ebe7029e2825 | 587 | * @return Previous pattern. |
admcrae | 2:ebe7029e2825 | 588 | */ |
admcrae | 2:ebe7029e2825 | 589 | uint16_t gfx_LinePattern(uint16_t Pattern); |
admcrae | 2:ebe7029e2825 | 590 | |
admcrae | 2:ebe7029e2825 | 591 | /** |
admcrae | 2:ebe7029e2825 | 592 | * Sets screen mode (portait, landscape, and reversed). |
admcrae | 2:ebe7029e2825 | 593 | * @return Previous screen mode. |
admcrae | 2:ebe7029e2825 | 594 | */ |
admcrae | 2:ebe7029e2825 | 595 | Picaso::ScreenMode gfx_ScreenMode(Picaso::ScreenMode ScreenMode); |
admcrae | 2:ebe7029e2825 | 596 | |
admcrae | 2:ebe7029e2825 | 597 | /** |
admcrae | 2:ebe7029e2825 | 598 | * Turns transparency ON or OFF. Setting is reset to OFF after image or video command. |
admcrae | 2:ebe7029e2825 | 599 | * @return Previous setting. |
admcrae | 2:ebe7029e2825 | 600 | */ |
admcrae | 2:ebe7029e2825 | 601 | uint16_t gfx_Transparency(uint16_t OnOff); |
admcrae | 2:ebe7029e2825 | 602 | |
admcrae | 2:ebe7029e2825 | 603 | /** |
admcrae | 2:ebe7029e2825 | 604 | * Sets color to be made transparent. |
admcrae | 2:ebe7029e2825 | 605 | * @return Previous setting. |
admcrae | 2:ebe7029e2825 | 606 | */ |
admcrae | 2:ebe7029e2825 | 607 | Picaso::Color gfx_TransparentColour(Picaso::Color Color); |
admcrae | 2:ebe7029e2825 | 608 | |
admcrae | 2:ebe7029e2825 | 609 | /** |
admcrae | 2:ebe7029e2825 | 610 | * Sets one of several graphics attributes. Most attributes can be set by other functions. |
admcrae | 2:ebe7029e2825 | 611 | * @param Func Attribute to set. |
admcrae | 2:ebe7029e2825 | 612 | * @param Value Value to set parameter. See GFXSetFunc definition for more information. |
admcrae | 2:ebe7029e2825 | 613 | */ |
admcrae | 2:ebe7029e2825 | 614 | void gfx_Set(Picaso::GFXSetFunc Func, uint16_t Value); |
admcrae | 2:ebe7029e2825 | 615 | |
admcrae | 2:ebe7029e2825 | 616 | /** |
admcrae | 2:ebe7029e2825 | 617 | * Returns a graphics attribute. |
admcrae | 2:ebe7029e2825 | 618 | * @return Value of attribute. See GFXGetMode definition for more information. |
admcrae | 2:ebe7029e2825 | 619 | */ |
admcrae | 2:ebe7029e2825 | 620 | uint16_t gfx_Get(Picaso::GFXGetMode Mode); |
admcrae | 2:ebe7029e2825 | 621 | |
admcrae | 2:ebe7029e2825 | 622 | |
admcrae | 2:ebe7029e2825 | 623 | // Media (SD card) commands: |
admcrae | 2:ebe7029e2825 | 624 | |
admcrae | 2:ebe7029e2825 | 625 | /** |
admcrae | 2:ebe7029e2825 | 626 | * Initializes SD card. |
admcrae | 2:ebe7029e2825 | 627 | * @return 1 if successful, 0 otherwise. |
admcrae | 2:ebe7029e2825 | 628 | */ |
admcrae | 2:ebe7029e2825 | 629 | uint16_t media_Init(void); |
admcrae | 2:ebe7029e2825 | 630 | |
admcrae | 2:ebe7029e2825 | 631 | /** |
admcrae | 2:ebe7029e2825 | 632 | * Sets media memory address to a non-sector-aligned byte address in the SD card. |
admcrae | 2:ebe7029e2825 | 633 | * @param HiWord Upper 2 bytes of address. |
admcrae | 2:ebe7029e2825 | 634 | * @param LoWord Lower 2 bytes of address. |
admcrae | 2:ebe7029e2825 | 635 | */ |
admcrae | 2:ebe7029e2825 | 636 | void media_SetAdd(uint16_t HiWord, uint16_t LoWord); |
admcrae | 2:ebe7029e2825 | 637 | |
admcrae | 2:ebe7029e2825 | 638 | /** |
admcrae | 2:ebe7029e2825 | 639 | * Sets media memory address to a sector in the SD card. |
admcrae | 2:ebe7029e2825 | 640 | * @param HiWord Upper 2 bytes of address. |
admcrae | 2:ebe7029e2825 | 641 | * @param LoWord Lower 2 bytes of address. |
admcrae | 2:ebe7029e2825 | 642 | */ |
admcrae | 2:ebe7029e2825 | 643 | void media_SetSector(uint16_t HiWord, uint16_t LoWord); |
admcrae | 2:ebe7029e2825 | 644 | |
admcrae | 2:ebe7029e2825 | 645 | /** |
admcrae | 2:ebe7029e2825 | 646 | * Reads sector of SD card at address previously set by media_SetSector. Afterwards, the sector address is incremented by one. |
admcrae | 2:ebe7029e2825 | 647 | * @param SectorIn Array to hold sector data (512 bytes). |
admcrae | 2:ebe7029e2825 | 648 | * @return 1 if successful, 0 if failed. |
admcrae | 2:ebe7029e2825 | 649 | */ |
admcrae | 2:ebe7029e2825 | 650 | uint16_t media_RdSector(char* SectorIn); |
admcrae | 2:ebe7029e2825 | 651 | |
admcrae | 2:ebe7029e2825 | 652 | /** |
admcrae | 2:ebe7029e2825 | 653 | * Writes sector of SD card at address previously set by media_SetSector. Afterwards, the sector address is incremented by one. |
admcrae | 2:ebe7029e2825 | 654 | * @param SectorOut Array with sector data to write (512 bytes). |
admcrae | 2:ebe7029e2825 | 655 | * @return 1 if successful, 0 if failed. |
admcrae | 2:ebe7029e2825 | 656 | */ |
admcrae | 2:ebe7029e2825 | 657 | uint16_t media_WrSector(char* SectorOut); |
admcrae | 2:ebe7029e2825 | 658 | |
admcrae | 2:ebe7029e2825 | 659 | /** |
admcrae | 2:ebe7029e2825 | 660 | * Reads byte from SD card at address previously set by media_SetAdd. Afterwards, the byte address is incremented by one. |
admcrae | 2:ebe7029e2825 | 661 | * @return Byte read (lower 8 bits of word returned). |
admcrae | 2:ebe7029e2825 | 662 | */ |
admcrae | 2:ebe7029e2825 | 663 | uint16_t media_ReadByte(void); |
admcrae | 2:ebe7029e2825 | 664 | |
admcrae | 2:ebe7029e2825 | 665 | /** |
admcrae | 2:ebe7029e2825 | 666 | * Writes byte to SD card at address previously set by media_SetAdd. Afterwards, the byte address is incremented by one. |
admcrae | 2:ebe7029e2825 | 667 | * @param Byte to write (in lower 8 bits of argument). |
admcrae | 2:ebe7029e2825 | 668 | * @return Nonzero if successful, 0 if failed. |
admcrae | 2:ebe7029e2825 | 669 | */ |
admcrae | 2:ebe7029e2825 | 670 | uint16_t media_WriteByte(uint16_t Byte); |
admcrae | 2:ebe7029e2825 | 671 | |
admcrae | 2:ebe7029e2825 | 672 | /** |
admcrae | 2:ebe7029e2825 | 673 | * Reads word from SD card at address previously set by media_SetAdd. Afterwards, the byte address is incremented by one. |
admcrae | 2:ebe7029e2825 | 674 | * @return Word read. |
admcrae | 2:ebe7029e2825 | 675 | */ |
admcrae | 2:ebe7029e2825 | 676 | uint16_t media_ReadWord(void); |
admcrae | 2:ebe7029e2825 | 677 | |
admcrae | 2:ebe7029e2825 | 678 | /** |
admcrae | 2:ebe7029e2825 | 679 | * Writes byte to SD card at address previously set by media_SetAdd. Afterwards, the byte address is incremented by one. |
admcrae | 2:ebe7029e2825 | 680 | * @param Word to write. |
admcrae | 2:ebe7029e2825 | 681 | * @return Nonzero if successful, 0 if failed. |
admcrae | 2:ebe7029e2825 | 682 | */ |
admcrae | 2:ebe7029e2825 | 683 | uint16_t media_WriteWord(uint16_t Word); |
admcrae | 2:ebe7029e2825 | 684 | |
admcrae | 2:ebe7029e2825 | 685 | /** |
admcrae | 2:ebe7029e2825 | 686 | * Finalizes writing to sector. This is automatically called if writing rolls over into the next sector. |
admcrae | 2:ebe7029e2825 | 687 | * @return Nonzero if successful, 0 of failed. |
admcrae | 2:ebe7029e2825 | 688 | */ |
admcrae | 2:ebe7029e2825 | 689 | uint16_t media_Flush(void); |
admcrae | 2:ebe7029e2825 | 690 | |
admcrae | 2:ebe7029e2825 | 691 | /** |
admcrae | 2:ebe7029e2825 | 692 | * Displays RAW image from SD card at at the address specified by one of the set address commands. |
admcrae | 2:ebe7029e2825 | 693 | * @param X,Y Coordinates of top left position of image on screen. |
admcrae | 2:ebe7029e2825 | 694 | */ |
admcrae | 2:ebe7029e2825 | 695 | void media_Image(uint16_t X, uint16_t Y); |
admcrae | 2:ebe7029e2825 | 696 | |
admcrae | 2:ebe7029e2825 | 697 | /** |
admcrae | 2:ebe7029e2825 | 698 | * Displays RAW video clip from SD card at at the address specified by one of the set address commands. All other processes on display are blocked until video is finished. |
admcrae | 2:ebe7029e2825 | 699 | * @param X,Y Coordinates of top left position of video on screen. |
admcrae | 2:ebe7029e2825 | 700 | */ |
admcrae | 2:ebe7029e2825 | 701 | void media_Video(uint16_t X, uint16_t Y); |
admcrae | 2:ebe7029e2825 | 702 | |
admcrae | 2:ebe7029e2825 | 703 | /** |
admcrae | 2:ebe7029e2825 | 704 | * Displays individual frame of RAW video clip from SD card at at the address specified by one of the set address commands. |
admcrae | 2:ebe7029e2825 | 705 | * @param X,Y Coordinates of top left position of frame on screen. |
admcrae | 2:ebe7029e2825 | 706 | * @param Framenumber Number of frame to be displayed. |
admcrae | 2:ebe7029e2825 | 707 | */ |
admcrae | 2:ebe7029e2825 | 708 | void media_VideoFrame(uint16_t X, uint16_t Y, uint16_t Framenumber); |
admcrae | 2:ebe7029e2825 | 709 | |
admcrae | 2:ebe7029e2825 | 710 | |
admcrae | 2:ebe7029e2825 | 711 | // File commands: |
admcrae | 2:ebe7029e2825 | 712 | |
admcrae | 2:ebe7029e2825 | 713 | /** |
admcrae | 2:ebe7029e2825 | 714 | * Returns most recent file operation error code. |
admcrae | 2:ebe7029e2825 | 715 | */ |
admcrae | 2:ebe7029e2825 | 716 | Picaso::FileError file_Error(void); |
admcrae | 2:ebe7029e2825 | 717 | |
admcrae | 2:ebe7029e2825 | 718 | /** |
admcrae | 2:ebe7029e2825 | 719 | * Returns the number of files that match the given (null-terminated) Filename string. In the string, '*' can represent any combination of allowable characters, |
admcrae | 2:ebe7029e2825 | 720 | * while '?' matches any single allowable character. Filenames must be 8.3 format. |
admcrae | 2:ebe7029e2825 | 721 | */ |
admcrae | 2:ebe7029e2825 | 722 | uint16_t file_Count(char * Filename); |
admcrae | 2:ebe7029e2825 | 723 | |
admcrae | 2:ebe7029e2825 | 724 | /** |
admcrae | 2:ebe7029e2825 | 725 | * Prints on the screen the names of files that match the given (null-terminated) Filename string. In the string, '*' can represent any combination of allowable characters, |
admcrae | 2:ebe7029e2825 | 726 | * while '?' matches any single allowable character. Filenames must be 8.3 format. |
admcrae | 2:ebe7029e2825 | 727 | * @return Number of matching files found. |
admcrae | 2:ebe7029e2825 | 728 | */ |
admcrae | 2:ebe7029e2825 | 729 | uint16_t file_Dir(char * Filename); |
admcrae | 2:ebe7029e2825 | 730 | |
admcrae | 2:ebe7029e2825 | 731 | /** |
admcrae | 2:ebe7029e2825 | 732 | * Prints on the screen the name of the first file that matches the given (null-terminated) Filename string. In the string, '*' can |
admcrae | 2:ebe7029e2825 | 733 | * represent any combination of allowable characters, while '?' matches any single allowable character. Filenames must be 8.3 format. |
admcrae | 2:ebe7029e2825 | 734 | * @return 1 if at least one matching file is found, 0 otherwise. |
admcrae | 2:ebe7029e2825 | 735 | */ |
admcrae | 2:ebe7029e2825 | 736 | uint16_t file_FindFirst(char *Filename); |
admcrae | 2:ebe7029e2825 | 737 | |
admcrae | 2:ebe7029e2825 | 738 | /** |
admcrae | 2:ebe7029e2825 | 739 | * Finds the name of the first file that matches the given (null-terminated) Filename string. In the string, '*' can |
admcrae | 2:ebe7029e2825 | 740 | * represent any combination of allowable characters, while '?' matches any single allowable character. Filenames must be 8.3 format. |
admcrae | 2:ebe7029e2825 | 741 | * @param Filename String containing filename pattern to be matched. |
admcrae | 2:ebe7029e2825 | 742 | * @param StringIn Character buffer to hold the returned filename. Returned string is not null-terminated. |
admcrae | 2:ebe7029e2825 | 743 | * @return Length of returned filename string. |
admcrae | 2:ebe7029e2825 | 744 | */ |
admcrae | 2:ebe7029e2825 | 745 | uint16_t file_FindFirstRet(char *Filename, char* StringIn); |
admcrae | 2:ebe7029e2825 | 746 | |
admcrae | 2:ebe7029e2825 | 747 | /** |
admcrae | 2:ebe7029e2825 | 748 | * Prints on the screen the name of the next file to match the pattern provided in a previous call to file_FindFirst or file_FindFirstRet. |
admcrae | 2:ebe7029e2825 | 749 | * @return 1 if at least one matching file is found, 0 otherwise. |
admcrae | 2:ebe7029e2825 | 750 | */ |
admcrae | 2:ebe7029e2825 | 751 | uint16_t file_FindNext(void); |
admcrae | 2:ebe7029e2825 | 752 | |
admcrae | 2:ebe7029e2825 | 753 | /** |
admcrae | 2:ebe7029e2825 | 754 | * Finds the name of the next file to match the pattern provided in a previous call to file_FindFirst or file_FindFirstRet. |
admcrae | 2:ebe7029e2825 | 755 | * @param StringIn Character buffer to hold the returned filename. Returned string is not null-terminated. |
admcrae | 2:ebe7029e2825 | 756 | * @return Length of returned filename string. |
admcrae | 2:ebe7029e2825 | 757 | */ |
admcrae | 2:ebe7029e2825 | 758 | uint16_t file_FindNextRet(char * StringIn); |
admcrae | 2:ebe7029e2825 | 759 | |
admcrae | 2:ebe7029e2825 | 760 | /** |
admcrae | 2:ebe7029e2825 | 761 | * Returns whether a file with a given (null-terminated) filename exists. |
admcrae | 2:ebe7029e2825 | 762 | * @return 1 if found, 0 if not. |
admcrae | 2:ebe7029e2825 | 763 | */ |
admcrae | 2:ebe7029e2825 | 764 | uint16_t file_Exists(char *Filename); |
admcrae | 2:ebe7029e2825 | 765 | |
admcrae | 2:ebe7029e2825 | 766 | /** |
admcrae | 2:ebe7029e2825 | 767 | * Opens file. |
admcrae | 2:ebe7029e2825 | 768 | * @param Filename Null-terminated string with name of file. |
admcrae | 2:ebe7029e2825 | 769 | * @param Mode 'r' for read, 'w' for write, 'a' for append. |
admcrae | 2:ebe7029e2825 | 770 | * @return File handle (if file exists). |
admcrae | 2:ebe7029e2825 | 771 | */ |
admcrae | 2:ebe7029e2825 | 772 | uint16_t file_Open(char * Filename, char Mode); |
admcrae | 2:ebe7029e2825 | 773 | |
admcrae | 2:ebe7029e2825 | 774 | /** |
admcrae | 2:ebe7029e2825 | 775 | * Closes file. |
admcrae | 2:ebe7029e2825 | 776 | * @param Handle File handle. |
admcrae | 2:ebe7029e2825 | 777 | * @return 1 if successfully closed, 0 if not. |
admcrae | 2:ebe7029e2825 | 778 | */ |
admcrae | 2:ebe7029e2825 | 779 | uint16_t file_Close(uint16_t Handle); |
admcrae | 2:ebe7029e2825 | 780 | |
admcrae | 2:ebe7029e2825 | 781 | /** |
admcrae | 2:ebe7029e2825 | 782 | * Reads bytes from file. |
admcrae | 2:ebe7029e2825 | 783 | * @param Data Buffer to contain data read. |
admcrae | 2:ebe7029e2825 | 784 | * @param Size Number of bytes to read. |
admcrae | 2:ebe7029e2825 | 785 | * @param Handle File handle. |
admcrae | 2:ebe7029e2825 | 786 | * @return Number of bytes read. |
admcrae | 2:ebe7029e2825 | 787 | */ |
admcrae | 2:ebe7029e2825 | 788 | uint16_t file_Read(char* Data, uint16_t Size, uint16_t Handle); |
admcrae | 2:ebe7029e2825 | 789 | |
admcrae | 2:ebe7029e2825 | 790 | /** |
admcrae | 2:ebe7029e2825 | 791 | * Sets internal file pointer to a specified position in a file. |
admcrae | 2:ebe7029e2825 | 792 | * @param Handle File handle. |
admcrae | 2:ebe7029e2825 | 793 | * @param HiWord Upper 16 bits of pointer. |
admcrae | 2:ebe7029e2825 | 794 | * @param LoWord Lower 16 bits of pointer. |
admcrae | 2:ebe7029e2825 | 795 | * @return 1 if successful, 0 if not. |
admcrae | 2:ebe7029e2825 | 796 | */ |
admcrae | 2:ebe7029e2825 | 797 | uint16_t file_Seek(uint16_t Handle, uint16_t HiWord, uint16_t LoWord); |
admcrae | 2:ebe7029e2825 | 798 | |
admcrae | 2:ebe7029e2825 | 799 | /** |
admcrae | 2:ebe7029e2825 | 800 | * Sets file pointer to a particular record within a file (e.g. a record size of 1000 and an index of 9 will set the pointer to position 9000). |
admcrae | 2:ebe7029e2825 | 801 | * @param Handle File handle. |
admcrae | 2:ebe7029e2825 | 802 | * @param HiSize Upper 16 bits of record size. |
admcrae | 2:ebe7029e2825 | 803 | * @param LoSize Lower 16 bits of record size. |
admcrae | 2:ebe7029e2825 | 804 | * @param Recordnum Index of desired record. |
admcrae | 2:ebe7029e2825 | 805 | * @return 1 if successful, 0 if not. |
admcrae | 2:ebe7029e2825 | 806 | */ |
admcrae | 2:ebe7029e2825 | 807 | uint16_t file_Index(uint16_t Handle, uint16_t HiSize, uint16_t LoSize, uint16_t Recordnum); |
admcrae | 2:ebe7029e2825 | 808 | |
admcrae | 2:ebe7029e2825 | 809 | /** |
admcrae | 2:ebe7029e2825 | 810 | * Returns the current position of a file pointer. |
admcrae | 2:ebe7029e2825 | 811 | * @param Handle File handle. |
admcrae | 2:ebe7029e2825 | 812 | * @param HiWord Pointer to word in which to store the upper 16 bits of the returned pointer value. |
admcrae | 2:ebe7029e2825 | 813 | * @param LoWord Pointer to word in which to store the lower 16 bits of the returned pointer value. |
admcrae | 2:ebe7029e2825 | 814 | * @return 1 if successful, 0 if not. |
admcrae | 2:ebe7029e2825 | 815 | */ |
admcrae | 2:ebe7029e2825 | 816 | uint16_t file_Tell(uint16_t Handle, uint16_t * HiWord, uint16_t * LoWord); |
admcrae | 2:ebe7029e2825 | 817 | |
admcrae | 2:ebe7029e2825 | 818 | /** |
admcrae | 2:ebe7029e2825 | 819 | * Writes bytes to file. |
admcrae | 2:ebe7029e2825 | 820 | * @param Size Number of bytes to be written. |
admcrae | 2:ebe7029e2825 | 821 | * @param Source Array containing data to be written. |
admcrae | 2:ebe7029e2825 | 822 | * @param Handle File handle. |
admcrae | 2:ebe7029e2825 | 823 | * @return Number of bytes written. |
admcrae | 2:ebe7029e2825 | 824 | */ |
admcrae | 2:ebe7029e2825 | 825 | uint16_t file_Write(uint16_t Size, char* Source, uint16_t Handle); |
admcrae | 2:ebe7029e2825 | 826 | |
admcrae | 2:ebe7029e2825 | 827 | /** |
admcrae | 2:ebe7029e2825 | 828 | * Returns the size of a file. |
admcrae | 2:ebe7029e2825 | 829 | * @param Handle File handle. |
admcrae | 2:ebe7029e2825 | 830 | * @param HiWord Pointer to variable in which to store the upper 16 bits of the returned file size. |
admcrae | 2:ebe7029e2825 | 831 | * @param LoWord Pointer to variable in which to store the lower 16 bits of the returned file size. |
admcrae | 2:ebe7029e2825 | 832 | * @return 1 if succesful, 0 if not. |
admcrae | 2:ebe7029e2825 | 833 | */ |
admcrae | 2:ebe7029e2825 | 834 | uint16_t file_Size(uint16_t Handle, uint16_t * HiWord, uint16_t * LoWord); |
admcrae | 2:ebe7029e2825 | 835 | |
admcrae | 2:ebe7029e2825 | 836 | /** |
admcrae | 2:ebe7029e2825 | 837 | * Displays image from file on screen. If the file contains more than one image, each can be accessed with the file_Seek command. |
admcrae | 2:ebe7029e2825 | 838 | * @param X,Y coordinates of top-left corner of image on display. |
admcrae | 2:ebe7029e2825 | 839 | * @param Handle File handle. |
admcrae | 2:ebe7029e2825 | 840 | * @return File error code (see file_Error). |
admcrae | 2:ebe7029e2825 | 841 | */ |
admcrae | 2:ebe7029e2825 | 842 | uint16_t file_Image(uint16_t X, uint16_t Y, uint16_t Handle); |
admcrae | 2:ebe7029e2825 | 843 | |
admcrae | 2:ebe7029e2825 | 844 | /** |
admcrae | 2:ebe7029e2825 | 845 | * Captures an area of the screen and writes it to a file. |
admcrae | 2:ebe7029e2825 | 846 | * @param X,Y Coordinates of top-left corner of area to be captured. |
admcrae | 2:ebe7029e2825 | 847 | * @param Width, Height Width and height of area to be captured. |
admcrae | 2:ebe7029e2825 | 848 | * @param Handle Handle of file to be written. Image is written at the current pointer location in the file, so multiple images can be captured to the same file. |
admcrae | 2:ebe7029e2825 | 849 | * @return 0 if successful. |
admcrae | 2:ebe7029e2825 | 850 | */ |
admcrae | 2:ebe7029e2825 | 851 | uint16_t file_ScreenCapture(uint16_t X, uint16_t Y, uint16_t Width, uint16_t Height, uint16_t Handle); |
admcrae | 2:ebe7029e2825 | 852 | |
admcrae | 2:ebe7029e2825 | 853 | /** |
admcrae | 2:ebe7029e2825 | 854 | * Writes character to file. |
admcrae | 2:ebe7029e2825 | 855 | * @param Character Character to be written. |
admcrae | 2:ebe7029e2825 | 856 | * @param Handle File handle. |
admcrae | 2:ebe7029e2825 | 857 | * @return Number of bytes successfully written. |
admcrae | 2:ebe7029e2825 | 858 | */ |
admcrae | 2:ebe7029e2825 | 859 | uint16_t file_PutC(char Character, uint16_t Handle); |
admcrae | 2:ebe7029e2825 | 860 | |
admcrae | 2:ebe7029e2825 | 861 | /** |
admcrae | 2:ebe7029e2825 | 862 | * Reads character from file. |
admcrae | 2:ebe7029e2825 | 863 | */ |
admcrae | 2:ebe7029e2825 | 864 | char file_GetC(uint16_t Handle); |
admcrae | 2:ebe7029e2825 | 865 | |
admcrae | 2:ebe7029e2825 | 866 | /** |
admcrae | 2:ebe7029e2825 | 867 | * Writes word (2 bytes) to file. |
admcrae | 2:ebe7029e2825 | 868 | * @return Number of bytes successfully written. |
admcrae | 2:ebe7029e2825 | 869 | */ |
admcrae | 2:ebe7029e2825 | 870 | uint16_t file_PutW(uint16_t Word, uint16_t Handle); |
admcrae | 2:ebe7029e2825 | 871 | |
admcrae | 2:ebe7029e2825 | 872 | /** |
admcrae | 2:ebe7029e2825 | 873 | * Reads word from file. |
admcrae | 2:ebe7029e2825 | 874 | */ |
admcrae | 2:ebe7029e2825 | 875 | uint16_t file_GetW(uint16_t Handle); |
admcrae | 2:ebe7029e2825 | 876 | |
admcrae | 2:ebe7029e2825 | 877 | /** |
admcrae | 2:ebe7029e2825 | 878 | * Writes (null-terminated) string to file. |
admcrae | 2:ebe7029e2825 | 879 | * @return Number of characters written (excluding null character). |
admcrae | 2:ebe7029e2825 | 880 | */ |
admcrae | 2:ebe7029e2825 | 881 | uint16_t file_PutS(char * StringOut, uint16_t Handle); |
admcrae | 2:ebe7029e2825 | 882 | |
admcrae | 2:ebe7029e2825 | 883 | /** |
admcrae | 2:ebe7029e2825 | 884 | * Reads line of text from file. Characters are read until a newline or eof is reached, or the specified maximum size is reached. Returned string is not null-terminated. |
admcrae | 2:ebe7029e2825 | 885 | * @param StringIn Character array in which to store read string. |
admcrae | 2:ebe7029e2825 | 886 | * @param Size maximum number of characters to be read. |
admcrae | 2:ebe7029e2825 | 887 | * @param Handle File handle. |
admcrae | 2:ebe7029e2825 | 888 | * @return Number of characters read. |
admcrae | 2:ebe7029e2825 | 889 | */ |
admcrae | 2:ebe7029e2825 | 890 | uint16_t file_GetS(char * StringIn, uint16_t Size, uint16_t Handle); |
admcrae | 2:ebe7029e2825 | 891 | |
admcrae | 2:ebe7029e2825 | 892 | /** |
admcrae | 2:ebe7029e2825 | 893 | * Deletes file from disk. |
admcrae | 2:ebe7029e2825 | 894 | * @param Filename Name of file to be erased. |
admcrae | 2:ebe7029e2825 | 895 | * @return 1 if successful, 0 if not. |
admcrae | 2:ebe7029e2825 | 896 | */ |
admcrae | 2:ebe7029e2825 | 897 | uint16_t file_Erase(char * Filename); |
admcrae | 2:ebe7029e2825 | 898 | |
admcrae | 2:ebe7029e2825 | 899 | /** |
admcrae | 2:ebe7029e2825 | 900 | * Resets file pointer to beginning of file. |
admcrae | 2:ebe7029e2825 | 901 | * @return 1 if successful, 0 if not. |
admcrae | 2:ebe7029e2825 | 902 | */ |
admcrae | 2:ebe7029e2825 | 903 | uint16_t file_Rewind(uint16_t Handle); |
admcrae | 2:ebe7029e2825 | 904 | |
admcrae | 2:ebe7029e2825 | 905 | /** |
admcrae | 2:ebe7029e2825 | 906 | * Loads 4DGL function (.4FN) or program (.4XE) from file to memory. |
admcrae | 2:ebe7029e2825 | 907 | * @return Pointer/handle to loaded function. |
admcrae | 2:ebe7029e2825 | 908 | */ |
admcrae | 2:ebe7029e2825 | 909 | uint16_t file_LoadFunction(char *Filename); |
admcrae | 2:ebe7029e2825 | 910 | |
admcrae | 2:ebe7029e2825 | 911 | /** |
admcrae | 2:ebe7029e2825 | 912 | * Calls a previously-loaded function or program. |
admcrae | 2:ebe7029e2825 | 913 | * @param Handle Function handle previously returned by file_LoadFunction. |
admcrae | 2:ebe7029e2825 | 914 | * @param ArgCount Number of arguments passed to function (0-6). |
admcrae | 2:ebe7029e2825 | 915 | * @param Args array containing arguments to be passed to function. |
admcrae | 2:ebe7029e2825 | 916 | * @return Value returned by the "main" function. |
admcrae | 2:ebe7029e2825 | 917 | */ |
admcrae | 2:ebe7029e2825 | 918 | uint16_t file_CallFunction(uint16_t Handle, uint16_t ArgCount, uint16_t* Args); |
admcrae | 2:ebe7029e2825 | 919 | |
admcrae | 2:ebe7029e2825 | 920 | /** |
admcrae | 2:ebe7029e2825 | 921 | * Runs a 4DGL program from a file. This is similar to file_Execute, but afterwards, all memory allocations are released (but not stack and global memory. |
admcrae | 2:ebe7029e2825 | 922 | * Prior to execution, strings may be loaded with the writeString command. |
admcrae | 2:ebe7029e2825 | 923 | * @param Filename Null-terminated string containing name of file containing program. |
admcrae | 2:ebe7029e2825 | 924 | * @param ArgCount Number of arguments to be passed to program. |
admcrae | 2:ebe7029e2825 | 925 | * @param Args Array of arguments to be passed to program. |
admcrae | 2:ebe7029e2825 | 926 | * @return Value returned by program. |
admcrae | 2:ebe7029e2825 | 927 | */ |
admcrae | 2:ebe7029e2825 | 928 | uint16_t file_Run(char *Filename, uint16_t ArgCount, uint16_t* Args); |
admcrae | 2:ebe7029e2825 | 929 | |
admcrae | 2:ebe7029e2825 | 930 | /** |
admcrae | 2:ebe7029e2825 | 931 | * Runs a 4DGL program from a file. This is similar to file_Run, except all memory allocations are retained. |
admcrae | 2:ebe7029e2825 | 932 | * Prior to execution, strings may be loaded with the writeString command. |
admcrae | 2:ebe7029e2825 | 933 | * @param Filename Null-terminated string containing name of file containing program. |
admcrae | 2:ebe7029e2825 | 934 | * @param ArgCount Number of arguments to be passed to program. |
admcrae | 2:ebe7029e2825 | 935 | * @param Args Array of arguments to be passed to program. |
admcrae | 2:ebe7029e2825 | 936 | * @return Value returned by program. |
admcrae | 2:ebe7029e2825 | 937 | */ |
admcrae | 2:ebe7029e2825 | 938 | uint16_t file_Exec(char *Filename, uint16_t ArgCount, uint16_t* Args); |
admcrae | 2:ebe7029e2825 | 939 | |
admcrae | 2:ebe7029e2825 | 940 | /** |
admcrae | 2:ebe7029e2825 | 941 | * Loads image control file and associated image file. See Serial Command Manual for more information. |
admcrae | 2:ebe7029e2825 | 942 | * @param Datname String containing control list filename (.dat). |
admcrae | 2:ebe7029e2825 | 943 | * @param GCIName String containing image filename (.gci). |
admcrae | 2:ebe7029e2825 | 944 | * @param Mode Mode of operation (0-2). |
admcrae | 2:ebe7029e2825 | 945 | */ |
admcrae | 2:ebe7029e2825 | 946 | uint16_t file_LoadImageControl(char *Datname, char *GCIName, uint16_t Mode); |
admcrae | 2:ebe7029e2825 | 947 | |
admcrae | 2:ebe7029e2825 | 948 | /** |
admcrae | 2:ebe7029e2825 | 949 | * Mounts the FAT file system. This must be called before any other file commands. |
admcrae | 2:ebe7029e2825 | 950 | * @return Non-zero if successful, 0 otherwise. |
admcrae | 2:ebe7029e2825 | 951 | */ |
admcrae | 2:ebe7029e2825 | 952 | uint16_t file_Mount(void); |
admcrae | 2:ebe7029e2825 | 953 | |
admcrae | 2:ebe7029e2825 | 954 | /** |
admcrae | 2:ebe7029e2825 | 955 | * Unmounts the FAT file system. |
admcrae | 2:ebe7029e2825 | 956 | */ |
admcrae | 2:ebe7029e2825 | 957 | void file_Unmount(void); |
admcrae | 2:ebe7029e2825 | 958 | |
admcrae | 2:ebe7029e2825 | 959 | /** |
admcrae | 2:ebe7029e2825 | 960 | * Plays .wav audio file. |
admcrae | 2:ebe7029e2825 | 961 | * @return If successful, number of blocks to play. If not, an error code (see command manual). |
admcrae | 2:ebe7029e2825 | 962 | */ |
admcrae | 2:ebe7029e2825 | 963 | uint16_t file_PlayWAV(char * Filename); |
admcrae | 2:ebe7029e2825 | 964 | |
admcrae | 2:ebe7029e2825 | 965 | /** |
admcrae | 2:ebe7029e2825 | 966 | * Loads string to memory to be used by a 4DGL program/function. |
admcrae | 2:ebe7029e2825 | 967 | * @param Handle Pointer to location where string is to be loaded. Initial call should used 0; each subsequent call should use the pointer returned by the previous call. |
admcrae | 2:ebe7029e2825 | 968 | * @param StringOut Null-terminated string to be loaded. |
admcrae | 2:ebe7029e2825 | 969 | * @return Pointer to location where string has been loaded. |
admcrae | 2:ebe7029e2825 | 970 | */ |
admcrae | 2:ebe7029e2825 | 971 | uint16_t writeString(uint16_t Handle, char * StringOut); |
admcrae | 2:ebe7029e2825 | 972 | |
admcrae | 2:ebe7029e2825 | 973 | /** |
admcrae | 2:ebe7029e2825 | 974 | * Reads string which has been written by a 4DGL program/function. The location is initially written with the writeString command, the pointer is passed to the program |
admcrae | 2:ebe7029e2825 | 975 | * (which can modify it), and the result is read with this function. |
admcrae | 2:ebe7029e2825 | 976 | * @param Handle Pointer to string location. This is the same value passed to writeString when the space was initially written. |
admcrae | 2:ebe7029e2825 | 977 | * @param StringIn Character array in which to store the returned string. |
admcrae | 5:ec04cd4e98ce | 978 | * @return Unknown--command manual does not specify a return. |
admcrae | 2:ebe7029e2825 | 979 | */ |
admcrae | 2:ebe7029e2825 | 980 | uint16_t readString(uint16_t Handle, char * StringIn); |
admcrae | 2:ebe7029e2825 | 981 | |
admcrae | 2:ebe7029e2825 | 982 | |
admcrae | 2:ebe7029e2825 | 983 | // Sound playback commands: |
admcrae | 2:ebe7029e2825 | 984 | |
admcrae | 2:ebe7029e2825 | 985 | /** |
admcrae | 2:ebe7029e2825 | 986 | * Sets sound playback volume. |
admcrae | 2:ebe7029e2825 | 987 | * @param Volume Volume setting (8-127). Any level outside the allowed range will be changed to the closest value within the range. |
admcrae | 2:ebe7029e2825 | 988 | */ |
admcrae | 2:ebe7029e2825 | 989 | void snd_Volume(uint16_t Volume); |
admcrae | 2:ebe7029e2825 | 990 | |
admcrae | 2:ebe7029e2825 | 991 | /** |
admcrae | 2:ebe7029e2825 | 992 | * Sets playback sample rate. |
admcrae | 2:ebe7029e2825 | 993 | * @param Pitch Sample rate (4000-65535). A value of 0 will restore the original sample rate. |
admcrae | 2:ebe7029e2825 | 994 | */ |
admcrae | 2:ebe7029e2825 | 995 | uint16_t snd_Pitch(uint16_t Pitch); |
admcrae | 2:ebe7029e2825 | 996 | |
admcrae | 2:ebe7029e2825 | 997 | /** |
admcrae | 2:ebe7029e2825 | 998 | * Sets memory chunk size for wavefile buffer. |
admcrae | 2:ebe7029e2825 | 999 | * @param Bufsize Buffer size: 0 -> 1024 bytes, 1 -> 2048 bytes, and 2 -> 4096 bytes. |
admcrae | 2:ebe7029e2825 | 1000 | */ |
admcrae | 2:ebe7029e2825 | 1001 | void snd_BufSize(uint16_t Bufsize); |
admcrae | 2:ebe7029e2825 | 1002 | |
admcrae | 2:ebe7029e2825 | 1003 | /** |
admcrae | 2:ebe7029e2825 | 1004 | * Stops sound that is playing, releasing buffers and closing open wav files. |
admcrae | 2:ebe7029e2825 | 1005 | */ |
admcrae | 0:e314f3b805ed | 1006 | void snd_Stop(void); |
admcrae | 2:ebe7029e2825 | 1007 | |
admcrae | 2:ebe7029e2825 | 1008 | /** |
admcrae | 2:ebe7029e2825 | 1009 | * Pauses sound playback. |
admcrae | 2:ebe7029e2825 | 1010 | */ |
admcrae | 2:ebe7029e2825 | 1011 | void snd_Pause(void); |
admcrae | 2:ebe7029e2825 | 1012 | |
admcrae | 2:ebe7029e2825 | 1013 | /** |
admcrae | 2:ebe7029e2825 | 1014 | * Continues any paused sound. |
admcrae | 2:ebe7029e2825 | 1015 | */ |
admcrae | 2:ebe7029e2825 | 1016 | void snd_Continue(void); |
admcrae | 2:ebe7029e2825 | 1017 | |
admcrae | 2:ebe7029e2825 | 1018 | /** |
admcrae | 2:ebe7029e2825 | 1019 | * Returns 0 if file has finished playing; otherwise, returns number of 512 byte blocks remaining. |
admcrae | 2:ebe7029e2825 | 1020 | */ |
admcrae | 2:ebe7029e2825 | 1021 | uint16_t snd_Playing(void); |
admcrae | 2:ebe7029e2825 | 1022 | |
admcrae | 2:ebe7029e2825 | 1023 | |
admcrae | 2:ebe7029e2825 | 1024 | /** |
admcrae | 2:ebe7029e2825 | 1025 | * Specifies region on screen where touches will be detected. |
admcrae | 2:ebe7029e2825 | 1026 | * @param X1,Y1 Coordinates of top-left corner of region. |
admcrae | 2:ebe7029e2825 | 1027 | * @param X2,Y2 Coordinates of bottom-right corner of region. |
admcrae | 2:ebe7029e2825 | 1028 | */ |
admcrae | 2:ebe7029e2825 | 1029 | void touch_DetectRegion(uint16_t X1, uint16_t Y1, uint16_t X2, uint16_t Y2); |
admcrae | 2:ebe7029e2825 | 1030 | |
admcrae | 2:ebe7029e2825 | 1031 | /** |
admcrae | 2:ebe7029e2825 | 1032 | * Sets touchscreen mode. |
admcrae | 2:ebe7029e2825 | 1033 | * @param Mode 0 -> enable touch screen; 1 -> disable touch screen; 2 -> reset touch detect region to full screen. The Picaso::Touch enum also provides the constants. |
admcrae | 2:ebe7029e2825 | 1034 | */ |
admcrae | 2:ebe7029e2825 | 1035 | void touch_Set(uint16_t Mode); |
admcrae | 2:ebe7029e2825 | 1036 | |
admcrae | 2:ebe7029e2825 | 1037 | /** |
admcrae | 2:ebe7029e2825 | 1038 | * Get status of touch screen. |
admcrae | 2:ebe7029e2825 | 1039 | * @param Mode 0 -> get state of touch screen; 1 -> get x coordinate of touch; 2 -> get y coordinate of touch. The Picaso::Touch enum also provides the constants. |
admcrae | 2:ebe7029e2825 | 1040 | * @return In modes 1 and 2, the requested coordinate. In mode 0: 0 -> invalid or no touch; 1 -> press; 2 -> release; 3 -> moving. The Picaso::Touch enum also provides the constants. |
admcrae | 2:ebe7029e2825 | 1041 | */ |
admcrae | 2:ebe7029e2825 | 1042 | uint16_t touch_Get(uint16_t Mode); |
admcrae | 2:ebe7029e2825 | 1043 | |
admcrae | 2:ebe7029e2825 | 1044 | /** |
admcrae | 2:ebe7029e2825 | 1045 | * Sets position of image to be displayed. An image control must have already been created with the file_LoadImageControl command. |
admcrae | 2:ebe7029e2825 | 1046 | * @param Handle Pointer to image list. |
admcrae | 2:ebe7029e2825 | 1047 | * @param Index Index of image in list. |
admcrae | 2:ebe7029e2825 | 1048 | * @param Xpos,Ypos Coordinates of top-left corner of image. |
admcrae | 2:ebe7029e2825 | 1049 | * @return 1 if successful, 0 if not. |
admcrae | 2:ebe7029e2825 | 1050 | */ |
admcrae | 2:ebe7029e2825 | 1051 | uint16_t img_SetPosition(uint16_t Handle, uint16_t Index, uint16_t Xpos, uint16_t Ypos); |
admcrae | 2:ebe7029e2825 | 1052 | |
admcrae | 2:ebe7029e2825 | 1053 | /** |
admcrae | 2:ebe7029e2825 | 1054 | * Enables image in list so that it can be displayed with the img_Show command. An image control must have already been created with the file_LoadImageControl command. |
admcrae | 2:ebe7029e2825 | 1055 | * @param Handle Pointer to image list. |
admcrae | 2:ebe7029e2825 | 1056 | * @param Index Index of image in list. -1 or Picaso::ALL selects all images in list. |
admcrae | 2:ebe7029e2825 | 1057 | * @return 1 if successful, 0 if not. |
admcrae | 2:ebe7029e2825 | 1058 | */ |
admcrae | 2:ebe7029e2825 | 1059 | uint16_t img_Enable(uint16_t Handle, uint16_t Index); |
admcrae | 2:ebe7029e2825 | 1060 | |
admcrae | 2:ebe7029e2825 | 1061 | /** |
admcrae | 2:ebe7029e2825 | 1062 | * Disables image from being displayed. An image control must have already been created with the file_LoadImageControl command. |
admcrae | 2:ebe7029e2825 | 1063 | * @param Handle Pointer to image list. |
admcrae | 2:ebe7029e2825 | 1064 | * @param Index Index of image in list. -1 or Picaso::ALL selects all images in list. |
admcrae | 2:ebe7029e2825 | 1065 | * @return 1 if successful, 0 if not. |
admcrae | 2:ebe7029e2825 | 1066 | */ |
admcrae | 2:ebe7029e2825 | 1067 | uint16_t img_Disable(uint16_t Handle, uint16_t Index); |
admcrae | 2:ebe7029e2825 | 1068 | |
admcrae | 2:ebe7029e2825 | 1069 | /** |
admcrae | 2:ebe7029e2825 | 1070 | * Darkens image (call before img_Show). This effect will be reset when img_Show is called a second time. |
admcrae | 2:ebe7029e2825 | 1071 | * An image control must have already been created with the file_LoadImageControl command. |
admcrae | 2:ebe7029e2825 | 1072 | * @param Handle Pointer to image list. |
admcrae | 2:ebe7029e2825 | 1073 | * @param Index Index of image in list. -1 or Picaso::ALL selects all images in list. |
admcrae | 2:ebe7029e2825 | 1074 | * @return 1 if successful, 0 if not. |
admcrae | 2:ebe7029e2825 | 1075 | */ |
admcrae | 2:ebe7029e2825 | 1076 | uint16_t img_Darken(uint16_t Handle, uint16_t Index); |
admcrae | 2:ebe7029e2825 | 1077 | |
admcrae | 2:ebe7029e2825 | 1078 | /** |
admcrae | 2:ebe7029e2825 | 1079 | * Lightens image (call before img_Show). This effect will be reset when img_Show is called a second time. |
admcrae | 2:ebe7029e2825 | 1080 | * An image control must have already been created with the file_LoadImageControl command. |
admcrae | 2:ebe7029e2825 | 1081 | * @param Handle Pointer to image list. |
admcrae | 2:ebe7029e2825 | 1082 | * @param Index Index of image in list. -1 or Picaso::ALL selects all images in list. |
admcrae | 2:ebe7029e2825 | 1083 | * @return 1 if successful, 0 if not. |
admcrae | 2:ebe7029e2825 | 1084 | */ |
admcrae | 2:ebe7029e2825 | 1085 | uint16_t img_Lighten(uint16_t Handle, uint16_t Index); |
admcrae | 2:ebe7029e2825 | 1086 | |
admcrae | 2:ebe7029e2825 | 1087 | /** |
admcrae | 2:ebe7029e2825 | 1088 | * Lightens image (call before img_Show). This effect will be reset when img_Show is called a second time. |
admcrae | 2:ebe7029e2825 | 1089 | * An image control must have already been created with the file_LoadImageControl command. |
admcrae | 2:ebe7029e2825 | 1090 | * @param Handle Pointer to image list. |
admcrae | 2:ebe7029e2825 | 1091 | * @param Index Index of image in list. |
admcrae | 2:ebe7029e2825 | 1092 | * @param Offset Offset of word to write. Note that some parameters are read-only. |
admcrae | 2:ebe7029e2825 | 1093 | * @param Word Word to be written. See Picaso::ImageControlOffset definition or serial command manual for more information. |
admcrae | 2:ebe7029e2825 | 1094 | * @return 1 if successful, 0 if not. |
admcrae | 2:ebe7029e2825 | 1095 | */ |
admcrae | 2:ebe7029e2825 | 1096 | uint16_t img_SetWord(uint16_t Handle, uint16_t Index, Picaso::ImageControlOffset Offset, uint16_t Word); |
admcrae | 2:ebe7029e2825 | 1097 | |
admcrae | 2:ebe7029e2825 | 1098 | /** |
admcrae | 2:ebe7029e2825 | 1099 | * Reads an image parameter. An image control must have already been created with the file_LoadImageControl command. |
admcrae | 2:ebe7029e2825 | 1100 | * @param Handle Pointer to image list. |
admcrae | 2:ebe7029e2825 | 1101 | * @param Index Index of image in list. |
admcrae | 2:ebe7029e2825 | 1102 | * @param Offset Offset of word to be read. |
admcrae | 2:ebe7029e2825 | 1103 | * @return The word that is read. |
admcrae | 2:ebe7029e2825 | 1104 | */ |
admcrae | 2:ebe7029e2825 | 1105 | uint16_t img_GetWord(uint16_t Handle, uint16_t Index, Picaso::ImageControlOffset Offset); |
admcrae | 2:ebe7029e2825 | 1106 | |
admcrae | 2:ebe7029e2825 | 1107 | /** |
admcrae | 2:ebe7029e2825 | 1108 | * Displays image from list. An image control must have already been created with the file_LoadImageControl command. |
admcrae | 2:ebe7029e2825 | 1109 | * @param Handle Pointer to image list. |
admcrae | 2:ebe7029e2825 | 1110 | * @param Index Index of image in list. |
admcrae | 2:ebe7029e2825 | 1111 | * @return Nonzero if successful, 0 if not. |
admcrae | 2:ebe7029e2825 | 1112 | */ |
admcrae | 2:ebe7029e2825 | 1113 | uint16_t img_Show(uint16_t Handle, uint16_t Index); |
admcrae | 2:ebe7029e2825 | 1114 | |
admcrae | 2:ebe7029e2825 | 1115 | /** |
admcrae | 2:ebe7029e2825 | 1116 | * Sets one or more image attribute flags. An image control must have already been created with the file_LoadImageControl command. |
admcrae | 2:ebe7029e2825 | 1117 | * @param Handle Pointer to image list. |
admcrae | 2:ebe7029e2825 | 1118 | * @param Index Index of image in list. |
admcrae | 2:ebe7029e2825 | 1119 | * @param Value Mask of bits to be set. OR together multiple attribute flags to set multiple. |
admcrae | 2:ebe7029e2825 | 1120 | * @return 1 if successful, 0 if not. |
admcrae | 2:ebe7029e2825 | 1121 | */ |
admcrae | 2:ebe7029e2825 | 1122 | uint16_t img_SetAttributes(uint16_t Handle, uint16_t Index, Picaso::ImageAttribute Value); |
admcrae | 2:ebe7029e2825 | 1123 | |
admcrae | 2:ebe7029e2825 | 1124 | /** |
admcrae | 2:ebe7029e2825 | 1125 | * Clears one or more image attribute flags. An image control must have already been created with the file_LoadImageControl command. |
admcrae | 2:ebe7029e2825 | 1126 | * @param Handle Pointer to image list. |
admcrae | 2:ebe7029e2825 | 1127 | * @param Index Index of image in list. |
admcrae | 2:ebe7029e2825 | 1128 | * @param Value Mask of bits to be cleared. OR together multiple attribute flags to clear multiple. |
admcrae | 2:ebe7029e2825 | 1129 | * @return 1 if successful, 0 if not. |
admcrae | 2:ebe7029e2825 | 1130 | */ |
admcrae | 2:ebe7029e2825 | 1131 | uint16_t img_ClearAttributes(uint16_t Handle, uint16_t Index, Picaso::ImageAttribute Value); |
admcrae | 2:ebe7029e2825 | 1132 | |
admcrae | 2:ebe7029e2825 | 1133 | /** |
admcrae | 2:ebe7029e2825 | 1134 | * Returns whether an image has been touched. An image control must have already been created with the file_LoadImageControl command. |
admcrae | 2:ebe7029e2825 | 1135 | * @param Handle Pointer to image list. |
admcrae | 2:ebe7029e2825 | 1136 | * @param Index Index of image in list. |
admcrae | 2:ebe7029e2825 | 1137 | * @return Image index if touched, -1 if not. If -1 is passed as index, returns index of an image if it is touched. |
admcrae | 2:ebe7029e2825 | 1138 | */ |
admcrae | 2:ebe7029e2825 | 1139 | uint16_t img_Touched(uint16_t Handle, uint16_t Index); |
admcrae | 2:ebe7029e2825 | 1140 | |
admcrae | 2:ebe7029e2825 | 1141 | /** |
admcrae | 2:ebe7029e2825 | 1142 | * Performs block image transfer onto screen. |
admcrae | 2:ebe7029e2825 | 1143 | * @param X,Y Coordinates of top-left corner of location where image is to be displayed. |
admcrae | 2:ebe7029e2825 | 1144 | * @param Width,Height Width and height of image to be displayed. |
admcrae | 2:ebe7029e2825 | 1145 | * @param Pixels Array of bytes containing pixel data. Each pixel is 16-bits of color information (see Picaso::Color). |
admcrae | 2:ebe7029e2825 | 1146 | */ |
admcrae | 2:ebe7029e2825 | 1147 | void blitComtoDisplay(uint16_t X, uint16_t Y, uint16_t Width, uint16_t Height, char* Pixels); |
admcrae | 2:ebe7029e2825 | 1148 | |
admcrae | 2:ebe7029e2825 | 1149 | |
admcrae | 2:ebe7029e2825 | 1150 | // System commands: |
admcrae | 2:ebe7029e2825 | 1151 | |
admcrae | 2:ebe7029e2825 | 1152 | /** |
admcrae | 2:ebe7029e2825 | 1153 | * Releases memory block. |
admcrae | 2:ebe7029e2825 | 1154 | * @param Handle Pointer to memory block. |
admcrae | 2:ebe7029e2825 | 1155 | * @return Nonzero if successful, 0 if not. |
admcrae | 2:ebe7029e2825 | 1156 | */ |
admcrae | 2:ebe7029e2825 | 1157 | uint16_t mem_Free(uint16_t Handle); |
admcrae | 2:ebe7029e2825 | 1158 | |
admcrae | 2:ebe7029e2825 | 1159 | /** |
admcrae | 2:ebe7029e2825 | 1160 | * Returns byte size of lergest available memory chunk on the heap. |
admcrae | 2:ebe7029e2825 | 1161 | */ |
admcrae | 2:ebe7029e2825 | 1162 | uint16_t mem_Heap(void); |
admcrae | 2:ebe7029e2825 | 1163 | |
admcrae | 2:ebe7029e2825 | 1164 | /** |
admcrae | 2:ebe7029e2825 | 1165 | * Returns contents of memory address. Addresses can be calculated with pointers and offsets, and Picaso::MemAddresses and Picaso::MemOffsets also have some useful values. |
admcrae | 2:ebe7029e2825 | 1166 | */ |
admcrae | 2:ebe7029e2825 | 1167 | uint16_t peekM(uint16_t Address) ; |
admcrae | 2:ebe7029e2825 | 1168 | |
admcrae | 2:ebe7029e2825 | 1169 | /** |
admcrae | 2:ebe7029e2825 | 1170 | * Writes word to memory address. Addresses can be calculated with pointers and offsets, and Picaso::MemAddresses and Picaso::MemOffsets also have some useful values. |
admcrae | 2:ebe7029e2825 | 1171 | */ |
admcrae | 2:ebe7029e2825 | 1172 | void pokeM(uint16_t Address, uint16_t WordValue) ; |
admcrae | 2:ebe7029e2825 | 1173 | |
admcrae | 2:ebe7029e2825 | 1174 | /** |
admcrae | 2:ebe7029e2825 | 1175 | * Returns display model name as unterminated string. |
admcrae | 2:ebe7029e2825 | 1176 | * @param ModelStr Array of characters in which to store returned string. |
admcrae | 2:ebe7029e2825 | 1177 | * @return Number of characters in returned string. |
admcrae | 2:ebe7029e2825 | 1178 | */ |
admcrae | 2:ebe7029e2825 | 1179 | uint16_t sys_GetModel(char *ModelStr); |
admcrae | 2:ebe7029e2825 | 1180 | |
admcrae | 2:ebe7029e2825 | 1181 | /** |
admcrae | 2:ebe7029e2825 | 1182 | * Returns version of the SPE (Serial Programming Environment) installed on the display. |
admcrae | 2:ebe7029e2825 | 1183 | */ |
admcrae | 2:ebe7029e2825 | 1184 | uint16_t sys_GetVersion(void); |
admcrae | 2:ebe7029e2825 | 1185 | |
admcrae | 2:ebe7029e2825 | 1186 | /** |
admcrae | 2:ebe7029e2825 | 1187 | * Returns version of the PmmC (firmware) installed on the display. |
admcrae | 2:ebe7029e2825 | 1188 | */ |
admcrae | 2:ebe7029e2825 | 1189 | uint16_t sys_GetPmmC(void); |
admcrae | 2:ebe7029e2825 | 1190 | |
admcrae | 2:ebe7029e2825 | 1191 | /** |
admcrae | 2:ebe7029e2825 | 1192 | * Puts display and processor in low-power state for specified period of time. |
admcrae | 2:ebe7029e2825 | 1193 | * @param Units If 1-65535, sleeps for that many units of time (each unit is approximately 1 second). If 0, sleeps forever (needs to be reset). |
admcrae | 2:ebe7029e2825 | 1194 | */ |
admcrae | 2:ebe7029e2825 | 1195 | uint16_t sys_Sleep(uint16_t Units); |
admcrae | 2:ebe7029e2825 | 1196 | |
admcrae | 2:ebe7029e2825 | 1197 | |
admcrae | 2:ebe7029e2825 | 1198 | // I/O commands: |
admcrae | 2:ebe7029e2825 | 1199 | |
admcrae | 2:ebe7029e2825 | 1200 | /** |
admcrae | 2:ebe7029e2825 | 1201 | * Returns value of bus pins (in lower 8 bits of returned value). |
admcrae | 2:ebe7029e2825 | 1202 | */ |
admcrae | 2:ebe7029e2825 | 1203 | uint16_t bus_In(void); |
admcrae | 2:ebe7029e2825 | 1204 | |
admcrae | 2:ebe7029e2825 | 1205 | /** |
admcrae | 2:ebe7029e2825 | 1206 | * Sets value of bus pins. Bus pins must first be set to output. |
admcrae | 2:ebe7029e2825 | 1207 | * @param Bits Value to write to pins in lower 8 bits. Upper 8 bits are ignored. |
admcrae | 2:ebe7029e2825 | 1208 | */ |
admcrae | 2:ebe7029e2825 | 1209 | void bus_Out(uint16_t Bits); |
admcrae | 2:ebe7029e2825 | 1210 | |
admcrae | 2:ebe7029e2825 | 1211 | /** |
admcrae | 2:ebe7029e2825 | 1212 | * Reads bus pins. The BUS_RD pin is set low, pins are set after a 50ns delay, and finally the BUS_RD pin is set high again. |
admcrae | 2:ebe7029e2825 | 1213 | */ |
admcrae | 2:ebe7029e2825 | 1214 | uint16_t bus_Read(void); |
admcrae | 2:ebe7029e2825 | 1215 | |
admcrae | 2:ebe7029e2825 | 1216 | /** |
admcrae | 2:ebe7029e2825 | 1217 | * Sets directions of bus pins. |
admcrae | 2:ebe7029e2825 | 1218 | * Lower 8 bits contain pin directions. 1 -> input, 0 -> output. Upper 8 bits are ignored. |
admcrae | 2:ebe7029e2825 | 1219 | */ |
admcrae | 2:ebe7029e2825 | 1220 | void bus_Set(uint16_t IOMap); |
admcrae | 2:ebe7029e2825 | 1221 | |
admcrae | 2:ebe7029e2825 | 1222 | /** |
admcrae | 2:ebe7029e2825 | 1223 | * Writes to bus. Bus pins must first be set to output. Lower 8 bits of argument are written to pins, and then the BUS_WR pin is brought low for approximately 50ns. |
admcrae | 2:ebe7029e2825 | 1224 | */ |
admcrae | 2:ebe7029e2825 | 1225 | void bus_Write(uint16_t Bits); |
admcrae | 2:ebe7029e2825 | 1226 | |
admcrae | 2:ebe7029e2825 | 1227 | /** |
admcrae | 2:ebe7029e2825 | 1228 | * Sets a pin high. If the pin is not already an output, it is made an output. |
admcrae | 2:ebe7029e2825 | 1229 | * @return 1 if the pin number was legal. |
admcrae | 2:ebe7029e2825 | 1230 | */ |
admcrae | 2:ebe7029e2825 | 1231 | uint16_t pin_HI(Picaso::Pin Pin); |
admcrae | 2:ebe7029e2825 | 1232 | |
admcrae | 2:ebe7029e2825 | 1233 | /** |
admcrae | 2:ebe7029e2825 | 1234 | * Sets a pin low. If the pin is not already an output, it is made an output. |
admcrae | 2:ebe7029e2825 | 1235 | * @return 1 if the pin number was legal. |
admcrae | 2:ebe7029e2825 | 1236 | */ |
admcrae | 2:ebe7029e2825 | 1237 | uint16_t pin_LO(Picaso::Pin Pin); |
admcrae | 2:ebe7029e2825 | 1238 | |
admcrae | 2:ebe7029e2825 | 1239 | /** |
admcrae | 2:ebe7029e2825 | 1240 | * Reads a pin. |
admcrae | 2:ebe7029e2825 | 1241 | */ |
admcrae | 2:ebe7029e2825 | 1242 | uint16_t pin_Read(Picaso::Pin Pin); |
admcrae | 2:ebe7029e2825 | 1243 | |
admcrae | 2:ebe7029e2825 | 1244 | /** |
admcrae | 2:ebe7029e2825 | 1245 | * Sets a pin as an input or an output. |
admcrae | 2:ebe7029e2825 | 1246 | * @param Mode 1 or Picaso::INPUT for input, 0 or Picaso::OUTPUT for output. |
admcrae | 2:ebe7029e2825 | 1247 | * @param Pin Pin to be set. |
admcrae | 2:ebe7029e2825 | 1248 | * @return 1 if pin number is legal. |
admcrae | 2:ebe7029e2825 | 1249 | */ |
admcrae | 2:ebe7029e2825 | 1250 | uint16_t pin_Set(uint16_t Mode, Picaso::Pin Pin); |
admcrae | 2:ebe7029e2825 | 1251 | |
admcrae | 2:ebe7029e2825 | 1252 | |
admcrae | 2:ebe7029e2825 | 1253 | |
admcrae | 2:ebe7029e2825 | 1254 | // Serial communication command: |
admcrae | 2:ebe7029e2825 | 1255 | |
admcrae | 2:ebe7029e2825 | 1256 | /** |
admcrae | 2:ebe7029e2825 | 1257 | * Set baud rate of serial interface with display. |
admcrae | 2:ebe7029e2825 | 1258 | */ |
admcrae | 2:ebe7029e2825 | 1259 | void setbaudWait(Picaso::BaudRate Newrate); |
admcrae | 2:ebe7029e2825 | 1260 | |
shorwich | 7:7754ce600ca6 | 1261 | protected: |
shorwich | 8:25147173a168 | 1262 | /** |
shorwich | 8:25147173a168 | 1263 | * used by printf - supply a new _putc virtual function for the new device |
shorwich | 8:25147173a168 | 1264 | * @param c ascii char. |
shorwich | 8:25147173a168 | 1265 | * @return 0 |
shorwich | 8:25147173a168 | 1266 | */ |
shorwich | 7:7754ce600ca6 | 1267 | virtual int _putc(int c); |
shorwich | 8:25147173a168 | 1268 | /** |
shorwich | 8:25147173a168 | 1269 | * used by printf - supply a new _getc virtual function for the new device |
shorwich | 8:25147173a168 | 1270 | * @return -1 |
shorwich | 8:25147173a168 | 1271 | */ |
shorwich | 7:7754ce600ca6 | 1272 | virtual int _getc(); |
admcrae | 0:e314f3b805ed | 1273 | |
admcrae | 0:e314f3b805ed | 1274 | private: |
admcrae | 0:e314f3b805ed | 1275 | |
admcrae | 0:e314f3b805ed | 1276 | #if LCD_USING_MODSERIAL |
admcrae | 0:e314f3b805ed | 1277 | MODSERIAL serial; |
admcrae | 0:e314f3b805ed | 1278 | #else |
admcrae | 0:e314f3b805ed | 1279 | Serial serial; |
admcrae | 0:e314f3b805ed | 1280 | #endif |
admcrae | 0:e314f3b805ed | 1281 | |
admcrae | 0:e314f3b805ed | 1282 | DigitalOut rst; |
admcrae | 0:e314f3b805ed | 1283 | Timer timer; |
admcrae | 0:e314f3b805ed | 1284 | |
admcrae | 0:e314f3b805ed | 1285 | void WriteBytes(char* psOutput, int count); |
admcrae | 0:e314f3b805ed | 1286 | void WriteChars(char* psOutput); |
admcrae | 2:ebe7029e2825 | 1287 | void WriteWords(uint16_t* source, int count); |
admcrae | 0:e314f3b805ed | 1288 | int ReadSerPort(char *psData, int iMax); |
admcrae | 0:e314f3b805ed | 1289 | void getbytes(char *data, int size); |
admcrae | 0:e314f3b805ed | 1290 | void GetAck(); |
admcrae | 2:ebe7029e2825 | 1291 | uint16_t GetWord(); |
admcrae | 0:e314f3b805ed | 1292 | void getString(char *outStr, int strLen); |
admcrae | 2:ebe7029e2825 | 1293 | uint16_t GetAckResp(); |
admcrae | 2:ebe7029e2825 | 1294 | uint16_t WaitForAck(); |
admcrae | 2:ebe7029e2825 | 1295 | uint16_t GetAckRes2Words(uint16_t * word1, uint16_t * word2); |
admcrae | 2:ebe7029e2825 | 1296 | void GetAck2Words(uint16_t * word1, uint16_t * word2); |
admcrae | 2:ebe7029e2825 | 1297 | uint16_t GetAckResSector(char* Sector); |
admcrae | 2:ebe7029e2825 | 1298 | uint16_t GetAckResStr(char * OutStr); |
admcrae | 2:ebe7029e2825 | 1299 | uint16_t GetAckResData(char* OutData, uint16_t size); |
admcrae | 2:ebe7029e2825 | 1300 | void SetThisBaudrate(Picaso::BaudRate NewRate); |
admcrae | 0:e314f3b805ed | 1301 | |
admcrae | 0:e314f3b805ed | 1302 | void LCD_wait_ms(int ms); |
admcrae | 0:e314f3b805ed | 1303 | void rxFlush(); |
admcrae | 0:e314f3b805ed | 1304 | |
admcrae | 0:e314f3b805ed | 1305 | int Error4D ; // Error indicator, used and set by Intrinsic routines |
admcrae | 0:e314f3b805ed | 1306 | int TimeLimit4D; // time limit in ms for total serial command duration, 2000 (2 seconds) should be adequate for most commands |
admcrae | 0:e314f3b805ed | 1307 | // assuming a reasonable baud rate AND low latency AND 0 for the Serial Delay Parameter |
admcrae | 0:e314f3b805ed | 1308 | // temporary increase might be required for very long (bitmap write, large image file opens) |
admcrae | 2:ebe7029e2825 | 1309 | // or indeterminate (eg file_exec, file_run, file_callFunction) commands |
admcrae | 0:e314f3b805ed | 1310 | }; |
admcrae | 0:e314f3b805ed | 1311 | #endif |