de.jaetzold.art.platform.fischertechnik
Class Fischertechnik

java.lang.Object
  |
  +--de.jaetzold.art.platform.RobotInterfaceAdapter
        |
        +--de.jaetzold.art.platform.fischertechnik.Fischertechnik
All Implemented Interfaces:
RobotInterface

public class Fischertechnik
extends RobotInterfaceAdapter


Inner Class Summary
 class Fischertechnik.CondenseEventsTask
          This Task tries to reduce the number of changes in the queue.
protected  class Fischertechnik.FTPacketDataInputFilter
           
 
Field Summary
protected  int[] analog
           
protected  int analogNumberingStart
           
protected  int digitalsState
           
protected  Queue eventQueue
           
static int EX
           
static int EY
           
protected  de.jaetzold.art.platform.fischertechnik.Fischertechnik.PacketFilterTable filterTable
           
protected  PacketInputStream inStream
           
protected  long longAveragePollingMillis
           
protected  long[] motorLastMillis
           
protected  long[] motorOffMillis
           
protected  long[] motorOnMillis
           
protected  int[] motorPulseDir
           
protected  int motorState
           
protected  Object motorStateMonitor
           
protected  boolean motorUpdatePulse
           
protected  TaskPerformer notifier
           
protected  Queue notifierQueue
           
protected  OutputStream outStream
           
protected  Hashtable portsToPeers
           
protected  TaskPerformer reader
           
protected  Queue readerQueue
           
protected  Hashtable sensorValueListeners
           
protected  long[] shouldMotorOffMillis
           
protected  long[] shouldMotorOnMillis
           
protected  int[] shouldMotorPulseDir
           
protected  int shouldMotorState
           
protected  byte undocumentedValue
           
protected  TaskPerformer writer
           
protected  Queue writerQueue
           
 
Method Summary
 boolean conformsTo(RobotInterfaceDefinition definition)
          Tells whether the given RobotInterfaceDefinition identifies this RobotInterface.
 ActuatorPort[] getActuatorPorts()
          Returns a description of all ActuatorPorts this Interface provides.
 RobotInterfaceDefinition getInterfaceDefinition()
          Returns a RobotInterfaceDefinition describing this instance of a RobotInterface.
static RobotInterface[] getInterfaces(RobotInterfaceDefinition[] ports)
          Scans the given Ports.
 SensorPort[] getSensorPorts()
          Returns a description of all SensorPorts this Interface provides.
 boolean isAlive()
          Tells the state of the logical connection to the hardware-interface.
 boolean isConnected()
          Tells the state of the physical connection to the hardware-interface.
 
Methods inherited from class de.jaetzold.art.platform.RobotInterfaceAdapter
getActuatorPorts, getPort, getSensorPorts, getSerialPortNames, getSerialPortNames, getSerialPortNames
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

inStream

protected PacketInputStream inStream

outStream

protected OutputStream outStream

writerQueue

protected Queue writerQueue

writer

protected TaskPerformer writer

readerQueue

protected Queue readerQueue

reader

protected TaskPerformer reader

filterTable

protected de.jaetzold.art.platform.fischertechnik.Fischertechnik.PacketFilterTable filterTable

eventQueue

protected Queue eventQueue

notifierQueue

protected Queue notifierQueue

notifier

protected TaskPerformer notifier

motorState

protected int motorState

shouldMotorState

protected int shouldMotorState

motorStateMonitor

protected Object motorStateMonitor

digitalsState

protected int digitalsState

analog

protected int[] analog

undocumentedValue

protected byte undocumentedValue

motorOffMillis

protected long[] motorOffMillis

motorOnMillis

protected long[] motorOnMillis

shouldMotorOffMillis

protected long[] shouldMotorOffMillis

shouldMotorOnMillis

protected long[] shouldMotorOnMillis

motorLastMillis

protected long[] motorLastMillis

motorPulseDir

protected int[] motorPulseDir

shouldMotorPulseDir

protected int[] shouldMotorPulseDir

motorUpdatePulse

protected boolean motorUpdatePulse

longAveragePollingMillis

protected long longAveragePollingMillis

EX

public static final int EX

EY

public static final int EY

analogNumberingStart

protected int analogNumberingStart

sensorValueListeners

protected Hashtable sensorValueListeners

portsToPeers

protected Hashtable portsToPeers
Method Detail

getInterfaces

public static RobotInterface[] getInterfaces(RobotInterfaceDefinition[] ports)
Scans the given Ports.

getActuatorPorts

public ActuatorPort[] getActuatorPorts()
Returns a description of all ActuatorPorts this Interface provides. The description consists of the portnumber and a minimal pulsewidth this actuatorport can generate. (also: voltage, polarity, AC/DC, maximum number of automated pulses, granularity of voltage, excludes use of other actuators?, asf.)
Following copied from interface: de.jaetzold.art.RobotInterface
See Also:
RobotInterface.getSensorPorts(), ActuatorPort.connectWith(Actuator)

getSensorPorts

public SensorPort[] getSensorPorts()
Description copied from interface: RobotInterface
Returns a description of all SensorPorts this Interface provides. The Ports in the returned Array can then be used to connect some Sensor-Objects with a Peer that represents some specific type of hardware connected to the hardware-interface.
Following copied from interface: de.jaetzold.art.RobotInterface
See Also:
RobotInterface.getActuatorPorts(), SensorPort.connectWith(Sensor)

isAlive

public boolean isAlive()
Description copied from interface: RobotInterface
Tells the state of the logical connection to the hardware-interface. If it is true that means the hardware-interface still behaves as expected.
Following copied from interface: de.jaetzold.art.RobotInterface
See Also:
RobotInterface.isConnected()

isConnected

public boolean isConnected()
Description copied from interface: RobotInterface
Tells the state of the physical connection to the hardware-interface. It may be the case that this state is not distinguishable from the one defined by isAlive().
Following copied from interface: de.jaetzold.art.RobotInterface
See Also:
RobotInterface.isAlive(), SensorPeer.isConnected(), Sensor.isConnected()

getInterfaceDefinition

public RobotInterfaceDefinition getInterfaceDefinition()
Description copied from interface: RobotInterface
Returns a RobotInterfaceDefinition describing this instance of a RobotInterface. It describes the RobotInterface in the sense that a call to conformsTo(RobotInterfaceDefinition) with it as a parameter will yield true as a result. There should be no other instances of RobotInterface at a time which conform to this definition. However there may other definitions possible to which more than one RobotInterface conforms to, but they shouldn't be returned by this method. The current implementations use a RobotInterfaceStringDefinition.
Following copied from interface: de.jaetzold.art.RobotInterface
See Also:
RobotInterfaceStringDefinition, RobotInterface.conformsTo(RobotInterfaceDefinition), RobotInterfaceFactory.getInterface(RobotInterfaceDefinition)

conformsTo

public boolean conformsTo(RobotInterfaceDefinition definition)
Description copied from interface: RobotInterface
Tells whether the given RobotInterfaceDefinition identifies this RobotInterface. The provided implementations for Fischertechnik and Mindstorms use Strings.
Following copied from interface: de.jaetzold.art.RobotInterface
See Also:
RobotInterfaceStringDefinition, RobotInterface.getInterfaceDefinition(), RobotInterfaceFactory.getInterface(RobotInterfaceDefinition)