<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>虎子哥的黑板报</title>
	
	<link>http://www.freegezi.net/blog</link>
	<description>天文,摄影,Flash,Action Script,AIR,RIA</description>
	<lastBuildDate>Sun, 29 Nov 2009 10:24:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Freegezi" /><feedburner:info uri="freegezi" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>2009上海马拉松</title>
		<link>http://feedproxy.google.com/~r/Freegezi/~3/BNgtzFBJAI8/743.html</link>
		<comments>http://www.freegezi.net/blog/post/743.html#comments</comments>
		<pubDate>Sun, 29 Nov 2009 10:24:16 +0000</pubDate>
		<dc:creator>虎子哥</dc:creator>
				<category><![CDATA[Gallery]]></category>
		<category><![CDATA[七嘴八舌]]></category>

		<guid isPermaLink="false">http://www.freegezi.net/blog/?p=743</guid>
		<description><![CDATA[








]]></description>
			<content:encoded><![CDATA[<p><img class="framed" src="/blog/wp-content/uploads/2009/11/toray/2.jpg" alt="" width='540px'/><br />
<img class="framed" src="/blog/wp-content/uploads/2009/11/toray/3.jpg" alt="" width='540px'/><br />
<img class="framed" src="/blog/wp-content/uploads/2009/11/toray/4.jpg" alt="" width='540px'/><br />
<img class="framed" src="/blog/wp-content/uploads/2009/11/toray/5.jpg" alt="" width='540px'/><br />
<img class="framed" src="/blog/wp-content/uploads/2009/11/toray/6.jpg" alt="" width='540px'/><br />
<img class="framed" src="/blog/wp-content/uploads/2009/11/toray/8.jpg" alt="" width='540px'/><br />
<img class="framed" src="/blog/wp-content/uploads/2009/11/toray/9.jpg" alt="" width='540px'/><br />
<img class="framed" src="/blog/wp-content/uploads/2009/11/toray/14.jpg" alt="" width='540px'/><br />
<img class="framed" src="/blog/wp-content/uploads/2009/11/toray/20.jpg" alt="" width='540px'/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.freegezi.net/blog/post/743.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.freegezi.net/blog/post/743.html</feedburner:origLink></item>
		<item>
		<title>lxd75赤纬轴改单轴赤道仪</title>
		<link>http://feedproxy.google.com/~r/Freegezi/~3/gi6LkHM_EEc/740.html</link>
		<comments>http://www.freegezi.net/blog/post/740.html#comments</comments>
		<pubDate>Fri, 27 Nov 2009 15:59:36 +0000</pubDate>
		<dc:creator>虎子哥</dc:creator>
				<category><![CDATA[天行健]]></category>

		<guid isPermaLink="false">http://www.freegezi.net/blog/?p=740</guid>
		<description><![CDATA[
LXD75赤纬轴+晶华经纬仪+信达单轴电跟
]]></description>
			<content:encoded><![CDATA[<p><img src="/blog/wp-content/uploads/2009/11/IMG_6235.jpg" alt="单轴赤道仪" class="framed" /><br />
LXD75赤纬轴+晶华经纬仪+信达单轴电跟</p>
]]></content:encoded>
			<wfw:commentRss>http://www.freegezi.net/blog/post/740.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.freegezi.net/blog/post/740.html</feedburner:origLink></item>
		<item>
		<title>LX200串口命令（JAVA描述）</title>
		<link>http://feedproxy.google.com/~r/Freegezi/~3/L-Ii5qxP-lo/733.html</link>
		<comments>http://www.freegezi.net/blog/post/733.html#comments</comments>
		<pubDate>Mon, 23 Nov 2009 08:03:27 +0000</pubDate>
		<dc:creator>虎子哥</dc:creator>
				<category><![CDATA[天行健]]></category>

		<guid isPermaLink="false">http://www.freegezi.net/blog/?p=733</guid>
		<description><![CDATA[
/**
&#160;*&#160;The&#160;LX200&#160;class&#160;encapsulates&#160;an&#160;LX200&#160;telescope.
&#160;*&#160;Copyright&#160;(C)&#160;1999-2001&#160;Mark&#160;Hale
&#160;*&#160;@author&#160;Mark&#160;Hale
&#160;*/
package&#160;JSci.astro.telescope;
&#160;import&#160;java.io.*;
&#160;import&#160;javax.comm.*;
&#160;public&#160;final&#160;class&#160;LX200&#160;extends&#160;Object&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;private&#160;SerialPort&#160;serial;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;private&#160;InputStreamReader&#160;in;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;private&#160;OutputStreamWriter&#160;out;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Focus&#160;rates.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;final&#160;static&#160;int&#160;FOCUS_FAST=1;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;final&#160;static&#160;int&#160;FOCUS_SLOW=2;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Focus&#160;directions.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;final&#160;static&#160;int&#160;FOCUS_IN=1;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;final&#160;static&#160;int&#160;FOCUS_OUT=2;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Slew&#160;rates.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;final&#160;static&#160;int&#160;SLEW_SLEW=1;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;final&#160;static&#160;int&#160;SLEW_FIND=2;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;final&#160;static&#160;int&#160;SLEW_CENTER=3;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;final&#160;static&#160;int&#160;SLEW_GUIDE=4;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Slew&#160;directions.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;final&#160;static&#160;int&#160;SLEW_NORTH=1;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;final&#160;static&#160;int&#160;SLEW_EAST=2;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;final&#160;static&#160;int&#160;SLEW_SOUTH=3;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;final&#160;static&#160;int&#160;SLEW_WEST=4;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Convert&#160;RA&#160;from&#160;a&#160;string&#160;to&#160;a&#160;number.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;static&#160;float&#160;raToFloat(String&#160;ra)&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;final&#160;float&#160;hrs=Integer.valueOf(ra.substring(0,2)).floatValue();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;final&#160;float&#160;mins=Integer.valueOf(ra.substring(3,5)).floatValue();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;final&#160;float&#160;secs=Integer.valueOf(ra.substring(6,8)).floatValue();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;hrs+mins/60.0f+secs/600.0f;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Convert&#160;dec&#160;from&#160;a&#160;string&#160;to&#160;a&#160;number.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;static&#160;float&#160;decToFloat(String&#160;dec)&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;final&#160;float&#160;degs=Integer.valueOf(dec.substring(0,3)).floatValue();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;final&#160;float&#160;mins=Integer.valueOf(dec.substring(4,6)).floatValue();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;final&#160;float&#160;secs=Integer.valueOf(dec.substring(7,9)).floatValue();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(degs>=0.0)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;degs+mins/60.0f+secs/600.0f;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;degs-mins/60.0f-secs/600.0f;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Convert&#160;alt&#160;from&#160;a&#160;string&#160;to&#160;a&#160;number.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;static&#160;float&#160;altToFloat(String&#160;alt)&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;final&#160;float&#160;degs=Integer.valueOf(alt.substring(0,3)).floatValue();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;final&#160;float&#160;mins=Integer.valueOf(alt.substring(4,6)).floatValue();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;final&#160;float&#160;secs=Integer.valueOf(alt.substring(7,9)).floatValue();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(degs>=0.0)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;degs+mins/60.0f+secs/600.0f;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;else
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;degs-mins/60.0f-secs/600.0f;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Convert&#160;az&#160;from&#160;a&#160;string&#160;to&#160;a&#160;number.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;static&#160;float&#160;azToFloat(String&#160;az)&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;final&#160;float&#160;degs=Integer.valueOf(az.substring(0,3)).floatValue();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;final&#160;float&#160;mins=Integer.valueOf(az.substring(4,6)).floatValue();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;final&#160;float&#160;secs=Integer.valueOf(az.substring(7,9)).floatValue();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;degs+mins/60.0f+secs/600.0f;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Constructs&#160;an&#160;LX200&#160;object.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;LX200(String&#160;port)&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;try&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;CommPortIdentifier&#160;portID=CommPortIdentifier.getPortIdentifier(port);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;serial=(SerialPort)portID.open("LX200",10);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;serial.setSerialPortParams(9600,SerialPort.DATABITS_8,
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;in=new&#160;InputStreamReader(serial.getInputStream());
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;out=new&#160;OutputStreamWriter(serial.getOutputStream());
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;setHighPrecision(true);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;setLongFormat(true);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}&#160;catch(NoSuchPortException&#160;e)&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;System.err.println("Port&#160;does&#160;not&#160;exist:&#160;"+e.getMessage());
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;e.printStackTrace();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}&#160;catch(PortInUseException&#160;e)&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;System.err.println("Port&#160;is&#160;in&#160;use&#160;by&#160;another&#160;process:&#160;"+e.getMessage());
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;e.printStackTrace();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}&#160;catch(UnsupportedCommOperationException&#160;e)&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}&#160;catch(IOException&#160;e)&#160;{}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Sets&#160;high&#160;precision.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;synchronized&#160;void&#160;setHighPrecision(boolean&#160;setHigh)&#160;throws&#160;IOException&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;final&#160;boolean&#160;isHigh=toggleHighPrecision();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(setHigh!=isHigh)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;toggleHighPrecision();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;private&#160;boolean&#160;toggleHighPrecision()&#160;throws&#160;IOException&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;char&#160;reply[]=new&#160;char[14];
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sendCmd("#:P#");
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;in.read(reply,0,14);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;(reply[0]=='H');
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Sets&#160;long&#160;format.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;synchronized&#160;void&#160;setLongFormat(boolean&#160;setLong)&#160;throws&#160;IOException&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;final&#160;boolean&#160;isLong=isLongFormatEnabled();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(setLong!=isLong)
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sendCmd("#:U#");
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;private&#160;boolean&#160;isLongFormatEnabled()&#160;throws&#160;IOException&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sendCmd("#:GR#");
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;String&#160;reply=readString();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;(reply.length()==9);
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Set&#160;focus&#160;rate.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;synchronized&#160;void&#160;setFocusRate(int&#160;rate)&#160;throws&#160;IOException&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;switch(rate)&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case&#160;FOCUS_FAST:&#160;sendCmd("#:FF#");break;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case&#160;FOCUS_SLOW:&#160;sendCmd("#:FS#");break;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Start&#160;focus.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;synchronized&#160;void&#160;startFocus(int&#160;direction)&#160;throws&#160;IOException&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;switch(direction)&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case&#160;FOCUS_IN:&#160;sendCmd("#:F+#");break;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case&#160;FOCUS_OUT:&#160;sendCmd("#:F-#");break;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Stop&#160;focus.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;synchronized&#160;void&#160;stopFocus()&#160;throws&#160;IOException&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sendCmd("#:FQ#");
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Set&#160;slew&#160;rate.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;synchronized&#160;void&#160;setSlewRate(int&#160;rate)&#160;throws&#160;IOException&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;switch(rate)&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case&#160;SLEW_SLEW:&#160;sendCmd("#:RS#");break;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case&#160;SLEW_FIND:&#160;sendCmd("#:RM#");break;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case&#160;SLEW_CENTER:&#160;sendCmd("#:RC#");break;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case&#160;SLEW_GUIDE:&#160;sendCmd("#:RG#");break;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Start&#160;slewing&#160;the&#160;scope.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;@param&#160;direction&#160;the&#160;direction&#160;to&#160;start&#160;slewing&#160;in.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;synchronized&#160;void&#160;startSlew(int&#160;direction)&#160;throws&#160;IOException&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;switch(direction)&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case&#160;SLEW_NORTH:&#160;sendCmd("#:Mn#");break;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case&#160;SLEW_EAST:&#160;sendCmd("#:Me#");break;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case&#160;SLEW_SOUTH:&#160;sendCmd("#:Ms#");break;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case&#160;SLEW_WEST:&#160;sendCmd("#:Mw#");break;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Stop&#160;slewing&#160;the&#160;scope.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;@param&#160;direction&#160;the&#160;direction&#160;to&#160;stop&#160;slewing&#160;in.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;synchronized&#160;void&#160;stopSlew(int&#160;direction)&#160;throws&#160;IOException&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;switch(direction)&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case&#160;SLEW_NORTH:&#160;sendCmd("#:Qn#");break;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case&#160;SLEW_EAST:&#160;sendCmd("#:Qe#");break;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case&#160;SLEW_SOUTH:&#160;sendCmd("#:Qs#");break;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;case&#160;SLEW_WEST:&#160;sendCmd("#:Qw#");break;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Returns&#160;the&#160;current&#160;RA.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;synchronized&#160;String&#160;getRA()&#160;throws&#160;IOException&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sendCmd("#:GR#");
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;readString();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Returns&#160;the&#160;current&#160;dec.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;synchronized&#160;String&#160;getDec()&#160;throws&#160;IOException&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sendCmd("#:GD#");
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;readString();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Returns&#160;the&#160;current&#160;alt.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;synchronized&#160;String&#160;getAlt()&#160;throws&#160;IOException&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sendCmd("#:GA#");
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;readString();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Returns&#160;the&#160;current&#160;az.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;synchronized&#160;String&#160;getAz()&#160;throws&#160;IOException&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sendCmd("#:GZ#");
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;readString();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Sets&#160;the&#160;object/target&#160;coordinates.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;synchronized&#160;boolean&#160;setObjectCoords(String&#160;ra,String&#160;dec)&#160;throws&#160;IOException&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;boolean&#160;rc;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sendCmd("#:Sr"+ra+"#");
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;rc=readBoolean();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sendCmd("#:Sd"+dec+"#");
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;rc&#038;=readBoolean();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;rc;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Slew&#160;to&#160;the&#160;object&#160;coordinates.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;@return&#160;0&#160;if&#160;slew&#160;is&#160;possible,
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;1&#160;if&#160;object&#160;is&#160;below&#160;the&#160;horizon,
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;2&#160;if&#160;object&#160;is&#160;below&#160;the&#160;higher.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;synchronized&#160;int&#160;slewToObject()&#160;throws&#160;IOException&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;sendCmd("#:MS#");
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;final&#160;int&#160;rc=in.read();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(rc=='0')&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;0;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}&#160;else&#160;if(rc=='1')&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;readString();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;1;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}&#160;else&#160;if(rc=='2')&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;readString();
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;2;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}&#160;else
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;-1;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;/**
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;Checks&#160;the&#160;scope's&#160;position.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;@param&#160;ra&#160;RA&#160;to&#160;check&#160;against.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*&#160;@param&#160;dec&#160;dec&#160;to&#160;check&#160;against.
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;*/
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public&#160;synchronized&#160;boolean&#160;checkPosition(float&#160;ra,float&#160;dec)&#160;throws&#160;IOException&#160;{
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;final&#160;float&#160;raError=raToFloat(getRA())-ra;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;final&#160;float&#160;decError=decToFloat(getDec())-dec;
&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;return&#160;(Math.abs(raError)&#160;]]></description>
			<content:encoded><![CDATA[<p><code><br />
/**<br />
&nbsp;*&nbsp;The&nbsp;LX200&nbsp;class&nbsp;encapsulates&nbsp;an&nbsp;LX200&nbsp;telescope.<br />
&nbsp;*&nbsp;Copyright&nbsp;(C)&nbsp;1999-2001&nbsp;Mark&nbsp;Hale<br />
&nbsp;*&nbsp;@author&nbsp;Mark&nbsp;Hale<br />
&nbsp;*/</p>
<p>package&nbsp;JSci.astro.telescope;</p>
<p>&nbsp;import&nbsp;java.io.*;<br />
&nbsp;import&nbsp;javax.comm.*;</p>
<p>&nbsp;public&nbsp;final&nbsp;class&nbsp;LX200&nbsp;extends&nbsp;Object&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;SerialPort&nbsp;serial;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;InputStreamReader&nbsp;in;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;OutputStreamWriter&nbsp;out;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Focus&nbsp;rates.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;final&nbsp;static&nbsp;int&nbsp;FOCUS_FAST=1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;final&nbsp;static&nbsp;int&nbsp;FOCUS_SLOW=2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Focus&nbsp;directions.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;final&nbsp;static&nbsp;int&nbsp;FOCUS_IN=1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;final&nbsp;static&nbsp;int&nbsp;FOCUS_OUT=2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Slew&nbsp;rates.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;final&nbsp;static&nbsp;int&nbsp;SLEW_SLEW=1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;final&nbsp;static&nbsp;int&nbsp;SLEW_FIND=2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;final&nbsp;static&nbsp;int&nbsp;SLEW_CENTER=3;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;final&nbsp;static&nbsp;int&nbsp;SLEW_GUIDE=4;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Slew&nbsp;directions.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;final&nbsp;static&nbsp;int&nbsp;SLEW_NORTH=1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;final&nbsp;static&nbsp;int&nbsp;SLEW_EAST=2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;final&nbsp;static&nbsp;int&nbsp;SLEW_SOUTH=3;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;final&nbsp;static&nbsp;int&nbsp;SLEW_WEST=4;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Convert&nbsp;RA&nbsp;from&nbsp;a&nbsp;string&nbsp;to&nbsp;a&nbsp;number.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;float&nbsp;raToFloat(String&nbsp;ra)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;float&nbsp;hrs=Integer.valueOf(ra.substring(0,2)).floatValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;float&nbsp;mins=Integer.valueOf(ra.substring(3,5)).floatValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;float&nbsp;secs=Integer.valueOf(ra.substring(6,8)).floatValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;hrs+mins/60.0f+secs/600.0f;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Convert&nbsp;dec&nbsp;from&nbsp;a&nbsp;string&nbsp;to&nbsp;a&nbsp;number.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;float&nbsp;decToFloat(String&nbsp;dec)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;float&nbsp;degs=Integer.valueOf(dec.substring(0,3)).floatValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;float&nbsp;mins=Integer.valueOf(dec.substring(4,6)).floatValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;float&nbsp;secs=Integer.valueOf(dec.substring(7,9)).floatValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(degs>=0.0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;degs+mins/60.0f+secs/600.0f;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;degs-mins/60.0f-secs/600.0f;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Convert&nbsp;alt&nbsp;from&nbsp;a&nbsp;string&nbsp;to&nbsp;a&nbsp;number.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;float&nbsp;altToFloat(String&nbsp;alt)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;float&nbsp;degs=Integer.valueOf(alt.substring(0,3)).floatValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;float&nbsp;mins=Integer.valueOf(alt.substring(4,6)).floatValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;float&nbsp;secs=Integer.valueOf(alt.substring(7,9)).floatValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(degs>=0.0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;degs+mins/60.0f+secs/600.0f;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;degs-mins/60.0f-secs/600.0f;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Convert&nbsp;az&nbsp;from&nbsp;a&nbsp;string&nbsp;to&nbsp;a&nbsp;number.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;float&nbsp;azToFloat(String&nbsp;az)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;float&nbsp;degs=Integer.valueOf(az.substring(0,3)).floatValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;float&nbsp;mins=Integer.valueOf(az.substring(4,6)).floatValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;float&nbsp;secs=Integer.valueOf(az.substring(7,9)).floatValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;degs+mins/60.0f+secs/600.0f;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Constructs&nbsp;an&nbsp;LX200&nbsp;object.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;LX200(String&nbsp;port)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CommPortIdentifier&nbsp;portID=CommPortIdentifier.getPortIdentifier(port);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serial=(SerialPort)portID.open("LX200",10);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serial.setSerialPortParams(9600,SerialPort.DATABITS_8,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SerialPort.STOPBITS_1,SerialPort.PARITY_NONE);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in=new&nbsp;InputStreamReader(serial.getInputStream());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out=new&nbsp;OutputStreamWriter(serial.getOutputStream());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setHighPrecision(true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setLongFormat(true);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch(NoSuchPortException&nbsp;e)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.err.println("Port&nbsp;does&nbsp;not&nbsp;exist:&nbsp;"+e.getMessage());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch(PortInUseException&nbsp;e)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.err.println("Port&nbsp;is&nbsp;in&nbsp;use&nbsp;by&nbsp;another&nbsp;process:&nbsp;"+e.getMessage());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch(UnsupportedCommOperationException&nbsp;e)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch(IOException&nbsp;e)&nbsp;{}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Sets&nbsp;high&nbsp;precision.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;void&nbsp;setHighPrecision(boolean&nbsp;setHigh)&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;boolean&nbsp;isHigh=toggleHighPrecision();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(setHigh!=isHigh)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;toggleHighPrecision();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;boolean&nbsp;toggleHighPrecision()&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;reply[]=new&nbsp;char[14];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendCmd("#:P#");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in.read(reply,0,14);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(reply[0]=='H');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Sets&nbsp;long&nbsp;format.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;void&nbsp;setLongFormat(boolean&nbsp;setLong)&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;boolean&nbsp;isLong=isLongFormatEnabled();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(setLong!=isLong)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendCmd("#:U#");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;boolean&nbsp;isLongFormatEnabled()&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendCmd("#:GR#");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;reply=readString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(reply.length()==9);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Set&nbsp;focus&nbsp;rate.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;void&nbsp;setFocusRate(int&nbsp;rate)&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch(rate)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;FOCUS_FAST:&nbsp;sendCmd("#:FF#");break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;FOCUS_SLOW:&nbsp;sendCmd("#:FS#");break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Start&nbsp;focus.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;void&nbsp;startFocus(int&nbsp;direction)&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch(direction)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;FOCUS_IN:&nbsp;sendCmd("#:F+#");break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;FOCUS_OUT:&nbsp;sendCmd("#:F-#");break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Stop&nbsp;focus.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;void&nbsp;stopFocus()&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendCmd("#:FQ#");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Set&nbsp;slew&nbsp;rate.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;void&nbsp;setSlewRate(int&nbsp;rate)&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch(rate)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;SLEW_SLEW:&nbsp;sendCmd("#:RS#");break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;SLEW_FIND:&nbsp;sendCmd("#:RM#");break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;SLEW_CENTER:&nbsp;sendCmd("#:RC#");break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;SLEW_GUIDE:&nbsp;sendCmd("#:RG#");break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Start&nbsp;slewing&nbsp;the&nbsp;scope.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;direction&nbsp;the&nbsp;direction&nbsp;to&nbsp;start&nbsp;slewing&nbsp;in.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;void&nbsp;startSlew(int&nbsp;direction)&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch(direction)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;SLEW_NORTH:&nbsp;sendCmd("#:Mn#");break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;SLEW_EAST:&nbsp;sendCmd("#:Me#");break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;SLEW_SOUTH:&nbsp;sendCmd("#:Ms#");break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;SLEW_WEST:&nbsp;sendCmd("#:Mw#");break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Stop&nbsp;slewing&nbsp;the&nbsp;scope.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;direction&nbsp;the&nbsp;direction&nbsp;to&nbsp;stop&nbsp;slewing&nbsp;in.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;void&nbsp;stopSlew(int&nbsp;direction)&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch(direction)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;SLEW_NORTH:&nbsp;sendCmd("#:Qn#");break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;SLEW_EAST:&nbsp;sendCmd("#:Qe#");break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;SLEW_SOUTH:&nbsp;sendCmd("#:Qs#");break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;SLEW_WEST:&nbsp;sendCmd("#:Qw#");break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Returns&nbsp;the&nbsp;current&nbsp;RA.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;String&nbsp;getRA()&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendCmd("#:GR#");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;readString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Returns&nbsp;the&nbsp;current&nbsp;dec.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;String&nbsp;getDec()&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendCmd("#:GD#");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;readString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Returns&nbsp;the&nbsp;current&nbsp;alt.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;String&nbsp;getAlt()&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendCmd("#:GA#");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;readString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Returns&nbsp;the&nbsp;current&nbsp;az.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;String&nbsp;getAz()&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendCmd("#:GZ#");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;readString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Sets&nbsp;the&nbsp;object/target&nbsp;coordinates.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;boolean&nbsp;setObjectCoords(String&nbsp;ra,String&nbsp;dec)&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;rc;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendCmd("#:Sr"+ra+"#");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rc=readBoolean();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendCmd("#:Sd"+dec+"#");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rc&#038;=readBoolean();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;rc;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Slew&nbsp;to&nbsp;the&nbsp;object&nbsp;coordinates.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@return&nbsp;0&nbsp;if&nbsp;slew&nbsp;is&nbsp;possible,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;1&nbsp;if&nbsp;object&nbsp;is&nbsp;below&nbsp;the&nbsp;horizon,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;2&nbsp;if&nbsp;object&nbsp;is&nbsp;below&nbsp;the&nbsp;higher.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;int&nbsp;slewToObject()&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendCmd("#:MS#");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;int&nbsp;rc=in.read();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(rc=='0')&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;if(rc=='1')&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;readString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;if(rc=='2')&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;readString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;2;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;-1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Checks&nbsp;the&nbsp;scope's&nbsp;position.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;ra&nbsp;RA&nbsp;to&nbsp;check&nbsp;against.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;@param&nbsp;dec&nbsp;dec&nbsp;to&nbsp;check&nbsp;against.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;boolean&nbsp;checkPosition(float&nbsp;ra,float&nbsp;dec)&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;float&nbsp;raError=raToFloat(getRA())-ra;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;float&nbsp;decError=decToFloat(getDec())-dec;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(Math.abs(raError)&nbsp;<=&nbsp;1.0/(15.0*30.0))&nbsp;&#038;&&nbsp;(Math.abs(decError)&nbsp;<=&nbsp;1.0/30.0);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Check&nbsp;whether&nbsp;the&nbsp;scope&nbsp;is&nbsp;moving.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;boolean&nbsp;isMoving()&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;String&nbsp;oldRA=getRA();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;String&nbsp;oldDec=getDec();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(20000);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;catch(InterruptedException&nbsp;e)&nbsp;{}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;String&nbsp;newRA=getRA();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;final&nbsp;String&nbsp;newDec=getDec();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;!(newRA.equals(oldRA)&nbsp;&#038;&&nbsp;newDec.equals(oldDec));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Returns&nbsp;the&nbsp;local&nbsp;time.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;String&nbsp;getLocalTime()&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendCmd("#:GL#");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;readString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Sets&nbsp;the&nbsp;local&nbsp;time.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;boolean&nbsp;setLocalTime(String&nbsp;time)&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendCmd("#:SL"+time+"#");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;readBoolean();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Synchronize&nbsp;the&nbsp;scope&nbsp;coordinates&nbsp;to&nbsp;the&nbsp;object&nbsp;coordinates.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;void&nbsp;syncCoords()&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sendCmd("#:CM#");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;readString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Sends&nbsp;a&nbsp;command&nbsp;to&nbsp;the&nbsp;scope.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;void&nbsp;sendCmd(String&nbsp;cmd)&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.write(cmd);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.flush();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Reads&nbsp;a&nbsp;boolean&nbsp;from&nbsp;the&nbsp;scope.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;boolean&nbsp;readBoolean()&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;(in.read()=='1');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Reads&nbsp;a&nbsp;string&nbsp;from&nbsp;the&nbsp;scope,&nbsp;dropping&nbsp;the&nbsp;terminating&nbsp;#.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;String&nbsp;readString()&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuffer&nbsp;msg=new&nbsp;StringBuffer&nbsp;JavaDoc();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;ch=in.read();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(ch!='#')&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msg.append(ch);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ch=in.read();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;msg.toString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Closes&nbsp;the&nbsp;connection&nbsp;to&nbsp;the&nbsp;scope.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;synchronized&nbsp;void&nbsp;close()&nbsp;throws&nbsp;IOException&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;in.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serial.close();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;}<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.freegezi.net/blog/post/733.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.freegezi.net/blog/post/733.html</feedburner:origLink></item>
		<item>
		<title>中国古星官及星名汉英对照表</title>
		<link>http://feedproxy.google.com/~r/Freegezi/~3/Vf3ipWPMOus/730.html</link>
		<comments>http://www.freegezi.net/blog/post/730.html#comments</comments>
		<pubDate>Sat, 21 Nov 2009 09:50:38 +0000</pubDate>
		<dc:creator>虎子哥</dc:creator>
				<category><![CDATA[天行健]]></category>

		<guid isPermaLink="false">http://www.freegezi.net/blog/?p=730</guid>
		<description><![CDATA[三 垣 Three Enclosures
紫 微 垣 Purple Forbidden Enclosure
太 微 垣 Supreme Palace Enclosure
天 市 垣 Heavenly Market Enclosure
四 象Four Symbols
青 龍 ( 東 )Azure Dragon (East)
玄 武 ( 北 ) Murky Warrior (North)
白虎(西)White Tiger (West)
朱雀(南)Vermilion Bird (South)
二 十 八 宿
Twenty-eight Mansions
角 Horn 斗 Dipper 奎Legs 井 Well
亢 Neck 牛 Ox 婁Bond 鬼 Ghosts
氐 Root [...]]]></description>
			<content:encoded><![CDATA[<p>三 垣 Three Enclosures<br />
紫 微 垣 Purple Forbidden Enclosure<br />
太 微 垣 Supreme Palace Enclosure<br />
天 市 垣 Heavenly Market Enclosure</p>
<p>四 象Four Symbols<br />
青 龍 ( 東 )Azure Dragon (East)<br />
玄 武 ( 北 ) Murky Warrior (North)<br />
白虎(西)White Tiger (West)<br />
朱雀(南)Vermilion Bird (South)</p>
<p>二 十 八 宿<br />
Twenty-eight Mansions</p>
<p>角 Horn 斗 Dipper 奎Legs 井 Well<br />
亢 Neck 牛 Ox 婁Bond 鬼 Ghosts<br />
氐 Root 女 Girl 胃Stomach 柳 Willow<br />
房 Room 虛 Emptiness 昴 Hairy head 星 Star<br />
心 Heart 危 Rooftop 畢 Net 張 Extended net<br />
尾 Tail 室 Encampment 觜 Turtle beak 翼 Wings<br />
箕 Winnowing-basket 壁 Wall 參 Three stars 軫 Chariot</p>
<p>南 極 星 區  Southern Sky</p>
<p>三 垣 Three Enclosures</p>
<p>紫 微 垣  Purple Forbidden Enclosure<br />
星官 星名 Asterism Star name<br />
北極 　 Northern pole<br />
太子 　 Crown prince<br />
帝 　 Emperor<br />
庶子 　 Son of Concubine<br />
後宮 　 Imperial Concubine<br />
天樞 　 Celestial pivot<br />
四輔 　 Four Advisors<br />
勾陳 　 Curved Array<br />
天皇大帝 　 Great Emperor of Heaven<br />
天柱 　 Celestial Pillar<br />
御女 　 Maids-in-waiting<br />
女史 　 Female protocol<br />
柱史 　 Official of royal archives<br />
尚書 　 Royal secretary<br />
天床 　 Celestial bed<br />
大理 　 Chief judge<br />
陰德 　 Hidden virtue<br />
六甲 　 Six Jia<br />
五帝內座 　 Interior seats of five emperors<br />
華蓋 　 Canopy of the emperor<br />
杠 　 CanopySupport<br />
紫微左垣 　 Left wall<br />
左樞 　 Left pivot<br />
上宰 　 First premier<br />
少宰 　 Second premier<br />
上弼 　 First minister<br />
少弼 　 Second minister<br />
上衛 　 First imperial guard<br />
少衛 　 Second Imperial guard<br />
少丞 　 Second prime minister<br />
紫微右垣 　 Right Wall<br />
右樞 　 Right pivot<br />
少尉 　 Second chief judge<br />
上輔 　 First minister<br />
少輔 　 Second minister<br />
上衛 　 First imperial guard<br />
少衛 　 Second imperial guard<br />
上丞 　 First prime minister<br />
天乙(天一) 　 Celestial Great One<br />
太乙(太一) 　 Frist Great one<br />
內廚 　 Inner kitchen<br />
北斗 　 Northern dipper<br />
天樞 　 Celestial pivot<br />
天璇 　 Celestial rotating jade<br />
天機 　 Celestial shining pearl<br />
天權 　 Celestial balance<br />
玉衡 　 Jade sighting-tube<br />
開陽 　 Opener of heat<br />
搖光 　 Twinkling brilliance<br />
輔 　 Assistant<br />
天槍 　 Celestial spear<br />
玄戈 　 Sombre lance<br />
三公 　 Three excellencies<br />
相 　 Prime minister<br />
天理 　 Judge for nobility<br />
太陽守 　 Guard of the Sun<br />
太尊 　 Royals<br />
天牢 　 Celestial prison<br />
勢 　 Eunuch<br />
文昌 　 Administrative centre<br />
內階 　 Inner steps<br />
三師 　 Three top instructors<br />
八榖 　 Eight kinds of crops<br />
傳舍 　 Guest house<br />
天廚 　 Celestial kitchen<br />
天棓 　 Celestial flail</p>
<p>太 微 垣  Supreme Palace Enclosure<br />
星官 星名 Asterism Star name<br />
五帝座 　 Seats of the five emperors<br />
太子 　 Crown prince<br />
從官 　 Retinue<br />
幸臣 　 Officer of honour<br />
五諸侯 　 Five feudal kings<br />
九卿 　 Nine senior officers<br />
三公 　 Three excellencies<br />
內屏 　 Inner screen<br />
太微左垣 　 Left wall<br />
左執法 　 Left law administrator<br />
東上相 　 First eastern minister<br />
東次相 　 Second eastern minister<br />
東次將 　 Second eastern general<br />
東上將 　 First eastern general<br />
太微右垣 　 Right wall<br />
右執法 　 Right law administrator<br />
西上將 　 First western general<br />
西次將 　 Second western general<br />
西次相 　 Second western minister<br />
西上相 　 First western minister<br />
郎將 　 Captain of the bodyguards<br />
郎位 　 Official of imperial guard<br />
常陳 　 Imperial guards<br />
三台 　 Three steps<br />
上台 　 Upper step<br />
中台 　 Middle step<br />
下台 　 Lower step<br />
虎賁 　 Emperor&#8217;s bodyguard<br />
少微 　 Junior officers<br />
長垣 　 Long wall<br />
靈台 　 Astronomical observatory<br />
明堂 　 Cosmological temple<br />
謁者 　 Usher of the court</p>
<p>天 市 垣  Heavenly Market Enclosure<br />
星官 星名 Asterism Star name<br />
帝座 　 Emperor&#8217;s seat<br />
候 　 Astrologer<br />
宦者 　 Eunuch official<br />
斗 　 Dipper for liquids<br />
斛 　 Dipper for solids<br />
列肆 　 Jewel market<br />
車肆  Commodity market<br />
市樓 　 Municipal office<br />
宗正 　 Official for royal clan<br />
宗人 　 Official of Religious Ceremonies<br />
宗 　 Patriarchal clan<br />
帛度 　 Textile ruler<br />
屠肆 　 Butcher&#8217;s shops<br />
天市左垣 　 Left wall<br />
魏 　 WEI<br />
趙 　 ZHAO<br />
九河 　 JIUHE<br />
中山 　 ZHONGSHAN<br />
齊 　 QI<br />
吳越 　 WUYUE<br />
徐 　 XU<br />
東海 　 DONGHAI<br />
燕 　 YAN<br />
南海 　 NANHAI<br />
宋 　 SONG<br />
天市右垣 　 Right wall<br />
河中 　 HEZHONG<br />
河間 　 HEJIAN<br />
晉 　 JIN<br />
鄭 　 ZHENG<br />
周 　 ZHOU<br />
秦 　 QIN<br />
蜀 　 SHU<br />
巴 　 BA<br />
梁 　 LIANG<br />
楚 　 CHU<br />
韓 　 HAN<br />
天紀 　 Celestial Discipline<br />
女床 　 Woman&#8217;s bed<br />
貫索 　 Coiled thong<br />
七公 　 Seven excellencies</p>
<p>二 十 八 宿  Twenty-eight Mansions</p>
<p>角 宿  Horn Mansion<br />
星官 星名 Asterism Star name<br />
角 　 Horn<br />
平道 　 Flat road<br />
天田 　 Celestial farmland<br />
周鼎 　 Tripod of the ZHOU<br />
進賢 　 Recommending virtuous man<br />
天門 　 Celestial gate<br />
平 　 Judging<br />
庫樓 　 Arsenal<br />
柱 　 Pillars<br />
衡 　 Railings<br />
南門 　 Southern gate</p>
<p>亢 宿  Neck Mansion<br />
星官 星名 Asterism Star name<br />
亢 　 Neck<br />
大角 　 Great horn<br />
左攝提 　 Right conductor<br />
右攝提 　 Left conductor<br />
折威 　 Executions<br />
頓頑 　 Trials<br />
陽門 　 Gate of YANG</p>
<p>氐 宿  Root Mansion<br />
星官 星名 Asterism Star name<br />
氐 　 Root<br />
亢池 　 Boats and lake<br />
帝席 　 Mattress of the emperor<br />
梗河 　 Celestial lance<br />
招搖 　 Twinkling indicator<br />
天乳 　 Celestial milk<br />
天輻 　 Celestial spokes<br />
陣車 　 Battle chariots<br />
車騎 　 Chariots and cavalry<br />
騎陣將軍 　 Chariot and Cavalry general<br />
騎官 　 Imperial guards</p>
<p>房 宿  Room Mansion<br />
星官 星名 Asterism Star name<br />
房 　 Room<br />
鉤鈐 　 Lock<br />
鍵閉 　 Door bolt<br />
罰 　 Punishment<br />
東咸 　 Eastern door<br />
西咸 　 Western door<br />
日 　 Sun<br />
從官 　 Retinue</p>
<p>心 宿  Heart Mansion<br />
星官 星名 Asterism Star name<br />
心 　 Heart<br />
積卒 　 Group of soldiers</p>
<p>尾 宿  Tail Mansion<br />
星官 星名 Asterism Star name<br />
尾 　 Tail<br />
神宮 　 Changing room<br />
天江 　 Celestial river<br />
傳說 　 FUYUE<br />
魚 　 Fish<br />
龜 　 Tortoise</p>
<p>箕 宿  Winnowing-basket Mansion<br />
星官 星名 Asterism Star name<br />
箕 　 Winnowing basket<br />
糠 　 Chaff<br />
杵 　 Pestle</p>
<p>斗 宿  Dipper Mansion<br />
星官 星名 Asterism Star name<br />
斗 　 Dipper<br />
天龠 　 Celestial keyhole<br />
天弁 　 Market officer<br />
建 　 Establishment<br />
天雞 　 Celestial cock<br />
狗 　 Dog<br />
狗國 　 Territory of dogs<br />
天淵 　 Celestial spring<br />
農丈人 　 Peasant<br />
鱉 　 River turtle</p>
<p>牛 宿  Ox Mansion<br />
星官 星名 Asterism Star name<br />
牛 　 Ox<br />
天桴 　 Celestial drumstick<br />
河鼓 　 Drum at the river<br />
左旗 　 Left flag<br />
右旗 　 Right flag<br />
織女 　 Weaving girl<br />
漸臺 　 Clepsydra terrace<br />
輦道 　 Imperial passageway<br />
羅堰 　 Networks of dykes<br />
天田 　 Celestial farmland<br />
九坎 　 Nine water wells</p>
<p>女 宿  Girl Mansion<br />
星官 星名 Asterism Star name<br />
女 　 Girl<br />
離珠 　 Pearls on ladies&#8217; wear<br />
敗瓜 　 Rotten gourd<br />
瓠瓜 　 Good gourd<br />
天津 　 Celestial ford<br />
奚仲 　 XIZHONG<br />
扶筐 　 Basket for mulberry leaves<br />
十二國 　 Twelve countries<br />
周 　 ZHOU<br />
秦 　 QIN<br />
代 　 DAI<br />
趙 　 ZHAO<br />
越 　 YUE<br />
齊 　 QI<br />
楚 　 CHU<br />
鄭 　 ZHENG<br />
魏 　 WEI<br />
韓 　 HAN<br />
晉 　 JIN<br />
燕 　 YAN</p>
<p>虛 宿  Emptiness Mansion<br />
星官 星名 Asterism Star name<br />
虛 　 Emptiness<br />
司命 　 Deified judge of life<br />
司祿 　 Deified judge of rank<br />
司危 　 Deified judge of disaster and good fortune<br />
司非 　 Deified judge of right and wrong<br />
哭 　 Crying<br />
泣 　 Weeping<br />
璃瑜 　 Jade ornament on ladies&#8217; wear<br />
天壘城 　 Celestial ramparts<br />
敗臼 　 Decayed Mortar</p>
<p>危 宿  Rooftop Mansion<br />
星官 星名 Asterism Star name<br />
危 　 Rooftop<br />
墳墓 　 Tomb<br />
蓋屋 　 Roofing<br />
虛梁 　 Temple<br />
天錢 　 Celestial money<br />
人 　 Humans<br />
杵 　 Pestle<br />
臼 　 Mortar<br />
車府 　 Big yard for chariots<br />
造父 　 ZAOFU<br />
天鉤 　 Celestial hook</p>
<p>室 宿  Encampment Mansion<br />
星官 星名 Asterism Star name<br />
室 　 Encampment<br />
離宮 Resting palace<br />
螣蛇 　 Flying serpent<br />
雷電 　 Thunder and lightning<br />
土公吏 　 Official for materials supply<br />
壘壁陣 　 The line of ramparts<br />
羽林軍 　 Palace guard<br />
天綱 　 Materials for Making Tents<br />
北落師門 　 North gate of the military camp<br />
鈇鉞 　 Axe<br />
八魁 　 Net for catching birds</p>
<p>壁 宿  Wall Mansion<br />
星官 星名 Asterism Star name<br />
壁 　 Wall<br />
天廄 　 Celestial stable<br />
土公 　 Official for earthworks and buildings<br />
霹靂 　 Thunderbolt<br />
雲雨 　 Cloud and rain<br />
鈇鑕 　 Sickle</p>
<p>奎 宿  Legs Mansion<br />
星官 星名 Asterism Star name<br />
奎 　 Legs<br />
王良 　 WANGLIANG<br />
策 　 Whip<br />
附路 　 Auxiliary road<br />
軍南門 　 Southern military gate<br />
閣道 　 Flying corridor<br />
外屏 　 Outer fence<br />
天溷 　 Celestial pigsty<br />
土司空 　 Master of constructions</p>
<p>婁 宿  Bond Mansion<br />
星官 星名 Asterism Star name<br />
婁 　 Bond<br />
天大將軍 　 Great general of the heaven<br />
左更 　 Official in charge of forest<br />
右更 　 Official in charge of pasturing<br />
天倉 　 Square celestial granary<br />
天庾 　 Ricks of grain</p>
<p>胃 宿  Stomach Mansion<br />
星官 星名 Asterism Star name<br />
胃 　 Stomach<br />
大陵 　 Mausoleum<br />
積尸 　 Heaps of corpses<br />
天船 　 Celestial boat<br />
積水 　 Stored water<br />
天廩 　 Celestial foodstuffs<br />
天囷 　 Circular celestial granary</p>
<p>昴 宿  Hairy Head Mansion<br />
星官 星名 Asterism Star name<br />
昴 　 Hairy head<br />
天阿 　 Celestial river<br />
月 　 Moon<br />
卷舌 　 Rolled tongue<br />
天讒 　 Celestial slander<br />
礪石 　 Whetstone<br />
天陰 　 Celestial YIN force<br />
芻蒿 　 Hay<br />
天苑 　 Celestial meadows</p>
<p>畢 宿 Net Mansion<br />
星官 星名 Asterism Star name<br />
畢 　 Net<br />
附耳 　 Whisper<br />
天街 　 Celestial street<br />
天高 　 Celestial high terrace<br />
諸王 　 Feudal kings<br />
五車 　 Five chariots<br />
柱 　 Pillars<br />
威池 　 Pool of harmony<br />
天潢 　 Celestial pier<br />
天關 　 Celestial gate<br />
天節 　 Celestial tally<br />
九州殊口 　 Interpreters of nine dialects<br />
參旗 　 Banner of three stars<br />
九斿 　 Imperial military flag<br />
天園 　 Celestial orchard</p>
<p>觜 宿  Turtle Beak Mansion<br />
星官 星名 Asterism Star name<br />
觜  Turtle beak<br />
司怪 　 Deity in charge of monsters<br />
座旗  Seat flags</p>
<p>參 宿  Three Stars Mansion<br />
星官 星名 Asterism Star name<br />
參  Three stars<br />
伐  Punishment<br />
玉井 　 Jade well<br />
軍井  Military well<br />
屏 　 Screen<br />
廁  Toilet<br />
屎 　 Excrement</p>
<p>井 宿  Well Mansion<br />
星官 星名 Asterism Star name<br />
井  Well<br />
鉞  Battle axe<br />
水府 　 Official for irrigation<br />
天樽  Celestial wine cup<br />
五諸侯 　 Five feudal kings<br />
北河  North river<br />
積水 　 Accumulated water<br />
積薪  Pile of firewood<br />
水位 　 Water level<br />
南河  South river<br />
四瀆 　 Four channels<br />
闕丘  Palace gate<br />
軍市 　 Market for the soldiers<br />
野雞  Wild cockerel<br />
天狼 　 Celestial wolf<br />
丈人  Grandfather<br />
子 　 Son<br />
孫  Grandson<br />
老人 　 Old man<br />
弧矢  Bow and arrow</p>
<p>鬼宿 Ghosts Mansion<br />
星官 星名 Asterism Star name<br />
鬼  Ghosts<br />
積尸 　 Cumulative corpses<br />
爟  Beacon fire<br />
外廚 　 Outer kitchen<br />
天記  Judge to estimate the age of animals<br />
天狗 　 Celestial dog<br />
天社  Celestial earth god&#8217; s temple</p>
<p>柳 宿 Willow Mansion<br />
星官 星名 Asterism Star name<br />
柳  Willow<br />
酒旗 　 Banner of wine shop</p>
<p>星 宿  Star Mansion<br />
星官 星名 Asterism Star name<br />
星  Star<br />
天相 　 Celestial premier<br />
天稷  Celestial cereals<br />
軒轅  XUANYUAN<br />
御女  Maids-in-waiting<br />
內平 　 High judge</p>
<p>張 宿  Extended Net Mansion<br />
星官 星名 Asterism Star name<br />
張  Extended net<br />
天廟  Celestial Temple</p>
<p>翼宿 Wings Mansion<br />
星官 星名 Asterism Star name<br />
翼  Wings<br />
東甌 　 DONGOU</p>
<p>軫宿 Chariot Mansion<br />
星官 星名 Asterism Star name<br />
軫 　 Chariot<br />
左轄 　 Left linchpin<br />
右轄 　 Right linchpin<br />
長沙 　 CHANGSHA<br />
青丘 　 Green hill<br />
軍門  Military Gate<br />
土司空 　 Master of Construction<br />
器府 　 House for Musical Instruments</p>
<p>南 極 星 區 Southern Sky<br />
星官 星名 Asterism Star name<br />
海山 　 Sea and mountain<br />
十字架 　 Cross<br />
馬尾 　 Horse&#8217;s tail<br />
馬腹 　 Horse&#8217;s abdomen<br />
蜜蜂 　 Bee<br />
三角形 　 Triangle<br />
異雀 　 Exotic bird<br />
孔雀 　 Peacock<br />
波斯 　 Persia<br />
蛇尾 　 Snake&#8217;s tail<br />
蛇腹 　 Snake&#8217;s abdomen<br />
蛇首 　 Snake&#8217;s head<br />
鳥喙 　 Bird&#8217;s beak<br />
鶴 　 Crane<br />
火鳥 　 Firebird<br />
水委 　 Crooked running water<br />
附白 　 White patches nearby<br />
夾白 　 White Patch Attached<br />
金魚 　 Goldfish<br />
海石 　 Sea rock<br />
飛魚 　 Flying fish<br />
南船 　 Southern boat<br />
小斗 　 Little dipper</p>
]]></content:encoded>
			<wfw:commentRss>http://www.freegezi.net/blog/post/730.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.freegezi.net/blog/post/730.html</feedburner:origLink></item>
		<item>
		<title>狮子座流星雨之夜</title>
		<link>http://feedproxy.google.com/~r/Freegezi/~3/PgwOKdVI8-g/715.html</link>
		<comments>http://www.freegezi.net/blog/post/715.html#comments</comments>
		<pubDate>Wed, 18 Nov 2009 05:04:14 +0000</pubDate>
		<dc:creator>虎子哥</dc:creator>
				<category><![CDATA[天行健]]></category>

		<guid isPermaLink="false">http://www.freegezi.net/blog/?p=715</guid>
		<description><![CDATA[
EOS 300D,28-80mm@28F4
2009.11.18 01:47-06:02AM
30s X 400合成动画
很遗憾没有抓到一颗流星
]]></description>
			<content:encoded><![CDATA[<p><embed width="610" height="425" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" src="/blog/wp-content/uploads/flvplayer.swf" play="true" loop="true" menu="true" flashvars="file=/blog/wp-content/uploads/2009/11/lion.f4v" allowfullscreen="true"></embed></p>
<p>EOS 300D,28-80mm@28F4<br />
2009.11.18 01:47-06:02AM<br />
30s X 400合成动画<br />
很遗憾没有抓到一颗流星</p>
]]></content:encoded>
			<wfw:commentRss>http://www.freegezi.net/blog/post/715.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.freegezi.net/blog/post/715.html</feedburner:origLink></item>
		<item>
		<title>AS生成随机数——双色球机选器</title>
		<link>http://feedproxy.google.com/~r/Freegezi/~3/rB-H5vRW5l0/710.html</link>
		<comments>http://www.freegezi.net/blog/post/710.html#comments</comments>
		<pubDate>Thu, 12 Nov 2009 05:09:19 +0000</pubDate>
		<dc:creator>虎子哥</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[双色球]]></category>

		<guid isPermaLink="false">http://www.freegezi.net/blog/?p=710</guid>
		<description><![CDATA[ function getRandom(len):Array{
&#160;&#160;&#160; var pk:Array = [];
&#160;&#160;&#160; for(var i=0;i&#60;len;i++){
&#160;&#160;&#160; &#160;&#160;&#160; pk[i] = i;
&#160;&#160;&#160; }
&#160;&#160;&#160; var tArr:Array = new Array();
&#160;&#160;&#160; var t:Number;
&#160;&#160;&#160; while (pk.length &#62; 0) {
&#160;&#160;&#160; &#160;&#160;&#160; t = Math.floor(Math.random() * pk.length);
&#160;&#160;&#160; &#160;&#160;&#160; tArr.push(pk[t]);
&#160;&#160;&#160; &#160;&#160;&#160; pk.splice(t, 1);
&#160;&#160;&#160; }
&#160;&#160;&#160; pk = tArr;
&#160;&#160;&#160; return pk;
}

]]></description>
			<content:encoded><![CDATA[<p><code> function getRandom(len):Array{<br />
&nbsp;&nbsp;&nbsp; var pk:Array = [];<br />
&nbsp;&nbsp;&nbsp; for(var i=0;i&lt;len;i++){<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pk[i] = i;<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; var tArr:Array = new Array();<br />
&nbsp;&nbsp;&nbsp; var t:Number;<br />
&nbsp;&nbsp;&nbsp; while (pk.length &gt; 0) {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; t = Math.floor(Math.random() * pk.length);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; tArr.push(pk[t]);<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; pk.splice(t, 1);<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; pk = tArr;<br />
&nbsp;&nbsp;&nbsp; return pk;</code><code><br />
}<br />
</code><embed width="400" height="22" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" src="/blog/wp-content/uploads/2009/11/twocolor.swf" play="true" loop="true" menu="true"></embed></p>
]]></content:encoded>
			<wfw:commentRss>http://www.freegezi.net/blog/post/710.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.freegezi.net/blog/post/710.html</feedburner:origLink></item>
		<item>
		<title>用Google Scholar查找并获取外文文献的技巧和方法</title>
		<link>http://feedproxy.google.com/~r/Freegezi/~3/yD_o0hUtedo/698.html</link>
		<comments>http://www.freegezi.net/blog/post/698.html#comments</comments>
		<pubDate>Wed, 04 Nov 2009 03:59:06 +0000</pubDate>
		<dc:creator>虎子哥</dc:creator>
				<category><![CDATA[七嘴八舌]]></category>
		<category><![CDATA[Google Scholar]]></category>

		<guid isPermaLink="false">http://www.freegezi.net/blog/?p=698</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;&#160;&#160; 一、Google Scholar是什么
Google Scholar(http://scholar.google.com/)是Google于2004年底推出的专门面向学术资源的免费搜索工具，能够帮助用户查找包括期刊论文、学位论文、书籍、预印本、文摘和技术报告在内的学术文献，内容涵盖自然科学、人文科学、社会科学等多种学科。
&#160;
二、Google Scholar的资料来源
&#160;
主要有以下几方面的资料来源：
&#160;
1. 网络免费的学术资源：随着开放获取运动（Open Access） 的开展，有许多机构网站，特别是大学网站汇聚了大量本机构研究人员的学术成果，包括已经发表的论文，论文的预印本、工作报告、会议论文、调研报告等等，并 向所有人提供免费公开获取。同时，有许多个人网站也是学者个人成果的发布网站，有许多有价值的学术文献。这些资源有很多在普通Google搜索中可以搜索 到的，现在Google将这部分资源集中到Google Scholar中，以提供更加专指的搜索结果。
&#160;
2. 开放获取的期刊网站：许多传统的期刊出版商也加入到开放获取期刊行列，如：英国牛津大学出版社允许全球科研人员在线免费搜索访问2002年以来牛津大学作 者出版的学术论文。斯坦福大学的High wire出版社将其出版的期刊提供全文免费网络服务，截止到2004年5月2日已开放全部1741023篇论文的716615篇，被称为全球最大的免费全 文学术论文数据库。这些开放获取的期刊网站的内容已基本为Google Scholar所包括，可以通过Google Scholar检索并提供全文的链接。如：Google Scholar已包括High Wire的94%。
&#160;
3. 付费电子资源提供商：有许多电子资源提供商也与Google合作，将其电 子数据库的索引或文摘提供给Google Scholar，据研究表明：Google已覆盖了JSORE的30％；SpringerLink的68%，Cambridge Journals Online的94%，Sociological Abstracts的44%等。当然，这个来源的大多数只能查到这些期刊数据库的文章题录信息，偶尔这些数据库有免费原文提供。中文的维普数据库和万方数 据库也与Google合作，提供了中文期刊文章的题录信息。
&#160;
4. 图书馆链接：Google向图书馆发出免费链接邀请，可以提供面向这些图书馆资源的链接和查询。目前，国外已有多家图书馆与Google合作，如斯坦福大 学等，这样在校外的用户能够通过Google Scholar进行检索，如果是斯坦福大学图书馆订购的资源则可以通过身份认证后直接获得原文。国内也有一些图书馆与Google合作，如：清华大学图书 馆等。此外，国外最大的图情机构OCLC将来自世界各国图书馆的图书联合目录交给Google，也就是说从Google Scholar可以查到这些图书馆的图书目录信息，对于国外的用户有更实际的作用，即可以通过&#8220;Find a library&#8221;找到距离自己最近的图书馆，以获得图书。
&#160;
基于以上这几部分来源，我们不难发现，Google Scholar可以成为一个很好的学术资源发现工具，它相当于同时对多个数据库资源进行检索。但可能让人比较遗憾的是，还是无法获取全文。不过，我们从上 面的诸多来源已经看到，网上已经有许多来源提供了对原文的获取，下面将重点讲一下利用Google Scholar获取原文的技巧。
&#160;
三、利用Google Scholar获取全文的方法和技巧
&#160;
方法一：利用&#8220;每组&#8230;&#8230;个&#8221;――沙里淘金
&#160;
利用Google Scholar检索后，返回的每个结果后面几乎都有&#8220;每组&#8230;&#8230;个&#8221;，或&#8220;Group of &#8221;，这表明该文章可能存在于多个来源中，点击可以获得该文章的多个来源。
&#160;
&#160; 案例：检索词：research behavior
&#160;

点击进入后，有13个来源，去重后有7个来源
doi.wiley.com
cat.inist.fr
portal.acm.org
muse.jhu.edu
eric.ed.gov
citeseer.ist.psu.edu
people.cornell.edu
dspace.library.cornell.edu
&#160;
其中，前5个为无法获取全文，而后两个可以获取全文。
&#160;
分析技巧：
&#160;
&#160;可获取全文的为大多为开放获取网站和大学机构仓储以及个人网站，一般为非授权，即免费公开，网址都带有.edu标记等。如：上例中的后两个能获得全文的网址，其中一个就是Cornell大学的机构仓储网站。
&#160;
不可获取全文的是数据提供商网站、受限的机构仓储网站，一般需要授权或付费，如上例中的前5个网址。不过这些网站偶尔也有免费论文，可放在最后进入，试试运气。
&#160;
掌握这个特点，再看来源时首先选择可能是机构网站的网址进行尝试。
&#160;
方法二：网页快照――得来全不费功夫
&#160;
Google的网页快照功能，是Google在爬行中针对PDF等文件的自动扫描、保存。这是获取全文的另一个很重要的途径。有许多全文在网上公开的时间 有限，可能以前能看到，现在没有了。如果Google进行了网页快照，则即使原来的获取地址不存在，也仍然能看到全文。网页快照的标记是：题录信息下方的 &#8220;网页快照&#8221;或&#8220;HTML版&#8221;按钮。
&#160;
案例：《An investigation of user attitudes toward search engines as an information retrieval [...]]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一、<a href="http://scholar.google.com/" target="_blank">Google Scholar</a>是什么</p>
<div style="text-indent: 2em;">Google Scholar(<a href="http://scholar.google.com/" target="_blank">http://scholar.google.com/</a>)是Google于2004年底推出的专门面向学术资源的免费搜索工具，能够帮助用户查找包括期刊论文、学位论文、书籍、预印本、文摘和技术报告在内的学术文献，内容涵盖自然科学、人文科学、社会科学等多种学科。</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">二、Google Scholar的资料来源</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">主要有以下几方面的资料来源：</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">1. <strong>网络免费的学术资源</strong>：随着开放获取运动（Open Access） 的开展，有许多机构网站，特别是大学网站汇聚了大量本机构研究人员的学术成果，包括已经发表的论文，论文的预印本、工作报告、会议论文、调研报告等等，并 向所有人提供免费公开获取。同时，有许多个人网站也是学者个人成果的发布网站，有许多有价值的学术文献。这些资源有很多在普通Google搜索中可以搜索 到的，现在Google将这部分资源集中到Google Scholar中，以提供更加专指的搜索结果。</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">2. <strong>开放获取的期刊网站</strong>：许多传统的期刊出版商也加入到开放获取期刊行列，如：英国牛津大学出版社允许全球科研人员在线免费搜索访问2002年以来牛津大学作 者出版的学术论文。斯坦福大学的High wire出版社将其出版的期刊提供全文免费网络服务，截止到2004年5月2日已开放全部1741023篇论文的716615篇，被称为全球最大的免费全 文学术论文数据库。这些开放获取的期刊网站的内容已基本为Google Scholar所包括，可以通过Google Scholar检索并提供全文的链接。如：Google Scholar已包括High Wire的94%。</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">3. <strong>付费电子资源提供商</strong>：有许多电子资源提供商也与Google合作，将其电 子数据库的索引或文摘提供给Google Scholar，据研究表明：Google已覆盖了JSORE的30％；SpringerLink的68%，Cambridge Journals Online的94%，Sociological Abstracts的44%等。当然，这个来源的大多数只能查到这些期刊数据库的文章题录信息，偶尔这些数据库有免费原文提供。中文的维普数据库和万方数 据库也与Google合作，提供了中文期刊文章的题录信息。</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">4. <strong>图书馆链接</strong>：Google向图书馆发出免费链接邀请，可以提供面向这些图书馆资源的链接和查询。目前，国外已有多家图书馆与Google合作，如斯坦福大 学等，这样在校外的用户能够通过Google Scholar进行检索，如果是斯坦福大学图书馆订购的资源则可以通过身份认证后直接获得原文。国内也有一些图书馆与Google合作，如：清华大学图书 馆等。此外，国外最大的图情机构OCLC将来自世界各国图书馆的图书联合目录交给Google，也就是说从Google Scholar可以查到这些图书馆的图书目录信息，对于国外的用户有更实际的作用，即可以通过&ldquo;Find a library&rdquo;找到距离自己最近的图书馆，以获得图书。</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">基于以上这几部分来源，我们不难发现，Google Scholar可以成为一个很好的学术资源发现工具，它相当于同时对多个数据库资源进行检索。但可能让人比较遗憾的是，还是无法获取全文。不过，我们从上 面的诸多来源已经看到，网上已经有许多来源提供了对原文的获取，下面将重点讲一下利用Google Scholar获取原文的技巧。</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">三、利用Google Scholar获取全文的方法和技巧</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;"><strong>方法一：利用&ldquo;每组&#8230;&#8230;</strong><strong>个&rdquo;――沙里淘金</strong></div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">利用Google Scholar检索后，返回的每个结果后面几乎都有&ldquo;每组&hellip;&hellip;个&rdquo;，或&ldquo;Group of &rdquo;，这表明该文章可能存在于多个来源中，点击可以获得该文章的多个来源。</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">&nbsp; 案例：检索词：research behavior</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;"><img border="0" alt="" src="/blog/wp-content/uploads/2009/11/20061120235554724.jpg" /></div>
<p>点击进入后，有13个来源，去重后有7个来源</p>
<div style="text-indent: 2em;">doi.wiley.com</div>
<div style="text-indent: 2em;">cat.inist.fr</div>
<div style="text-indent: 2em;">portal.acm.org</div>
<div style="text-indent: 2em;">muse.jhu.edu</div>
<div style="text-indent: 2em;">eric.ed.gov</div>
<div style="text-indent: 2em;">citeseer.ist.psu.edu</div>
<div style="text-indent: 2em;">people.cornell.edu</div>
<div style="text-indent: 2em;">dspace.library.cornell.edu</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">其中，前5个为无法获取全文，而后两个可以获取全文。</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">分析技巧：</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">&nbsp;可获取全文的为大多为开放获取网站和大学机构仓储以及个人网站，一般为非授权，即免费公开，网址都带有.edu标记等。如：上例中的后两个能获得全文的网址，其中一个就是Cornell大学的机构仓储网站。</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">不可获取全文的是数据提供商网站、受限的机构仓储网站，一般需要授权或付费，如上例中的前5个网址。不过这些网站偶尔也有免费论文，可放在最后进入，试试运气。</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">掌握这个特点，再看来源时首先选择可能是机构网站的网址进行尝试。</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;"><strong>方法二：网页快照――得来全不费功夫</strong></div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">Google的网页快照功能，是Google在爬行中针对PDF等文件的自动扫描、保存。这是获取全文的另一个很重要的途径。有许多全文在网上公开的时间 有限，可能以前能看到，现在没有了。如果Google进行了网页快照，则即使原来的获取地址不存在，也仍然能看到全文。网页快照的标记是：题录信息下方的 &ldquo;网页快照&rdquo;或&ldquo;HTML版&rdquo;按钮。</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">案例：《An investigation of user attitudes toward search engines as an information retrieval tool》</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;"><img width="640" height="131" alt="" src="/blog/wp-content/uploads/2009/11/20061120235631414.jpg" /></div>
<div style="text-indent: 2em;"><strong>方法三：网页搜索――曲线救国</strong></div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">如果前两种方式都不成功，还可以尝试一下&ldquo;网页搜索&rdquo;功能。这个功能是返回通用Google搜索帮助查找。也许有人会问，这样还不如直接去通用搜索中查， 所不同的是，从Google Scholar返回Google查询，所得到的检索结果比直接在Google中查询的专指度高，主要为与在Google Scholar中想要的文章相关的一些Pdf格式的文件，即使找不到原先想到的文章，也可以意外发现很多与该主题相关的学术资源。</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">案例：Human information behavior: Integrating diverse approaches and information use</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;"><img alt="" src="/blog/wp-content/uploads/2009/11/3.jpg" /></div>
<div style="text-indent: 2em;">点击进入后，三个来源为：</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">doi.wiley.com</div>
<div style="text-indent: 2em;">cat.inist.fr</div>
<div style="text-indent: 2em;">portal.acm.org</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">但均没有提供全文，点击第一条记录的&ldquo;网页搜索&rdquo;。</div>
<div style="text-indent: 2em;"><img alt="" src="/blog/wp-content/uploads/2009/11/4.jpg" /></div>
<div style="text-indent: 2em;">页面转到Google普通检索，在第三条记录，可见该文信息。</div>
<div style="text-indent: 2em;"><img alt="" src="/blog/wp-content/uploads/2009/11/5.jpg" /></div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;">进入后，发现这是Spink, A的个人网站，有很多作者的文章可下载，包括最近的文章，其中就有该篇文章。</div>
<div style="text-indent: 2em;">&nbsp;</div>
<div style="text-indent: 2em;"><img alt="" src="/blog/wp-content/uploads/2009/11/6.jpg" /></div>
<div style="text-indent: 2em;">下载网址为：http://sky.fit.qut.edu.au/~spinkah/JASIST-HIB.pdf</div>
<div style="text-indent: 2em;">四、总结</div>
<div style="text-indent: 2em;">目前，Google Scholar更多的是作为一个资源发现工具，而不是全文获取的工具。但随着网络信息资源的数量和质量的提升，随着互联网从向个人信息发布平台的转移，更 多高质量的学术信息资源将会越来越多，Google Scholar将为我们的学术和研究的资料收集带来极大的便利。</div>
]]></content:encoded>
			<wfw:commentRss>http://www.freegezi.net/blog/post/698.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.freegezi.net/blog/post/698.html</feedburner:origLink></item>
		<item>
		<title>寒潮来临前的落日</title>
		<link>http://feedproxy.google.com/~r/Freegezi/~3/NF97LB89EH4/693.html</link>
		<comments>http://www.freegezi.net/blog/post/693.html#comments</comments>
		<pubDate>Sat, 31 Oct 2009 09:36:06 +0000</pubDate>
		<dc:creator>虎子哥</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Gallery]]></category>
		<category><![CDATA[天行健]]></category>
		<category><![CDATA[夕阳]]></category>

		<guid isPermaLink="false">http://www.freegezi.net/blog/?p=693</guid>
		<description><![CDATA[
386张合成动画
]]></description>
			<content:encoded><![CDATA[<p><embed width="540" height="812" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" src="/blog/wp-content/uploads/2009/10/sunset.swf" play="true" loop="true" menu="true"></embed></p>
<p>386张合成动画</p>
]]></content:encoded>
			<wfw:commentRss>http://www.freegezi.net/blog/post/693.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.freegezi.net/blog/post/693.html</feedburner:origLink></item>
		<item>
		<title>拍摄时间计算器</title>
		<link>http://feedproxy.google.com/~r/Freegezi/~3/5obzUgSuEPI/689.html</link>
		<comments>http://www.freegezi.net/blog/post/689.html#comments</comments>
		<pubDate>Tue, 27 Oct 2009 16:13:44 +0000</pubDate>
		<dc:creator>虎子哥</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[天行健]]></category>

		<guid isPermaLink="false">http://www.freegezi.net/blog/?p=689</guid>
		<description><![CDATA[
以后拍摄得多了就得做拍摄计划，晚上的时间是宝贵滴！
]]></description>
			<content:encoded><![CDATA[<p><embed width="490" height="400" menu="true" loop="true" play="true" src="/blog/wp-content/uploads/2009/10/cal.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed><br />
以后拍摄得多了就得做拍摄计划，晚上的时间是宝贵滴！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.freegezi.net/blog/post/689.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.freegezi.net/blog/post/689.html</feedburner:origLink></item>
		<item>
		<title>检测字符串是否在数组中存在</title>
		<link>http://feedproxy.google.com/~r/Freegezi/~3/A3GFvVlgGhU/684.html</link>
		<comments>http://www.freegezi.net/blog/post/684.html#comments</comments>
		<pubDate>Fri, 23 Oct 2009 12:53:27 +0000</pubDate>
		<dc:creator>虎子哥</dc:creator>
				<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.freegezi.net/blog/?p=684</guid>
		<description><![CDATA[function isIn ($needle:*,$haystack:Array):Boolean { 
&#160;&#160; return $haystack.indexOf ($needle) != -1;
} 
var $string = 'Jonnie';
trace(isIn ($string,[&#34;Jonnie&#34;, &#34;loves&#34;, &#34;Subway&#34;, &#34;cookies&#34;])); 
Object检测属性是否存在用$object.propertyIsEnumerable($name);
]]></description>
			<content:encoded><![CDATA[<p><code>function isIn ($needle:*,$haystack:Array):Boolean { </code><code><br />
&nbsp;&nbsp; return $haystack.<font color="#00ccff">indexOf </font>($needle) != -1;<br />
} <br />
var $string = 'Jonnie';<br />
trace(isIn ($string,[&quot;Jonnie&quot;, &quot;loves&quot;, &quot;Subway&quot;, &quot;cookies&quot;])); <br />
Object检测属性是否存在用$object.<font color="#00ccff">propertyIsEnumerable</font>($name);</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.freegezi.net/blog/post/684.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.freegezi.net/blog/post/684.html</feedburner:origLink></item>
	</channel>
</rss>

