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