Main Page | Packages | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

ikayaki.squid.Degausser Class Reference

Inheritance diagram for ikayaki.squid.Degausser:

Inheritance graph
[legend]
Collaboration diagram for ikayaki.squid.Degausser:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 Degausser () throws SerialIOException
void updateSettings ()
boolean demagnetizeZ (double amp)
boolean demagnetizeY (double amp)
boolean isDemagnetizing ()
char getRampStatus ()
int getRamp ()
int getDelay ()
char getCoil ()
int getAmplitude ()
boolean isOK ()
void serialIOEvent (SerialIOEvent event)

Protected Member Functions

void setCoil (char coil)
void setAmplitude (double amplitude)
void executeRampUp ()
void executeRampDown ()
void executeRampCycle ()
void blockingWrite (String command) throws SerialIOException

Protected Attributes

SerialIO serialIO

Private Attributes

Stack< String > messageBuffer
SynchronousQueue< String > queue
int pollTimeout = 60
int degausserDelay
int degausserRamp
boolean waitingForMessage = false
double minimumField
double maximumField
boolean demagnetizing = false

Detailed Description

Offers an interface for controlling the degausser (demagnetizer). Because the data link is implemented in the degausser by a single board computer running a small basic program, the response time of the degausser to commands is slow. This class will make sure that commands are not sent faster than the device can handle.

Author:
Aki Korpua

Definition at line 38 of file Degausser.java.


Constructor & Destructor Documentation

ikayaki.squid.Degausser.Degausser  )  throws SerialIOException
 

Creates a new degausser interface. Opens connection to degausser COM port (if not open yet) and reads settings from the Setting class.

Definition at line 76 of file Degausser.java.

References ikayaki.squid.SerialIO.addSerialIOListener(), ikayaki.squid.Degausser.blockingWrite(), ikayaki.squid.Degausser.degausserDelay, ikayaki.squid.Degausser.degausserRamp, ikayaki.squid.Degausser.messageBuffer, ikayaki.squid.Degausser.queue, and ikayaki.squid.Degausser.serialIO.

Here is the call graph for this function:


Member Function Documentation

void ikayaki.squid.Degausser.blockingWrite String  command  )  throws SerialIOException [protected]
 

Definition at line 199 of file Degausser.java.

References ikayaki.squid.Degausser.queue, ikayaki.squid.Degausser.serialIO, ikayaki.squid.Degausser.waitingForMessage, and ikayaki.squid.SerialIO.writeMessage().

Referenced by ikayaki.squid.Degausser.Degausser(), ikayaki.squid.Degausser.executeRampCycle(), ikayaki.squid.Degausser.executeRampDown(), ikayaki.squid.Degausser.executeRampUp(), ikayaki.squid.Degausser.getAmplitude(), ikayaki.squid.Degausser.getCoil(), ikayaki.squid.Degausser.getDelay(), ikayaki.squid.Degausser.getRamp(), ikayaki.squid.Degausser.getRampStatus(), ikayaki.squid.Degausser.setAmplitude(), ikayaki.squid.Degausser.setCoil(), and ikayaki.squid.Degausser.updateSettings().

Here is the call graph for this function:

boolean ikayaki.squid.Degausser.demagnetizeY double  amp  ) 
 

Performs full sequence to demagnetize Y (and X) coil with the given amplitude. Blocking method.

Parameters:
amp amplitude to demag.
Returns:
true if process was sended succesfully, otherwise false.

Definition at line 257 of file Degausser.java.

References ikayaki.squid.Degausser.demagnetizing, ikayaki.squid.Degausser.executeRampCycle(), ikayaki.squid.Degausser.queue, ikayaki.squid.Degausser.setAmplitude(), ikayaki.squid.Degausser.setCoil(), and ikayaki.squid.Degausser.waitingForMessage.

Here is the call graph for this function:

boolean ikayaki.squid.Degausser.demagnetizeZ double  amp  ) 
 

Performs full sequence to demagnetize Z coil with the given amplitude. Blocking method.

Parameters:
amp amplitude to demag.
Returns:
true if process was sended succesfully, otherwise false.

Definition at line 226 of file Degausser.java.

References ikayaki.squid.Degausser.demagnetizing, ikayaki.squid.Degausser.executeRampCycle(), ikayaki.squid.Degausser.queue, ikayaki.squid.Degausser.setAmplitude(), ikayaki.squid.Degausser.setCoil(), and ikayaki.squid.Degausser.waitingForMessage.

Here is the call graph for this function:

void ikayaki.squid.Degausser.executeRampCycle  )  [protected]
 

Performs Ramp up and down.

Definition at line 191 of file Degausser.java.

References ikayaki.squid.Degausser.blockingWrite().

Referenced by ikayaki.squid.Degausser.demagnetizeY(), and ikayaki.squid.Degausser.demagnetizeZ().

Here is the call graph for this function:

void ikayaki.squid.Degausser.executeRampDown  )  [protected]
 

Brings Ramp down.

Definition at line 180 of file Degausser.java.

References ikayaki.squid.Degausser.blockingWrite().

Here is the call graph for this function:

void ikayaki.squid.Degausser.executeRampUp  )  [protected]
 

Performs Ramp up. If this is used, make sure you Ramp down in less than 10 seconds because it can damage coil

Definition at line 169 of file Degausser.java.

References ikayaki.squid.Degausser.blockingWrite().

Here is the call graph for this function:

int ikayaki.squid.Degausser.getAmplitude  ) 
 

Sends amplitude query to degausser and returns answer. Blocking.

Returns:
0 to 3000

Definition at line 378 of file Degausser.java.

References ikayaki.squid.Degausser.blockingWrite(), ikayaki.squid.Degausser.pollTimeout, ikayaki.squid.Degausser.queue, and ikayaki.squid.Degausser.waitingForMessage.

Here is the call graph for this function:

char ikayaki.squid.Degausser.getCoil  ) 
 

Sends coil query to degausser and returns answer. Blocking.

Returns:
X=X Axis, Y=Y Axis, Z=Z Axis, ?=Unknown

Definition at line 356 of file Degausser.java.

References ikayaki.squid.Degausser.blockingWrite(), ikayaki.squid.Degausser.pollTimeout, ikayaki.squid.Degausser.queue, and ikayaki.squid.Degausser.waitingForMessage.

Here is the call graph for this function:

int ikayaki.squid.Degausser.getDelay  ) 
 

Sends delay query to degausser and returns answer. Blocking.

Returns:
1 to 9 as seconds

Definition at line 334 of file Degausser.java.

References ikayaki.squid.Degausser.blockingWrite(), ikayaki.squid.Degausser.pollTimeout, ikayaki.squid.Degausser.queue, and ikayaki.squid.Degausser.waitingForMessage.

Here is the call graph for this function:

int ikayaki.squid.Degausser.getRamp  ) 
 

Sends ramp query to degausser and returns answer. Blocking.

Returns:
3, 5, 7 or 9

Definition at line 312 of file Degausser.java.

References ikayaki.squid.Degausser.blockingWrite(), ikayaki.squid.Degausser.pollTimeout, ikayaki.squid.Degausser.queue, and ikayaki.squid.Degausser.waitingForMessage.

Here is the call graph for this function:

char ikayaki.squid.Degausser.getRampStatus  ) 
 

Sends status query to degausser and returns answer. Blocking.

Returns:
Z=Zero, T=Tracking, ?=Unknown

Definition at line 290 of file Degausser.java.

References ikayaki.squid.Degausser.blockingWrite(), ikayaki.squid.Degausser.pollTimeout, ikayaki.squid.Degausser.queue, and ikayaki.squid.Degausser.waitingForMessage.

Here is the call graph for this function:

boolean ikayaki.squid.Degausser.isDemagnetizing  ) 
 

Definition at line 281 of file Degausser.java.

References ikayaki.squid.Degausser.demagnetizing.

boolean ikayaki.squid.Degausser.isOK  ) 
 

Checks if connection is ok.

Returns:
true if ok.

Definition at line 401 of file Degausser.java.

References ikayaki.squid.Degausser.serialIO.

Referenced by ikayaki.squid.Squid.isOK().

void ikayaki.squid.Degausser.serialIOEvent SerialIOEvent  event  ) 
 

Propagates serial port message event.

Parameters:
event the event that happened.

Implements ikayaki.squid.SerialIOListener.

Definition at line 409 of file Degausser.java.

References ikayaki.squid.SerialIOEvent.getCleanMessage(), ikayaki.squid.Degausser.messageBuffer, ikayaki.squid.Degausser.queue, and ikayaki.squid.Degausser.waitingForMessage.

Here is the call graph for this function:

void ikayaki.squid.Degausser.setAmplitude double  amplitude  )  [protected]
 

Sets amplitude to ramp, range 1.0 to maximumField. A value of 1.0 will actually be rounded to 1.1 which is the actual minimum amplitude of the degausser.

Parameters:
amplitude amplitude to demag.
Exceptions:
IllegalArgumentException if the amplitude is not in the allowed range.

Definition at line 146 of file Degausser.java.

References ikayaki.squid.Degausser.blockingWrite(), ikayaki.squid.Degausser.maximumField, and ikayaki.squid.Degausser.minimumField.

Referenced by ikayaki.squid.Degausser.demagnetizeY(), and ikayaki.squid.Degausser.demagnetizeZ().

Here is the call graph for this function:

void ikayaki.squid.Degausser.setCoil char  coil  )  [protected]
 

Sets coil X,Y,Z.

Parameters:
coil coil to set on.

Definition at line 127 of file Degausser.java.

References ikayaki.squid.Degausser.blockingWrite().

Referenced by ikayaki.squid.Degausser.demagnetizeY(), and ikayaki.squid.Degausser.demagnetizeZ().

Here is the call graph for this function:

void ikayaki.squid.Degausser.updateSettings  ) 
 

Checks which settings have changed and updates the degausser interface. This method will be called by the Squid class.

Definition at line 104 of file Degausser.java.

References ikayaki.squid.Degausser.blockingWrite(), ikayaki.squid.Degausser.degausserDelay, and ikayaki.squid.Degausser.degausserRamp.

Here is the call graph for this function:


Member Data Documentation

int ikayaki.squid.Degausser.degausserDelay [private]
 

1-9 seconds default delay 1 second

Definition at line 59 of file Degausser.java.

Referenced by ikayaki.squid.Degausser.Degausser(), and ikayaki.squid.Degausser.updateSettings().

int ikayaki.squid.Degausser.degausserRamp [private]
 

(3, 5, 7, 9) default 3

Definition at line 64 of file Degausser.java.

Referenced by ikayaki.squid.Degausser.Degausser(), and ikayaki.squid.Degausser.updateSettings().

boolean ikayaki.squid.Degausser.demagnetizing = false [private]
 

Definition at line 70 of file Degausser.java.

Referenced by ikayaki.squid.Degausser.demagnetizeY(), ikayaki.squid.Degausser.demagnetizeZ(), and ikayaki.squid.Degausser.isDemagnetizing().

double ikayaki.squid.Degausser.maximumField [private]
 

Definition at line 68 of file Degausser.java.

Referenced by ikayaki.squid.Degausser.setAmplitude().

Stack<String> ikayaki.squid.Degausser.messageBuffer [private]
 

buffer for incoming messages, readed when needed.

Definition at line 43 of file Degausser.java.

Referenced by ikayaki.squid.Degausser.Degausser(), and ikayaki.squid.Degausser.serialIOEvent().

double ikayaki.squid.Degausser.minimumField [private]
 

Definition at line 67 of file Degausser.java.

Referenced by ikayaki.squid.Degausser.setAmplitude().

int ikayaki.squid.Degausser.pollTimeout = 60 [private]
 

Definition at line 49 of file Degausser.java.

Referenced by ikayaki.squid.Degausser.getAmplitude(), ikayaki.squid.Degausser.getCoil(), ikayaki.squid.Degausser.getDelay(), ikayaki.squid.Degausser.getRamp(), and ikayaki.squid.Degausser.getRampStatus().

SynchronousQueue<String> ikayaki.squid.Degausser.queue [private]
 

Synchronous queue for waiting result message from degausser

Definition at line 48 of file Degausser.java.

Referenced by ikayaki.squid.Degausser.blockingWrite(), ikayaki.squid.Degausser.Degausser(), ikayaki.squid.Degausser.demagnetizeY(), ikayaki.squid.Degausser.demagnetizeZ(), ikayaki.squid.Degausser.getAmplitude(), ikayaki.squid.Degausser.getCoil(), ikayaki.squid.Degausser.getDelay(), ikayaki.squid.Degausser.getRamp(), ikayaki.squid.Degausser.getRampStatus(), and ikayaki.squid.Degausser.serialIOEvent().

SerialIO ikayaki.squid.Degausser.serialIO [protected]
 

COM port for communication.

Definition at line 54 of file Degausser.java.

Referenced by ikayaki.squid.Degausser.blockingWrite(), ikayaki.squid.Degausser.Degausser(), and ikayaki.squid.Degausser.isOK().

boolean ikayaki.squid.Degausser.waitingForMessage = false [private]
 

Definition at line 66 of file Degausser.java.

Referenced by ikayaki.squid.Degausser.blockingWrite(), ikayaki.squid.Degausser.demagnetizeY(), ikayaki.squid.Degausser.demagnetizeZ(), ikayaki.squid.Degausser.getAmplitude(), ikayaki.squid.Degausser.getCoil(), ikayaki.squid.Degausser.getDelay(), ikayaki.squid.Degausser.getRamp(), ikayaki.squid.Degausser.getRampStatus(), and ikayaki.squid.Degausser.serialIOEvent().


The documentation for this class was generated from the following file:
Generated on Fri May 6 16:01:16 2005 for Squid by  doxygen 1.4.1