mirror of
https://github.com/FliegendeWurst/raspi-oled.git
synced 2024-11-22 02:14:58 +00:00
Fix TOTP paging
This commit is contained in:
parent
30683b42f0
commit
f4d42943af
@ -4,25 +4,25 @@ use linux_embedded_hal::I2cdev;
|
|||||||
|
|
||||||
const CCS811_ADDR: u8 = 0x5A; // or 0x5B
|
const CCS811_ADDR: u8 = 0x5A; // or 0x5B
|
||||||
|
|
||||||
const CCS811_STATUS: u8 = 0x00;
|
pub const CCS811_STATUS: u8 = 0x00;
|
||||||
const CCS811_MEAS_MODE: u8 = 0x01;
|
pub const CCS811_MEAS_MODE: u8 = 0x01;
|
||||||
const CCS811_ALG_RESULT_DATA: u8 = 0x02;
|
pub const CCS811_ALG_RESULT_DATA: u8 = 0x02;
|
||||||
const CCS811_RAW_DATA: u8 = 0x03;
|
pub const CCS811_RAW_DATA: u8 = 0x03;
|
||||||
const CCS811_ENV_DATA: u8 = 0x05;
|
pub const CCS811_ENV_DATA: u8 = 0x05;
|
||||||
const CCS811_NTC: u8 = 0x06;
|
pub const CCS811_NTC: u8 = 0x06;
|
||||||
const CCS811_THRESHOLDS: u8 = 0x10;
|
pub const CCS811_THRESHOLDS: u8 = 0x10;
|
||||||
const CCS811_BASELINE: u8 = 0x11;
|
pub const CCS811_BASELINE: u8 = 0x11;
|
||||||
const CCS811_HW_ID: u8 = 0x20;
|
pub const CCS811_HW_ID: u8 = 0x20;
|
||||||
const CCS811_HW_VERSION: u8 = 0x21;
|
pub const CCS811_HW_VERSION: u8 = 0x21;
|
||||||
const CCS811_FW_BOOT_VERSION: u8 = 0x23;
|
pub const CCS811_FW_BOOT_VERSION: u8 = 0x23;
|
||||||
const CCS811_FW_APP_VERSION: u8 = 0x24;
|
pub const CCS811_FW_APP_VERSION: u8 = 0x24;
|
||||||
const CCS811_ERROR_ID: u8 = 0xE0;
|
pub const CCS811_ERROR_ID: u8 = 0xE0;
|
||||||
const CCS811_APP_START: u8 = 0xF4;
|
pub const CCS811_APP_START: u8 = 0xF4;
|
||||||
const CCS811_SW_RESET: u8 = 0xFF;
|
pub const CCS811_SW_RESET: u8 = 0xFF;
|
||||||
|
|
||||||
struct CCS811 {
|
pub struct CCS811 {
|
||||||
i2c: I2cdev,
|
i2c: I2cdev,
|
||||||
addr: u8,
|
pub addr: u8,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl CCS811 {
|
impl CCS811 {
|
||||||
@ -79,7 +79,7 @@ impl CCS811 {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
enum CCS811DriveMode {
|
pub enum CCS811DriveMode {
|
||||||
Idle = 0,
|
Idle = 0,
|
||||||
EverySecond = 1,
|
EverySecond = 1,
|
||||||
Every10Seconds = 2,
|
Every10Seconds = 2,
|
||||||
|
@ -3,7 +3,7 @@ use std::{any::Any, fs, ops::Sub, sync::atomic::AtomicBool, time::Duration};
|
|||||||
use embedded_graphics::{
|
use embedded_graphics::{
|
||||||
image::ImageRaw,
|
image::ImageRaw,
|
||||||
mono_font::{
|
mono_font::{
|
||||||
ascii::{FONT_10X20, FONT_4X6, FONT_5X8, FONT_6X9, FONT_9X15},
|
ascii::{FONT_4X6, FONT_5X8, FONT_6X9, FONT_9X15},
|
||||||
mapping::StrGlyphMapping,
|
mapping::StrGlyphMapping,
|
||||||
DecorationDimensions, MonoFont, MonoTextStyleBuilder,
|
DecorationDimensions, MonoFont, MonoTextStyleBuilder,
|
||||||
},
|
},
|
||||||
@ -85,7 +85,7 @@ impl<D: DrawTarget<Color = Rgb565>> Screensaver<D> for Measurements {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<D: DrawTarget<Color = Rgb565>> Draw<D> for Measurements {
|
impl<D: DrawTarget<Color = Rgb565>> Draw<D> for Measurements {
|
||||||
fn draw_with_ctx(&self, ctx: &ContextDefault<D>, disp: &mut D, rng: &mut crate::Rng) -> Result<bool, D::Error> {
|
fn draw_with_ctx(&self, ctx: &ContextDefault<D>, disp: &mut D, _rng: &mut crate::Rng) -> Result<bool, D::Error> {
|
||||||
if self.drawn.load(std::sync::atomic::Ordering::Relaxed) {
|
if self.drawn.load(std::sync::atomic::Ordering::Relaxed) {
|
||||||
return Ok(false);
|
return Ok(false);
|
||||||
}
|
}
|
||||||
@ -416,7 +416,7 @@ impl<D: DrawTarget<Color = Rgb565>> Draw<D> for Measurements {
|
|||||||
Ok(true)
|
Ok(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn draw(&self, disp: &mut D, rng: &mut crate::Rng) -> Result<bool, <D as DrawTarget>::Error> {
|
fn draw(&self, _disp: &mut D, _rng: &mut crate::Rng) -> Result<bool, <D as DrawTarget>::Error> {
|
||||||
panic!("draw without ctx");
|
panic!("draw without ctx");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ use embedded_graphics::{
|
|||||||
};
|
};
|
||||||
use totp_rs::TOTP;
|
use totp_rs::TOTP;
|
||||||
|
|
||||||
use crate::{screensaver::Screensaver, Context, ContextDefault, Draw, BLACK};
|
use crate::{screensaver::Screensaver, Draw, BLACK};
|
||||||
|
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Totp {
|
pub struct Totp {
|
||||||
@ -33,6 +33,9 @@ impl Totp {
|
|||||||
|
|
||||||
pub fn next_page(&mut self) {
|
pub fn next_page(&mut self) {
|
||||||
self.page += 1;
|
self.page += 1;
|
||||||
|
if self.secrets.len() < self.page * 6 {
|
||||||
|
self.page = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -405,7 +405,11 @@ fn main_loop(mut disp: Oled, mut ctx: ContextDefault<Oled>) {
|
|||||||
}
|
}
|
||||||
pop_last = true;
|
pop_last = true;
|
||||||
},
|
},
|
||||||
[3, 2] => {
|
[3, 2, 1] => {
|
||||||
|
enable_pwm().unwrap();
|
||||||
|
pop_last = true;
|
||||||
|
},
|
||||||
|
[3, 2, 3] => {
|
||||||
disable_pwm().unwrap();
|
disable_pwm().unwrap();
|
||||||
pop_last = true;
|
pop_last = true;
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user