EAFDSS
view release on metacpan or search on metacpan
lib/EAFDSS/Micrelec.pm view on Meta::CPAN
}
=head2 PROTO_IssueReport
=cut
sub PROTO_IssueReport {
my($self) = shift @_;
my(%reply, $replyCode, $status1, $status2);
$self->debug(" [PROTO] Issue Report");
%reply = $self->SendRequest(0x21, 0x00, "x/2/0");
if (%reply) {
my($replyCode, $status1, $status2) = split(/\//, $reply{DATA});
return (hex($replyCode));
} else {
return (-1);
}
}
=head2 PROTO_Query
=cut
sub PROTO_Query{
my($self) = shift @_;
$self->debug(" [PROTO] Query ");
my($replyCode, $devices) = $self->_sdnpQuery();
if (! $replyCode) {
return (hex($replyCode), $devices);
} else {
return ($self->error());
}
}
=head2 errMessage
=cut
sub errMessage {
my($self) = shift @_;
my($errCode) = shift @_;
switch ($errCode) {
case 00+0x00 { return "No errors - success"}
case 00+0x01 { return "Wrong number of fields"}
case 00+0x02 { return "Field too long"}
case 00+0x03 { return "Field too small"}
case 00+0x04 { return "Field fixed size mismatch"}
case 00+0x05 { return "Field range or type check failed"}
case 00+0x06 { return "Bad request code"}
case 00+0x09 { return "Printing type bad"}
case 00+0x0A { return "Cannot execute with day open"}
case 00+0x0B { return "RTC programming requires jumper"}
case 00+0x0C { return "RTC date or time invalid"}
case 00+0x0D { return "No records in fiscal period"}
case 00+0x0E { return "Device is busy in another task"}
case 00+0x0F { return "No more header records allowed"}
case 00+0x10 { return "Cannot execute with block open"}
case 00+0x11 { return "Block not open"}
case 00+0x12 { return "Bad data stream"}
case 00+0x13 { return "Bad signature field"}
case 00+0x14 { return "Z closure time limit"}
case 00+0x15 { return "Z closure not found"}
case 00+0x16 { return "Z closure record bad"}
case 00+0x17 { return "User browsing in progress"}
case 00+0x18 { return "Signature daily limit reached"}
case 00+0x19 { return "Printer paper end detected"}
case 00+0x1A { return "Printer is offline"}
case 00+0x1B { return "Fiscal unit is offline"}
case 00+0x1C { return "Fatal hardware error"}
case 00+0x1D { return "Fiscal unit is full"}
case 00+0x1E { return "No data passed for signature"}
case 00+0x1F { return "Signature does not exist"}
case 00+0x20 { return "Battery fault detected"}
case 00+0x21 { return "Recovery in progress"}
case 00+0x22 { return "Recovery only after CMOS reset"}
case 00+0x23 { return "Real-Time Clock needs programming"}
case 00+0x24 { return "Z closure date warning"}
case 00+0x25 { return "Bad character in stream"}
case 00+0x26 { return ""}
case 00+0x01 { return "Device not accessible"}
case 64+0x01 { return "Device not accessible"}
case 64+0x02 { return "No such file"}
case 64+0x03 { return "Device Sync Failed"}
case 64+0x04 { return "Bad Serial Number"}
case 64+0x05 { return "Query found no devices"}
case 64+0x10 { return "File contains invalid characters"}
else { return undef}
}
}
=head2 UTIL_devStatus
=cut
sub UTIL_devStatus {
my($self) = shift @_;
my($status) = sprintf("%08b", shift);
my(@status) = split(//, $status);
my($busy, $fatal, $paper, $cmos, $printer, $user, $fiscal, $battery) =
($status[7],$status[6],$status[5],$status[4],$status[3],$status[2],$status[1],$status[0]);
return ($busy, $fatal, $paper, $cmos, $printer, $user, $fiscal, $battery);
}
=head2 UTIL_appStatus
=cut
sub UTIL_appStatus {
my($self) = shift @_;
my($status) = sprintf("%08b", shift);
my(@status) = split(//, $status);
my($day, $signature, $recovery, $fiscalWarn, $dailyFull, $fiscalFull) =
($status[6],$status[5],$status[4],$status[2],$status[1],$status[0]);
return ($day, $signature, $recovery, $fiscalWarn, $dailyFull, $fiscalFull);
}
=head2 UTIL_date6ToHost
=cut
sub UTIL_date6ToHost {
my($self) = shift @_;
my($var) = shift @_;
$var =~ s/(\d\d)(\d\d)(\d\d)/$3$2$1/;
return $var;
}
=head2 UTIL_time6toHost
=cut
sub UTIL_time6toHost {
my($self) = shift @_;
my($var) = shift @_;
$var =~ s/(\d\d)(\d\d)(\d\d)/$1$2/;
return $var;
}
# Preloaded methods go here.
1;
=head1 VERSION
This is version 0.80.
=head1 AUTHOR
Hasiotis Nikos, E<lt>hasiotis@gmail.comE<gt>
=head1 COPYRIGHT AND LICENSE
Copyright (C) 2008 by Hasiotis Nikos
( run in 1.585 second using v1.01-cache-2.11-cpan-5a3173703d6 )