Driver for 4D Systems LCD screen with Picaso processor. Ported from 4D Systems Picaso Serial Linux Library

Dependencies:   MODSERIAL

Dependents:   uLCD_4D_24PTU Drawing Program RoommateTracker_ScreenAndPhone ece4180_roommate_tracker_final

Committer:
admcrae
Date:
Tue Mar 10 16:05:28 2015 +0000
Revision:
2:ebe7029e2825
Parent:
0:e314f3b805ed
Child:
4:30010dda3b34
Added comments to header file, added a bunch of enums.

Who changed what in which revision?

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