use crate::traits;
#[allow(dead_code)]
#[allow(non_camel_case_types)]
#[derive(Copy, Clone)]
pub(crate) enum Command {
PANEL_SETTING = 0x00,
POWER_SETTING = 0x01,
POWER_OFF = 0x02,
POWER_OFF_SEQUENCE_SETTING = 0x03,
POWER_ON = 0x04,
BOOSTER_SOFT_START = 0x06,
DEEP_SLEEP = 0x07,
DATA_START_TRANSMISSION_1 = 0x10,
DATA_STOP = 0x11,
DISPLAY_REFRESH = 0x12,
IMAGE_PROCESS = 0x13,
LUT_FOR_VCOM = 0x20,
LUT_BLACK = 0x21,
LUT_WHITE = 0x22,
LUT_GRAY_1 = 0x23,
LUT_GRAY_2 = 0x24,
LUT_RED_0 = 0x25,
LUT_RED_1 = 0x26,
LUT_RED_2 = 0x27,
LUT_RED_3 = 0x28,
LUT_XON = 0x29,
PLL_CONTROL = 0x30,
TEMPERATURE_SENSOR_COMMAND = 0x40,
TEMPERATURE_CALIBRATION = 0x41,
TEMPERATURE_SENSOR_WRITE = 0x42,
TEMPERATURE_SENSOR_READ = 0x43,
VCOM_AND_DATA_INTERVAL_SETTING = 0x50,
LOW_POWER_DETECTION = 0x51,
TCON_SETTING = 0x60,
TCON_RESOLUTION = 0x61,
SPI_FLASH_CONTROL = 0x65,
REVISION = 0x70,
GET_STATUS = 0x71,
AUTO_MEASUREMENT_VCOM = 0x80,
READ_VCOM_VALUE = 0x81,
VCM_DC_SETTING = 0x82,
FLASH_MODE = 0xE5,
}
impl traits::Command for Command {
fn address(self) -> u8 {
self as u8
}
}
#[cfg(test)]
mod tests {
use super::*;
use crate::traits::Command as CommandTrait;
#[test]
fn command_addr() {
assert_eq!(Command::PANEL_SETTING.address(), 0x00);
assert_eq!(Command::DISPLAY_REFRESH.address(), 0x12);
}
}