use crate::traits;
#[allow(dead_code)]
#[allow(non_camel_case_types)]
#[derive(Copy, Clone)]
pub(crate) enum Command {
DriverOutputControl = 0x01,
GateDrivingVoltageControl = 0x03,
SourceDrivingVoltageControl = 0x04,
SoftStart = 0x0C,
GateScanStartPosition = 0x0F,
DeepSleep = 0x10,
DataEntry = 0x11,
SwReset = 0x12,
HvReadyDetection = 0x14,
VciDetection = 0x15,
TemperatureSensorControl = 0x18,
TemperatureSensorWrite = 0x1A,
TemperatureSensorRead = 0x1B,
TemperatureSensorWriteExternal = 0x1C,
MasterActivation = 0x20,
DisplayUpdateControl1 = 0x21,
DisplayUpdateControl2 = 0x22,
WriteRamBw = 0x24,
WriteRamRed = 0x26,
ReadRam = 0x27,
VcomSense = 0x28,
VcomSenseDuration = 0x29,
VcomProgramOtp = 0x2A,
VcomControl = 0x2B,
VcomWrite = 0x2C,
OtpRead = 0x2D,
CrcCalculation = 0x34,
CrcRead = 0x35,
ProgramSelection = 0x36,
DisplayOptionWrite = 0x37,
UserIdWrite = 0x38,
VbdControl = 0x3C,
ReadRamOption = 0x41,
SetRamXStartEnd = 0x44,
SetRamYStartEnd = 0x45,
AutoWriteRed = 0x46,
AutoWriteBw = 0x47,
SetRamXAc = 0x4E,
SetRamYAc = 0x4F,
Nop = 0x7F,
}
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::MasterActivation.address(), 0x20);
assert_eq!(Command::SwReset.address(), 0x12);
assert_eq!(Command::DisplayUpdateControl2.address(), 0x22);
}
}