Class Device

All Implemented Interfaces:
Runnable

public class Device extends JposDevice implements Runnable
JposDevice based implementation of JavaPOS Gate, ItemDispenser, Lights, MotionSensor and SignatureCapture device service implementations for the sample device implemented in SampleCombiSpecial.tcl.
For a complete list of possible commands and responses, look at the comments at the beginning of the sub-device specific parts of the device simulator script.

Here a full list of all device specific properties that can be changed via jpos.xml:

  • Baudrate: Baud rate of the communication device. Must be one of the baud rate constants specified in the SerialIOProcessor class. Default: 9600 (BAUDRATE_9600).
    This property may only be set if the communication with the device shall be made via serial port.
  • CharacterTimeout: Positive integer value, specifying the maximum delay between bytes that belong to the same frame. Default value: 10 milliseconds.
  • Databits: Number of data bits per data unit. Must be 7 or 8. Default: 8. It is strictly recommended to let this value unchanged.
    This property may only be set if the communication with the device shall be made via serial port.
  • DispenserNearEndCount: Specifies the number of items in the item dispenser that must be present to report status OK instead of nearly empty. Default: 2.
  • LoggingType: Specifies the logging format used by the IO processor. Must be one of the logging type values specified in the UniqueIOProcessor class. Default: 1 (UniqueIOProcessor.LoggingTypeEscapeString).
  • MaxRetry: Specifies the maximum number of retries. Should be > 0 only for RS232 (real COM ports) where characters can become lost or corrupted on the communication line. Default: 2.
  • MotionActivityTimeout: The device uses this delay after motion detection before it reports motion has been finished. Default: 5000.
    This property must only be set if the corresponding timeout in the device simulator has been changed.
  • OwnPort: Integer value between 0 and 65535 specifying the TCP port used for communication with the device simulator. Default: 0 (for random port number selected by operating system).
    This property may only be set if the communication with the device shall be made via TCP.
  • Parity: Parity of each data unit. Must be one of the parity constants specified in the SerialIOProcessor class. Default: 0 (PARITY_NONE).
    This property may only be set if the communication with the device shall be made via serial port.
  • PollDelay: Minimum time between status requests, in milliseconds. Status requests will be used to monitor the device state. Default: 300.
  • Port: Operating system specific name of the serial communication port (e.g. RS232, Usb2Serial, Bluetooth...) or the TCP address to be used for communication with the device simulator. In case of RS232, names look typically like COM2 or /dev/ttyS1. In case of TCP, names are of the form IPv4:port, where IPv4 is the IP address of the device and port its TCP port.
  • RequestTimeout: Maximum time, in milliseconds, between sending a command to the simulator and getting the first byte of its response. Default: 500.
  • Stopbits: Number of stop bits per data unit. Must be 1 or 2. Default: 2.
    This property may only be set if the communication with the device shall be made via serial port.
  • UsbToSerial: Specifies whether the specified port is a virtual port that will be removed by the operating system when the device is not connected. Default: false.
    This property may only be set if the communication with the device shall be made via serial port.
  • Constructor Details

    • Device

      public Device(String id) throws jpos.JposException
      Constructor, Stores communication target. Communication target can be a COM port or a TCP target. Valid COM port specifiers differ between operating systems, e.g. on Windows, COM1 can be a valid communication target while on Linux, /dev/ttyS0 might specify the same target. Format of TCP targets is IpAddress:Port, e.g. 10.11.12.13:45678.
      Parameters:
      id - COM port or TCP target.
      Throws:
      jpos.JposException - if Communication target invalid.
  • Method Details

    • checkProperties

      public void checkProperties(jpos.config.JposEntry entry) throws jpos.JposException
      Description copied from class: JposBaseDevice
      Checks whether a JposEntry belongs to a predefined property value an if so, sets the corresponding driver value
      Overrides:
      checkProperties in class JposBaseDevice
      Parameters:
      entry - Entry to be checked, contains value to be set
      Throws:
      jpos.JposException - if a property value is invalid
    • run

      public void run()
      Device control thread, polls device states and handles status changes.
      Specified by:
      run in interface Runnable
    • changeDefaults

      public void changeDefaults(LightsProperties props)
      Description copied from class: JposDevice
      Change defaults of properties. Must be implemented within derived classed that support lights services.
      Overrides:
      changeDefaults in class JposDevice
      Parameters:
      props - Property set for setting the property defaults
    • changeDefaults

      public void changeDefaults(GateProperties props)
      Description copied from class: JposDevice
      Change defaults of properties. Must be implemented within derived classed that support gate services.
      Overrides:
      changeDefaults in class JposDevice
      Parameters:
      props - Property set for setting the property defaults
    • changeDefaults

      public void changeDefaults(MotionSensorProperties props)
      Description copied from class: JposDevice
      Change defaults of properties. Must be implemented within derived classed that support motion sensor services.
      Overrides:
      changeDefaults in class JposDevice
      Parameters:
      props - Property set for setting the property defaults
    • changeDefaults

      public void changeDefaults(SignatureCaptureProperties props)
      Description copied from class: JposDevice
      Change defaults of properties. Must be implemented within derived classed that support signature capture services.
      Overrides:
      changeDefaults in class JposDevice
      Parameters:
      props - Property set for setting the property defaults
    • changeDefaults

      public void changeDefaults(ItemDispenserProperties props)
      Description copied from class: JposDevice
      Change defaults of properties. Must be implemented within derived classed that support item dispenser services.
      Overrides:
      changeDefaults in class JposDevice
      Parameters:
      props - Property set for setting the property defaults
    • getGateProperties

      public GateProperties getGateProperties(int index)
      Description copied from class: JposDevice
      Returns device implementation of GateProperties.
      Overrides:
      getGateProperties in class JposDevice
      Parameters:
      index - Device index, see constructor of JposCommonProperties.
      Returns:
      Instance of GateProperties that matches the requirements of the corresponding device service.
    • getItemDispenserProperties

      public ItemDispenserProperties getItemDispenserProperties(int index)
      Description copied from class: JposDevice
      Returns device implementation of ItemDispenserProperties.
      Overrides:
      getItemDispenserProperties in class JposDevice
      Parameters:
      index - Device index, see constructor of JposCommonProperties.
      Returns:
      Instance of ItemDispenserProperties that matches the requirements of the corresponding device service.
    • getLightsProperties

      public LightsProperties getLightsProperties(int index)
      Description copied from class: JposDevice
      Returns device implementation of LightsProperties.
      Overrides:
      getLightsProperties in class JposDevice
      Parameters:
      index - Device index, see constructor of JposCommonProperties.
      Returns:
      Instance of LightsProperties that matches the requirements of the corresponding device service.
    • getMotionSensorProperties

      public MotionSensorProperties getMotionSensorProperties(int index)
      Description copied from class: JposDevice
      Returns device implementation of MotionSensorProperties.
      Overrides:
      getMotionSensorProperties in class JposDevice
      Parameters:
      index - Device index, see constructor of JposCommonProperties.
      Returns:
      Instance of MotionSensorProperties that matches the requirements of the corresponding device service.
    • getSignatureCaptureProperties

      public SignatureCaptureProperties getSignatureCaptureProperties(int index)
      Description copied from class: JposDevice
      Returns device implementation of SignatureCaptureProperties.
      Overrides:
      getSignatureCaptureProperties in class JposDevice
      Parameters:
      index - Device index, see constructor of JposCommonProperties.
      Returns:
      Instance of SignatureCaptureProperties that matches the requirements of the corresponding device service.