examples, format
This commit is contained in:
parent
555d917d96
commit
4cd86d3494
4 changed files with 112 additions and 33 deletions
|
@ -49,25 +49,9 @@ impl Connection {
|
|||
/// # use servicepoint::{Command, CompressionCode, Grid, PixelGrid};
|
||||
/// # let connection = servicepoint::Connection::open("172.23.42.29:2342")
|
||||
/// # .expect("connection failed");
|
||||
///
|
||||
/// // turn off all pixels on display
|
||||
/// connection.send(Command::Clear)
|
||||
/// .expect("send failed");
|
||||
///
|
||||
/// // turn on all pixels in a grid
|
||||
/// let mut pixels = PixelGrid::max_sized();
|
||||
/// pixels.fill(true);
|
||||
///
|
||||
/// // create command to send pixels
|
||||
/// let command = Command::BitmapLinearWin(
|
||||
/// servicepoint::Origin::new(0, 0),
|
||||
/// pixels,
|
||||
/// CompressionCode::Uncompressed
|
||||
/// );
|
||||
///
|
||||
/// // send command to display
|
||||
/// connection.send(command)
|
||||
/// .expect("send failed");
|
||||
/// ```
|
||||
pub fn send(
|
||||
&self,
|
||||
|
|
|
@ -1,4 +1,32 @@
|
|||
//! Abstractions for the UDP protocol of the CCCB servicepoint display.
|
||||
//!
|
||||
//! # Examples
|
||||
//!
|
||||
//! ```rust
|
||||
//! use servicepoint::{Command, CompressionCode, Grid, PixelGrid};
|
||||
//!
|
||||
//! let connection = servicepoint::Connection::open("172.23.42.29:2342")
|
||||
//! .expect("connection failed");
|
||||
//!
|
||||
//! // turn off all pixels on display
|
||||
//! connection.send(Command::Clear)
|
||||
//! .expect("send failed");
|
||||
//!
|
||||
//! // turn on all pixels in a grid
|
||||
//! let mut pixels = PixelGrid::max_sized();
|
||||
//! pixels.fill(true);
|
||||
//!
|
||||
//! // create command to send pixels
|
||||
//! let command = Command::BitmapLinearWin(
|
||||
//! servicepoint::Origin::new(0, 0),
|
||||
//! pixels,
|
||||
//! CompressionCode::Uncompressed
|
||||
//! );
|
||||
//!
|
||||
//! // send command to display
|
||||
//! connection.send(command)
|
||||
//! .expect("send failed");
|
||||
//! ```
|
||||
|
||||
use std::time::Duration;
|
||||
|
||||
|
@ -34,22 +62,76 @@ mod primitive_grid;
|
|||
/// size of a single tile in one dimension
|
||||
pub const TILE_SIZE: usize = 8;
|
||||
|
||||
/// tile count in the x-direction
|
||||
/// Display tile count in the x-direction
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```rust
|
||||
/// # use servicepoint::{Cp437Grid, TILE_HEIGHT, TILE_WIDTH};
|
||||
/// let grid = Cp437Grid::new(TILE_WIDTH, TILE_HEIGHT);
|
||||
/// ```
|
||||
pub const TILE_WIDTH: usize = 56;
|
||||
|
||||
/// tile count in the y-direction
|
||||
/// Display tile count in the y-direction
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```rust
|
||||
/// # use servicepoint::{Cp437Grid, TILE_HEIGHT, TILE_WIDTH};
|
||||
/// let grid = Cp437Grid::new(TILE_WIDTH, TILE_HEIGHT);
|
||||
/// ```
|
||||
pub const TILE_HEIGHT: usize = 20;
|
||||
|
||||
/// screen width in pixels
|
||||
/// Display width in pixels
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```rust
|
||||
/// # use servicepoint::{PIXEL_HEIGHT, PIXEL_WIDTH, PixelGrid};
|
||||
/// let grid = PixelGrid::new(PIXEL_WIDTH, PIXEL_HEIGHT);
|
||||
/// ```
|
||||
pub const PIXEL_WIDTH: usize = TILE_WIDTH * TILE_SIZE;
|
||||
|
||||
/// screen height in pixels
|
||||
/// Display height in pixels
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```rust
|
||||
/// # use servicepoint::{PIXEL_HEIGHT, PIXEL_WIDTH, PixelGrid};
|
||||
/// let grid = PixelGrid::new(PIXEL_WIDTH, PIXEL_HEIGHT);
|
||||
/// ```
|
||||
pub const PIXEL_HEIGHT: usize = TILE_HEIGHT * TILE_SIZE;
|
||||
|
||||
/// pixel count on whole screen
|
||||
pub const PIXEL_COUNT: usize = PIXEL_WIDTH * PIXEL_HEIGHT;
|
||||
|
||||
/// Actual hardware limit is around 28-29ms/frame. Rounded up for less dropped packets.
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// ```rust
|
||||
/// # use std::time::Instant;
|
||||
/// # use servicepoint::{Command, CompressionCode, FRAME_PACING, Origin, PixelGrid};
|
||||
/// # let connection = servicepoint::Connection::open("172.23.42.29:2342")
|
||||
/// # .expect("connection failed");
|
||||
/// # let pixels = PixelGrid::max_sized();
|
||||
/// loop {
|
||||
/// let start = Instant::now();
|
||||
///
|
||||
/// // Change pixels here
|
||||
///
|
||||
/// connection.send(Command::BitmapLinearWin(
|
||||
/// Origin::new(0,0),
|
||||
/// pixels,
|
||||
/// CompressionCode::Lzma
|
||||
/// ))
|
||||
/// .expect("send failed");
|
||||
///
|
||||
/// // warning: will crash if resulting duration is negative, e.g. when resuming from standby
|
||||
/// std::thread::sleep(FRAME_PACING - start.elapsed());
|
||||
/// # break; // prevent doctest from hanging
|
||||
/// }
|
||||
/// ```
|
||||
pub const FRAME_PACING: Duration = Duration::from_millis(30);
|
||||
|
||||
// include README.md in doctest
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue