HiPi

 view release on metacpan or  search on metacpan

lib/HiPi/Huawei/Errors.pm  view on Meta::CPAN

    
    '110'       => 'your safety settings prevent this potentially damaging action',
    '111'       => 'invalid day value',
    '112'       => 'invalid limit value',
    '113'       => 'invalid threshold value',
    
    '400'       => 'error in http request / response',
    
    '100002'    => 'call not supported',
    '100003'    => 'access forbidden in current session context',
    '100004'    => 'system busy',
    '100005'    => 'system system reports request failed',
    '100006'    => 'invalid request parameter',
    '108001'    => 'invalid username',
    '108002'    => 'invalid password',
    '108003'    => 'user already logged in',
    '108006'    => 'invalid username or password',
    '108007'    => 'maximum session login attempts exceeded',
    '120001'    => 'voice busy',
    '125001'    => 'invalid token',
    '125002'    => 'invalid session',
    '125003'    => 'invalid token or session',
    
    '103024'    => 'serial number check failed',
    '103025'    => 'serial number check failed attempts exceed maximum 3 allowed',
};


sub get_error_message {

lib/HiPi/Interface/EPaper.pm  view on Meta::CPAN

use HiPi qw( :rpi :spi :epaper );
use Carp;
use UNIVERSAL::require;
use HiPi::Graphics::DrawingContext;
use HiPi::Interface::EPaper::DisplayBuffer;

__PACKAGE__->create_ro_accessors( qw(
    device_width device_height offsetx type rotation
    frame_1_bpp frame_2_bpp
    frame_1_type frame_2_type
    dc_pin reset_pin busy_pin gpio
    lut_vcom0 lut_vcom1 lut_w lut_b lut_g1 lut_g2 lut_red0 lut_red1
    lut_full lut_partial
    can_partial  busy_state
    frame_1_invert frame_2_invert
    spi_chunksize
    _in_deep_sleep is_tri_colour
    border_control
) );

__PACKAGE__->create_accessors( qw( context lut_state ) );

our $VERSION ='0.81';

lib/HiPi/Interface/EPaper.pm  view on Meta::CPAN

    my ($class, %userparams) = @_;
    
    my %params = (
        devicename   => '/dev/spidev0.0',
        speed        => SPI_SPEED_MHZ_1,
        bitsperword  => 8,
        delay        => 0,
        device       => undef,
        reset_pin    => undef,
        dc_pin       => undef,
        busy_pin     => undef,
        type         => undef,
        gpio         => undef,
        device_width => undef,
        device_height => undef,
        rotation     => undef,
        can_partial  => 0,
        lut_state    => EPD_UPD_MODE_FIXED,
        invert_draw  => 0,
        busy_state   => RPI_LOW,
        offsetx      => 0,
        spi_chunksize => 4096,
        
    );
     
    # get user params
    foreach my $key( keys (%userparams) ) {
        $params{$key} = $userparams{$key};
    }
    

lib/HiPi/Interface/EPaper.pm  view on Meta::CPAN

        require HiPi::GPIO;
        $params{gpio} = HiPi::GPIO->new
    }
    
    my $self = $class->SUPER::new( %params );
    
    # init the GPIO settings;
    
    $self->gpio->set_pin_mode( $self->reset_pin, RPI_MODE_OUTPUT);
    $self->gpio->set_pin_mode( $self->dc_pin, RPI_MODE_OUTPUT);
    $self->gpio->set_pin_mode( $self->busy_pin, RPI_MODE_INPUT);
    
    return $self;
}

sub reset {
    my $self = shift;
    $self->gpio->set_pin_level( $self->reset_pin, RPI_LOW);
    $self->delay( 200 );
    $self->gpio->set_pin_level( $self->reset_pin, RPI_HIGH);
    $self->delay( 200 );

lib/HiPi/Interface/EPaper.pm  view on Meta::CPAN

sub send_data {
    my($self, @data) = @_;
    $self->gpio->set_pin_level( $self->dc_pin, RPI_HIGH );
    $self->delayMicroseconds(10);
    $self->device->transfer( pack('C*', @data ) );
    return;
}

sub wait_for_idle {
    my $self = shift;
    while( $self->gpio->get_pin_level( $self->busy_pin ) == $self->busy_state ) {
        $self->delay(100);
    }
    return;
}

sub logical_width {
    my $self = shift;
    if( $self->rotation == EPD_ROTATION_90 || $self->rotation == EPD_ROTATION_270 ) {
        return $self->device_height;
    } else {

lib/HiPi/Interface/EPaper/Pimoroni/EPDInkyPHAT_V2.pm  view on Meta::CPAN

    SET_RAM_X_ADDRESS_COUNTER => HiPi::Interface::EPaper::TypeA::SET_RAM_X_ADDRESS_COUNTER(),
    SET_RAM_Y_ADDRESS_COUNTER => HiPi::Interface::EPaper::TypeA::SET_RAM_Y_ADDRESS_COUNTER(),
};

sub _create {
    my( $class, %params ) = @_;
        
    # Default pins for Pimoroni Inky PHAT
    # reset_pin    => RPI_PIN_13, #  27 
    # dc_pin       => RPI_PIN_15, #  22
    # busy_pin     => RPI_PIN_11, #  17
    
    $params{reset_pin} //= RPI_PIN_13;
    $params{dc_pin}    //= RPI_PIN_15;
    $params{busy_pin}  //= RPI_PIN_11;
    
    $params{device_width}  = 104;
    $params{device_height} = 212;
    $params{offsetx} = 0;
    
    $params{is_tri_colour} = 1;
    
    $params{frame_1_bpp}  = EPD_FRAME_BPP_1;
    $params{frame_2_bpp}  = EPD_FRAME_BPP_1;
    $params{frame_1_type} = EPD_FRAME_TYPE_BLACK;
    $params{frame_2_type} = EPD_FRAME_TYPE_COLOUR;
    $params{frame_1_invert} = 0;
    $params{frame_2_invert} = 1;
    
    # don't allow change here
    $params{border_control} = EPD_BORDER_POR;
    
    $params{rotation} //= 90;
    
    $params{can_partial} = 0;
    $params{busy_state}  = RPI_HIGH;
    
    $params{display_update_setting} = 0xC7;
    
    $params{driver_ouput_control_bytes} = [ 0xd3, 0x00, 0x00 ];
    $params{booster_soft_start_control_bytes} = [];
    $params{vcom_register_bytes}     = [ 0x3c ];
    $params{dummy_line_period_bytes} = [ 0x07 ];
    $params{gate_time_bytes}         = [ 0x04 ];
    $params{data_entry_mode_bytes}   = [ 0x03 ];
    

lib/HiPi/Interface/EPaper/TypeA.pm  view on Meta::CPAN

    HIPI_BORDER_WHITE  => 0b011100010,
};


sub _create {
    my( $class, %params ) = @_;
    
    # Default pins for WaveShare 'HAT' modules
    # reset_pin    => RPI_PIN_11, #  17 
    # dc_pin       => RPI_PIN_22, #  25
    # busy_pin     => RPI_PIN_18, #  24
    
    $params{reset_pin} //= RPI_PIN_11;
    $params{dc_pin}    //= RPI_PIN_22;
    $params{busy_pin}  //= RPI_PIN_18;
    
    $params{display_update_setting} //= 0xC4;
    
    my $self = $class->SUPER::_create( %params );
    return $self;
}

sub set_update_mode {
    my($self, $newmode) = @_;
    my $current = $self->lut_state;

lib/HiPi/Interface/EPaper/TypeB.pm  view on Meta::CPAN

    HIPI_BORDER_FLOAT        => 0xC0,
    
};

sub _create {
    my( $class, %params ) = @_;
    
    # Default pins for WaveShare 'HAT' modules
    # reset_pin    => RPI_PIN_11, #  17 
    # dc_pin       => RPI_PIN_22, #  25
    # busy_pin     => RPI_PIN_18, #  24
    
    $params{reset_pin} //= RPI_PIN_11;
    $params{dc_pin}    //= RPI_PIN_22;
    $params{busy_pin}  //= RPI_PIN_18;
    
    my $self = $class->SUPER::_create( %params );
    return $self;
}

sub set_lut_bw {
    my $self = shift;
    my $lut_commands = {
        lut_vcom0 => 0x20,
        lut_w     => 0x21,

lib/HiPi/Interface/EPaper/Waveshare/EPD152X152.pm  view on Meta::CPAN

    $params{frame_1_bpp}   = EPD_FRAME_BPP_1;
    $params{frame_2_bpp}   = EPD_FRAME_BPP_1;
    $params{frame_1_type}  = EPD_FRAME_TYPE_BLACK;
    $params{frame_2_type}  = EPD_FRAME_TYPE_COLOUR;
    $params{frame_1_invert} = 0;
    $params{frame_2_invert} = 0;
    
    $params{rotation} //= 0;
    
    $params{can_partial} = 0;
    $params{busy_state}  = RPI_LOW;
    
    $params{power_setting_bytes}      = [ 0x07, 0x00, 0x08, 0x00 ];
    $params{booster_soft_start_bytes} = [ 0x07, 0x07, 0x07 ];
    $params{panel_setting_bytes}      = [ 0x0f, 0x0d ];
    $params{vcom_and_data_byte}       = 0xF7;
    $params{border_control}           = EPD_BORDER_FLOAT;
    $params{pll_control_bytes}        = [ 0x39 ];
    $params{tcon_resolution_bytes}    = [ 0x98, 0x00, 0x98 ];
    $params{vcm_dc_setting_bytes}     = [ 0x0E ];
    

lib/HiPi/Interface/EPaper/Waveshare/EPD200X200.pm  view on Meta::CPAN

    $params{frame_1_type} = EPD_FRAME_TYPE_BLACK;
    $params{frame_2_type} = EPD_FRAME_TYPE_UNUSED;
    $params{frame_1_invert} = 0;
    $params{frame_2_invert} = 0;
    
    $params{rotation} //= 0;
    
    $params{border_control} = EPD_BORDER_POR;
    
    $params{can_partial} = 1;
    $params{busy_state}  = RPI_HIGH;
    
    $params{driver_ouput_control_bytes} = [
        ( $params{device_height} -1 ) & 0xFF,
        (($params{device_height} -1 ) >> 8) & 0xFF,
        0x00,   # // GD = 0; SM = 0; TB = 0;
    ];
    
    $params{booster_soft_start_control_bytes} = [ 0xD7, 0xD6, 0x9D ];
    $params{vcom_register_bytes}     = [ 0xA8 ];
    $params{dummy_line_period_bytes} = [ 0x1A ];

lib/HiPi/Interface/EPaper/Waveshare/EPD200X200B.pm  view on Meta::CPAN

    $params{frame_1_bpp}  = EPD_FRAME_BPP_2;
    $params{frame_2_bpp}  = EPD_FRAME_BPP_1;
    $params{frame_1_type} = EPD_FRAME_TYPE_BLACK;
    $params{frame_2_type} = EPD_FRAME_TYPE_COLOUR;
    $params{frame_1_invert} = 0;
    $params{frame_2_invert} = 0;
    
    $params{rotation} //= 0;
    
    $params{can_partial} = 0;
    $params{busy_state} = RPI_LOW;
    
    $params{power_setting_bytes}      = [ 0x07, 0x00, 0x08, 0x00 ];
    $params{booster_soft_start_bytes} = [ 0x07, 0x07, 0x07 ];
    $params{panel_setting_bytes}      = [ 0xCF ];
    $params{vcom_and_data_byte}      =  0x17;
    $params{border_control}          = EPD_BORDER_BLACK;
    $params{pll_control_bytes}        = [ 0x39 ];
    $params{tcon_resolution_bytes}    = [ 0xC8, 0x00, 0xC8 ];
    $params{vcm_dc_setting_bytes}     = [ 0x0E ];
    

lib/HiPi/Interface/EPaper/Waveshare/EPD212X104.pm  view on Meta::CPAN

    $params{frame_1_bpp}  = EPD_FRAME_BPP_1;
    $params{frame_2_bpp}  = EPD_FRAME_BPP_1;
    $params{frame_1_type} = EPD_FRAME_TYPE_BLACK;
    $params{frame_2_type} = EPD_FRAME_TYPE_COLOUR;
    $params{frame_1_invert} = 0;
    $params{frame_2_invert} = 0;
    
    $params{rotation} //= 90;
    
    $params{can_partial} = 0;
    $params{busy_state} = RPI_LOW;
    
    $params{power_setting_bytes}      = [];
    $params{booster_soft_start_bytes} = [ 0x17, 0x17, 0x17 ];
    $params{panel_setting_bytes}      = [ 0x8F ];
    $params{vcom_and_data_byte}       = 0x37; #Recommended
    $params{border_control}           = EPD_BORDER_WHITE;
    $params{pll_control_bytes}        = [];
    $params{tcon_resolution_bytes}    = [ 0x68, 0x00, 0xD4 ];
    $params{vcm_dc_setting_bytes}     = [];
    

lib/HiPi/Interface/EPaper/Waveshare/EPD250X122.pm  view on Meta::CPAN

    $params{frame_2_bpp}  = EPD_FRAME_BPP_1;
    $params{frame_1_type} = EPD_FRAME_TYPE_BLACK;
    $params{frame_2_type} = EPD_FRAME_TYPE_UNUSED;
    $params{frame_1_invert} = 0;
    $params{frame_2_invert} = 0;
    
    $params{rotation} //= 90;
    
    $params{border_control} = EPD_BORDER_POR;
    $params{can_partial} = 1;
    $params{busy_state}  = RPI_HIGH;
    
    $params{driver_ouput_control_bytes} = [
        ( $params{device_height} -1 ) & 0xFF,
        (($params{device_height} -1 ) >> 8) & 0xFF,
        0x00,   # // GD = 0; SM = 0; TB = 0;
    ];
    
    $params{booster_soft_start_control_bytes} = [ 0xD7, 0xD6, 0x9D ];
    $params{vcom_register_bytes}     = [ 0xA8 ];
    $params{dummy_line_period_bytes} = [ 0x1A ];

lib/HiPi/Interface/EPaper/Waveshare/EPD296X128.pm  view on Meta::CPAN

    $params{frame_2_bpp}  = EPD_FRAME_BPP_1;
    $params{frame_1_type} = EPD_FRAME_TYPE_BLACK;
    $params{frame_2_type} = EPD_FRAME_TYPE_UNUSED;
    $params{frame_1_invert} = 0;
    $params{frame_2_invert} = 0;
    
    $params{rotation} //= 90;
    $params{border_control} = EPD_BORDER_POR;
    
    $params{can_partial} = 1;
    $params{busy_state} = RPI_HIGH;
    
    $params{driver_ouput_control_bytes} = [
        ( $params{device_height} - 1) & 0xFF,
        (($params{device_height} - 1) >> 8) & 0xFF,
        0x00,   # // GD = 0; SM = 0; TB = 0;
        
    ];
    
    $params{driver_ouput_control_bytes} = [ 0x27, 0x01, 0x00 ],
    

lib/HiPi/Interface/EPaper/Waveshare/EPD296X128B.pm  view on Meta::CPAN

    $params{frame_1_bpp}  = EPD_FRAME_BPP_1;
    $params{frame_2_bpp}  = EPD_FRAME_BPP_1;
    $params{frame_1_type} = EPD_FRAME_TYPE_BLACK;
    $params{frame_2_type} = EPD_FRAME_TYPE_COLOUR;
    $params{frame_1_invert} = 0;
    $params{frame_2_invert} = 0;
    
    $params{rotation} //= 90;
    
    $params{can_partial} = 0;
    $params{busy_state} = RPI_LOW;
    
    $params{power_setting_bytes}      = [];
    $params{booster_soft_start_bytes} = [ 0x17, 0x17, 0x17 ];
    $params{panel_setting_bytes}      = [ 0x8F ];
    $params{vcom_and_data_byte}       = 0x77;
    $params{border_control}           = EPD_BORDER_WHITE;
    
    $params{pll_control_bytes}        = [];
    $params{tcon_resolution_bytes}    = [ 0x80, 0x01, 0x28 ];
    $params{vcm_dc_setting_bytes}     = [ 0x0A ];



( run in 0.286 second using v1.01-cache-2.11-cpan-87723dcf8b7 )