view release on metacpan or search on metacpan
lib/HiPi/Huawei/Errors.pm view on Meta::CPAN
2425262728293031323334353637383940414243444546474849505152
'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
1516171819202122232425262728293031323334353637use
Carp;
__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
404142434445464748495051525354555657585960616263646566676869my
(
$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
145146147148149150151152153154155156157158159160161162163164165
$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
179180181182183184185186187188189190191192193194195196197198199sub
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
27282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
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
67686970717273747576777879808182838485868788899091
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
66676869707172737475767778798081828384858687888990
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
323334353637383940414243444546474849505152$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
333435363738394041424344454647484950515253$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
313233343536373839404142434445464748495051$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
363738394041424344454647484950515253545556$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
323334353637383940414243444546474849505152$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
323334353637383940414243444546474849505152$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
313233343536373839404142434445464748495051$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 ];