From 7108951ead6fcb1d3719c4ea7c79cfffc520ed02 Mon Sep 17 00:00:00 2001 From: Dobrica Pavlinusic Date: Wed, 16 Dec 2009 16:39:58 +0100 Subject: [PATCH] move SIP2::send into package --- SIP2.pm | 24 ++++++++++++++++++++++++ sc-emulator.pl | 33 +++++++++++++-------------------- 2 files changed, 37 insertions(+), 20 deletions(-) diff --git a/SIP2.pm b/SIP2.pm index 612525a..e5ec9bd 100644 --- a/SIP2.pm +++ b/SIP2.pm @@ -2,6 +2,13 @@ package SIP2; use Data::Dump qw(); +our $sock; + +sub connect { + $sock = IO::Socket::INET->new( @_ ) || die "can't connect to ", dump(@_), ": $!"; +} + + my $message_codes; foreach ( ) { my ($code,$description) = split(/\t/,$_,2); @@ -15,6 +22,23 @@ sub dump_message { warn $prefix, " ", $message_codes->{$code}, Data::Dump::dump($message), "\n"; } + +sub send { + my ( $send ) = @_; + SIP2::dump_message '>>>>', $send; + print $sock "$send\r\n"; + $sock->flush; + +# local $/ = "\r"; + + my $expect = substr($send,0,2) | 0x01; + + my $in = <$sock>; + SIP2::dump_message '<<<<', $in; + die "expected $expect" unless substr($in,0,2) != $expect; +} + + 1; __DATA__ diff --git a/sc-emulator.pl b/sc-emulator.pl index 9bdf08a..3488612 100755 --- a/sc-emulator.pl +++ b/sc-emulator.pl @@ -16,34 +16,27 @@ require 'config.pl' if -e 'config.pl'; use SIP2; -our $sock = IO::Socket::INET->new( '10.60.0.251:6001' ); - - -sub sip2 { - my ( $send, $patt ) = @_; - SIP2::dump_message '>>>>', $send; - print $sock "$send\r\n"; - $sock->flush; - -# local $/ = "\r"; - - my $in = <$sock>; - SIP2::dump_message '<<<<', $in; - die "expected $patt" unless $in =~ $patt; -} +SIP2::connect '10.60.0.251:6001'; # login -sip2 "9300CN$user|CO$password|" => qr/^941/; +SIP2::send "9300CN$user|CO$password|"; # SC Status -sip2 "9900302.00" => qr/^98/; +SIP2::send "9900302.00"; # Patron Information -sip2 "6300020091214 085452 AO$loc|AA$patron|AC$password|" => qr/^64/; +SIP2::send "6300020091214 085452 AO$loc|AA$patron|AC$password|"; # Checkout -sip2 "11YN20091214 124436 AO$loc|AA$patron|AB$barcode|AC$password|BON|BIN|" => qw/12/; +SIP2::send "11YN20091214 124436 AO$loc|AA$patron|AB$barcode|AC$password|BON|BIN|"; # Checkin -sip2 "09N20091214 08142820091214 081428AP|AO$loc|AB$barcode|AC|BIN|" => qr/^10/; +SIP2::send "09N20091214 08142820091214 081428AP|AO$loc|AB$barcode|AC|BIN|"; + + +# checkout another +SIP2::send "09N20091216 15320820091216 153208AP|AOFFZG|AB200903160190|ACviva2koha|BIN|"; + +# status +SIP2::send "9900302.00"; -- 2.20.1