fix: make router socket non-blocking to prevent poll loop stalls
Validate and Test / validate-patches (push) Failing after 13s

This commit is contained in:
2026-06-24 04:45:15 -07:00
parent 31bd1d497c
commit f70a8701c9
46 changed files with 47584 additions and 1 deletions
+806
View File
@@ -0,0 +1,806 @@
# Arduino Graphics Library
## Methods
### `begin()`
#### Description
Initializes the graphics device.
#### Syntax
```
YourScreen.begin()
```
#### Parameters
None
#### Returns
1 for success, 0 on failure.
#### Example
```
if (!YourScreen.begin()) {
Serial.println("Failed to initialize the display!");
while (1);
}
```
### `end()`
#### Description
Stops the graphics device.
#### Syntax
```
YourScreen.end()
```
#### Parameters
None
#### Returns
Nothing
#### Example
```
YourScreen.end();
```
### `width()`
#### Description
Returns the pixel width of the graphics device.
#### Syntax
```
YourScreen.width()
```
#### Parameters
None
#### Returns
Returns the pixel width of the graphics device.
#### Example
```
int w = YourScreen.width();
```
### `height()`
#### Description
Returns the pixel height of the graphics device.
#### Syntax
```
YourScreen.height()
```
#### Parameters
None
#### Returns
Returns the pixel height of the graphics device.
#### Example
```
int h = YourScreen.height();
```
### `beginDraw()`
#### Description
Begins a drawing operation.
#### Syntax
```
YourScreen.beginDraw()
```
#### Parameters
None
#### Returns
Nothing
#### Example
```
YourScreen.beginDraw();
YourScreen.set(0, 0, 255, 0, 0);
YourScreen.endDraw();
```
### `endDraw()`
#### Description
Ends a drawing operation, any drawing operations after beginDraw() is called will be displayed to the screen.
#### Syntax
```
YourScreen.endDraw()
```
#### Parameters
None
#### Returns
Nothing
#### Example
```
YourScreen.beginDraw();
YourScreen.set(0, 0, 255, 0, 0);
YourScreen.endDraw();
```
### `background()`
#### Description
Set the background color of drawing operations. Used when calling clear() or drawing text.
#### Syntax
```
YourScreen.background(r, g, b)
YourScreen.background(color)
```
#### Parameters
- r: red color value (0 - 255)
- g: green color value (0 - 255)
- b: blue color value (0 - 255)
- color: 24-bit RGB color, 0xrrggbb
#### Returns
Nothing
#### Example
```
YourScreen.beginDraw();
YourScreen.background(255, 0, 0);
YourScreen.clear();
YourScreen.endDraw();
```
### `clear()`
#### Description
Clear the screen contents or a specific pixel, uses the background colour set in background().
#### Syntax
```
YourScreen.clear()
YourScreen.clear(x, y)
```
#### Parameters
- x: x position of the pixel to clear
- y: y position of the pixel to clear
#### Returns
Nothing
#### Example
```
YourScreen.beginDraw();
YourScreen.background(255, 0, 0);
YourScreen.clear();
YourScreen.endDraw();
```
### `fill()`
#### Description
Set the fill color of drawing operations.
#### Syntax
```
YourScreen.fill(r, g, b)
YourScreen.fill(color)
```
#### Parameters
- r: red color value (0 - 255)
- g: green color value (0 - 255)
- b: blue color value (0 - 255)
- color: 24-bit RGB color, 0xrrggbb
#### Returns
Nothing
#### Example
```
YourScreen.beginDraw();
YourScreen.clear();
YourScreen.noStroke();
YourScreen.fill(255, 255, 0);
YourScreen.rect(0, 0, YourScreen.width(), YourScreen.height());
YourScreen.endDraw();
```
### `noFill()`
#### Description
Clears the fill color of drawing operations.
#### Syntax
```
YourScreen.noFill()
```
#### Parameters
None
#### Returns
Nothing
#### Example
```
YourScreen.beginDraw();
YourScreen.clear();
YourScreen.stroke(255, 0, 255);
YourScreen.noFill();
YourScreen.rect(0, 0, YourScreen.width(), YourScreen.height());
YourScreen.endDraw();
```
### `stroke()`
#### Description
Set the stroke color of drawing operations.
#### Syntax
```
YourScreen.stroke(r, g, b)
YourScreen.stroke(color)
```
#### Parameters
- r: red color value (0 - 255)
- g: green color value (0 - 255)
- b: blue color value (0 - 255)
- color: 24-bit RGB color, 0xrrggbb
#### Returns
Nothing
#### Example
```
YourScreen.beginDraw();
YourScreen.clear();
YourScreen.stroke(255, 0, 255);
YourScreen.noFill();
YourScreen.rect(0, 0, YourScreen.width(), YourScreen.height());
YourScreen.endDraw();
```
### `noStroke()`
#### Description
Clears the stroke color of drawing operations.
#### Syntax
```
YourScreen.noStroke()
```
#### Parameters
None
#### Returns
Nothing
#### Example
```
YourScreen.beginDraw();
YourScreen.clear();
YourScreen.noStroke();
YourScreen.fill(255, 255, 0);
YourScreen.rect(0, 0, YourScreen.width(), YourScreen.height());
YourScreen.endDraw();
```
### `line()`
#### Description
Stroke a line, uses the stroke color set in stroke().
#### Syntax
```
YourScreen.line(x1, y1, x2, y2)
```
#### Parameters
- x1: x position of the starting point of the line
- y1: y position of the starting point of the line
- x2: x position of the end point of the line
- y2: y position of the end point of the line
#### Returns
Nothing
#### Example
```
YourScreen.beginDraw();
YourScreen.clear();
YourScreen.stroke(0, 0, 255);
YourScreen.line(0, 0, YourScreen.width() - 1, YourScreen.height() - 1);
YourScreen.endDraw();
```
### `point()`
#### Description
Stroke a point, uses the stroke color set in stroke().
#### Syntax
```
YourScreen.point(x, y)
```
#### Parameters
x: x position of the point
y: y position of the point
#### Returns
Nothing
#### Example
```
YourScreen.beginDraw();
YourScreen.clear();
YourScreen.stroke(0, 255, 0);
YourScreen.point(1, 1);
YourScreen.endDraw();
```
### `rect()`
#### Description
Stroke and fill a rectangle, uses the stroke color set in stroke() and the fill color set in fill().
#### Syntax
```
YourScreen.rect(x, y, width, height)
```
#### Parameters
- x: x position of the rectangle
- y: y position of the rectangle
- width: width of the rectangle
- height: height of the rectangle
#### Returns
Nothing
#### Example
```
YourScreen.beginDraw();
YourScreen.clear();
YourScreen.noStroke();
YourScreen.fill(255, 255, 0);
YourScreen.rect(0, 0, YourScreen.width(), YourScreen.height());
YourScreen.endDraw();
```
### `circle()`
#### Description
Stroke and fill a circle, uses the stroke color set in stroke() and the fill color set in fill().
#### Syntax
```
YourScreen.circle(x, y, diameter)
```
#### Parameters
- x: x center position of the circle
- y: y center position of the circle
- diameter: diameter of the circle
#### Returns
Nothing
#### Example
```
YourScreen.beginDraw();
YourScreen.clear();
YourScreen.noStroke();
YourScreen.fill(255, 255, 0);
YourScreen.circle(YourScreen.width()/2, YourScreen.height()/2, YourScreen.height());
YourScreen.endDraw();
```
### `ellipse()`
#### Description
Stroke and fill an ellipse, uses the stroke color set in stroke() and the fill color set in fill().
#### Syntax
```
YourScreen.ellipse(x, y, width, height)
```
#### Parameters
- x: x center position of the ellipse
- y: y center position of the ellipse
- width: width of the ellipse
- height: height of the ellipse
#### Returns
Nothing
#### Example
```
YourScreen.beginDraw();
YourScreen.clear();
YourScreen.noStroke();
YourScreen.fill(255, 255, 0);
YourScreen.ellipse(YourScreen.width()/2, YourScreen.height()/2, YourScreen.width(), YourScreen.height());
YourScreen.endDraw();
```
### `text()`
#### Description
Draw some text, uses the stroke color set in stroke() and the background color set in background().
#### Syntax
```
YourScreen.text(string)
YourScreen.text(string, x, y)
```
#### Parameters
- string: string to draw
- x: x position for the start of the text
- y: y position for the start of the text
#### Returns
Nothing
#### Example
```
YourScreen.beginDraw();
YourScreen.clear();
YourScreen.stroke(255, 255, 255);
YourScreen.text("abc", 0, 1);
YourScreen.endDraw();
```
### `textFont()`
#### Description
Sets the font used for text. The library current has the Font_4x6 and Font_5x7 built in.
#### Syntax
```
YourScreen.textFont(font)
```
#### Parameters
font: font to set
#### Returns
Nothing
#### Example
```
YourScreen.beginDraw();
YourScreen.clear();
YourScreen.stroke(255, 255, 255);
YourScreen.textFont(Font_5x7);
YourScreen.text("abc", 0, 1);
YourScreen.endDraw();
```
### `textFontWidth()`
#### Description
Returns the width, in pixels, of the current font.
#### Syntax
```
YourScreen.textFontWidth()
```
#### Parameters
None
#### Returns
Nothing
#### Example
```
int w = YourScreen.textFontWidth();
```
### `textFontHeight()`
#### Description
Returns the height, in pixels, of the current font.
#### Syntax
```
YourScreen.textFontHeight()
```
#### Parameters
None
#### Returns
Nothing
#### Example
```
int h = YourScreen.textFontHeight();
```
### `textSize()`
#### Description
Set a text scale factor
#### Syntax
```
YourScreen.textSize(scale)
YourScreen.textSize(scaleX, scaleY)
```
#### Parameters
scale: scale factor used for both x and y
scaleX: x scale factor
scaleY: y scale factor
#### Returns
Nothing
#### Example
```
YourScreen.beginDraw();
YourScreen.clear();
YourScreen.stroke(255, 255, 255);
YourScreen.textFont(Font_5x7);
YourScreen.textSize(5);
YourScreen.text("abc", 0, 1);
YourScreen.endDraw();
```
### `set()`
#### Description
Set a pixels color value.
#### Syntax
```
YourScreen.set(x, y, r, g, b)
YourScreen.set(x, y, color)
```
#### Parameters
x: x position of the pixel
y: y position of the pixel
r: red color value (0 - 255)
g: green color value (0 - 255)
b: blue color value (0 - 255)
color: 24-bit RGB color, 0xrrggbb
#### Returns
Nothing
#### Example
```
YourScreen.beginDraw();
YourScreen.point(1, 1, 0, 255, 0);
YourScreen.endDraw();
```
### `beginText()`
#### Description
Start the process of displaying and optionally scrolling text. The Print interface can be used to set the text.
#### Syntax
```
YourScreen.beginText()
YourScreen.beginText(x, y, r, g, b)
YourScreen.beginText(x, y, color)
```
#### Parameters
x: x position of the text
y: y position of the text
r: red color value (0 - 255)
g: green color value (0 - 255)
b: blue color value (0 - 255)
color: 24-bit RGB color, 0xrrggbb
#### Returns
Nothing
#### Example
```
YourScreen.beginText(0, 0, 127, 0, 0);
YourScreen.print("Hi");
YourScreen.endText();
```
### `endText()`
#### Description
End the process of displaying and optionally scrolling text.
#### Syntax
```
YourScreen.endText()
YourScreen.endText(scrollDirection)
```
#### Parameters
scrollDirection: (optional) the direction to scroll, defaults to NO_SCROLL if not provided. Valid options are NO_SCROLL, SCROLL_LEFT, SCROLL_RIGHT, SCROLL_UP, SCROLL_DOWN
#### Returns
Nothing
#### Example
```
YourScreen.beginText(0, 0, 127, 0, 0);
YourScreen.print("Hi");
YourScreen.endText();
```
### `textScrollSpeed()`
#### Description
Sets the text scrolling speed, the speed controls the delay in milliseconds between scrolling each pixel.
#### Syntax
```
YourScreen.textScrollSpeed(speed)
```
#### Parameters
speed: scroll speed
#### Returns
Nothing
#### Example
```
YourScreen.beginText(0, 0, 127, 0, 0);
YourScreen.textScrollSpeed(500);
YourScreen.print("Hello There!");
YourScreen.endText(true);
```