<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://ocotal.iarc.uaf.edu/index.php?action=history&amp;feed=atom&amp;title=Src-perl-Campbell%3A%3AComm</id>
	<title>Src-perl-Campbell::Comm - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://ocotal.iarc.uaf.edu/index.php?action=history&amp;feed=atom&amp;title=Src-perl-Campbell%3A%3AComm"/>
	<link rel="alternate" type="text/html" href="http://ocotal.iarc.uaf.edu/index.php?title=Src-perl-Campbell::Comm&amp;action=history"/>
	<updated>2026-04-19T20:05:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://ocotal.iarc.uaf.edu/index.php?title=Src-perl-Campbell::Comm&amp;diff=375&amp;oldid=prev</id>
		<title>imported&gt;Ken at 21:27, 6 July 2007</title>
		<link rel="alternate" type="text/html" href="http://ocotal.iarc.uaf.edu/index.php?title=Src-perl-Campbell::Comm&amp;diff=375&amp;oldid=prev"/>
		<updated>2007-07-06T21:27:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Campbell/Comm.pm=&lt;br /&gt;
&lt;br /&gt;
This module becomes part of a Perl program via the '''use''' or '''require'''&lt;br /&gt;
keywords.   It provides the machinery to connect and send/receive commands&lt;br /&gt;
to/from a remote datalogger using Perl's object-oriented programming&lt;br /&gt;
methodology.  Individual ''methods'' are provided corresponding to some/most&lt;br /&gt;
of the ''telecommunications'' commands documented in the Campbell Scientific&lt;br /&gt;
CR10 family manuals.&lt;br /&gt;
&lt;br /&gt;
Another Perl module is needed in order to interact with remote dataloggers,&lt;br /&gt;
and that is Net::Telnet, which is included in the standard Perl distribution.&lt;br /&gt;
This module allows automating the telnet protocol, but boils down to being&lt;br /&gt;
able to send commands to the remote system and then wait for and handle&lt;br /&gt;
responses -- or no response, if that's necessary.&lt;br /&gt;
&lt;br /&gt;
Besides the nominal TCP/IP connections, Net::Telnet is capable of supporting&lt;br /&gt;
interfaces using a direct serial or modem connection.  This usage is&lt;br /&gt;
implemented in the (or various...) open() methods.&lt;br /&gt;
&lt;br /&gt;
A ''bug'' in Net::Telnet (this is my view; it may be considered a ''feature''&lt;br /&gt;
by the authors...) requires a patch; this should be represented in the&lt;br /&gt;
Net::Telnet version included in the above tree.  Specifically, Net::Telnet&lt;br /&gt;
goes out of its way to handle ''timeouts'' using ''wall'' time (i.e., absolute&lt;br /&gt;
time as measured on a wall clock) rather than ''relative'' inactivity time&lt;br /&gt;
as used in the underlying select() system function.  In our case the latter&lt;br /&gt;
form is required due to the many levels and sources of latency in the&lt;br /&gt;
communication system.&lt;br /&gt;
&lt;br /&gt;
The Perl Expect module might provide a good alternative to Net::Telnet if&lt;br /&gt;
Campbell::Comm were to be rewritten.  Both provide the key functionality&lt;br /&gt;
of being able to wait for and selectivly match on responses from the&lt;br /&gt;
remote system.&lt;br /&gt;
&lt;br /&gt;
Due to the specific need to communicate with dataloggers via FreeWave&lt;br /&gt;
radios, the Campbell::Comm module was written with this capability perhaps&lt;br /&gt;
too implicitly.  A rewrite (anticipated) should remove any code not&lt;br /&gt;
directly concerned with the Campbell dataloggers.&lt;/div&gt;</summary>
		<author><name>imported&gt;Ken</name></author>
		
	</entry>
</feed>