+sub read_serial {
+ my $len = shift;
+ return $port->read( $len );
+}
+
+sub write_serial {
+ my $bytes = shift;
+ return $port->write( $bytes );
+}
+
+=cut
+
+# TODO: implement remote serial port
+# remserial -x 2 -p 23000 -s "9600 raw" /dev/ttyUSB0
+
+use IO::Socket::INET;
+
+my $sock = IO::Socket::INET->new(
+ PeerAddr => '192.168.1.148',
+ PeerPort => '23000',
+ Proto => 'tcp'
+);
+die "can't connect" unless $sock;
+
+sub read_serial {
+ my $len = shift;
+ my $buffer;
+ eval {
+ local $SIG{ALRM} = sub { die "read timeout" };
+ alarm 3;
+
+ warn "## read_serial $len" if $debug;
+ $sock->read( $buffer, $len );
+ warn "## read $len ",as_hex($buffer) if $debug;
+ };
+ alarm 0;
+ warn "ERROR: $@" if $@;
+ return $buffer;
+}
+
+sub write_serial {
+ my $bytes = shift;
+ return $sock->print( $bytes );
+}
+
+