Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Modified TCP Printer section

...

For Windows setup of latest source version StartWinAdminSVN
In case of problems please look for StartWinAdminSVN at http://web.archive.org/web/20070714013447/ofbizwiki.go-integral.com/Wiki.jsp?page=PageIndexImage Removed
or even begin by http://web.archive.org/web/*/http://ofbizwiki.go-integral.com/Image Removed

To Run

java -jar ofbiz.jar -pos

...

Some comments pulled from the mailing list and added since

I found STAR (serial) receipt printers to be the best; a cash drawer which plugs into the back of the printer works great. As for scanners, use a keyboard wedge scanner and a keyboard or USB MSR. The POS devices we used had MSR built in, not exactly sure how it was configured, but in the end it send the signal through the keyboard device. A term pole display will need to be implemented, as this is not currently supported. However, it shouldn't be very difficult which the base which is there today. Touch screen is configured on the OS level. ELO based devices work on Linux.

The multiple drawers can be thru the serial. most are thru the parallel port. Gets tricky if you have a parallel device as well. Touch screens can use the keyboard wedge as well.

The model we used for testing was a DigiCom iPOS435 with a side-mounted MSR. Our particular units had Celeron 850MHz processors and 512MB of RAM. Performance was adequate, but I don't think I could call it "fast". (OS - Gentoo, Fedora; DB - postgres). You may want to compare the ipos430 spec to whatever you're looking at currently. Aside from the speed, it is a very nice unit. For printers we used a basic Star Micronics thermal (model TSP600), which worked out just fine during testing, though I can't comment on long-term reliability.

Beware with wedge scanners not self-powered. I had a problem with a Dell Dimension 4600 (too weak keyboard alimentation I think) and a Zebex 3080. No problem with the USB model.

I've used Metrologic scanners (tabletop & handheld) almost exclusively for the past 5 years with a variety of Dell's and custom built machines. I've never had a problem with the keyboard wedge versions. They all had their own power source.

Deployed OK on FC3-XFC4 with a Star TSP600 printer using serial, MetroLogic keyboard wedge scanner and MultiQ 156 serial touch screen using mutouch drivers. Cash draw linked into the printer and operates fine. No MSR requirements so not tested.

How to use a MSR for CC payments.
Program your MSR to work as a keyboard, not a human interface device (HID) if you can. Change the device from NullMSR (I think) to GenericMSR in framework/base/pos-configuration.xml. Use the device in specialpurpose/pos/config/jpos.xml.
The payment services can be set under Catalog -> Store payments

Mag Stripe Readers issue on Windows XP.
Using both an ID Tech USB MSR using ID Tech's JavaPOS driver and a Magtek USB device with the GenericMSR driver a problem appears on Windows XP. While it was working properly on other platforms, on WinXP it seems the data isn't  getting captured and waiting when paymentEvents.payCredit is run.  When installed  on Windows they show up as HID's and Keyboard's in the Windows Device Manager. The problem was solved by increasing MaxWaitKeyboard in  jpos.properties.  The complete string from the MSR wasn't received in a single event so the logic wasn't recognizing it as an MSR swipe.

...

  1. Install the JavaSE which version you like. I use jdk1.5.0_09;
  2. Then installed the "Epson JavaPOS ADK 1.82" (or 1.81, 1.80, any version suppor jpos18-control; and copy the "epsonJposService182.jar, epsonJposServiceCommon.jar" to /ofbiz/applications/pos/lib;
  3. Now modified the jpos.xml file, under /ofbiz/applications/pos/config; I post a sample here:
    It uses a TM-U220D on COM1 port, please remember to keep the jpos182 or 180 same as the file you using under ./pos/lib;
        <JposEntry logicalName="TM-U220D">
            <creation factoryClass="jp.co.epson.jpos182.util.EpsonJposServiceInstanceFactory"
                serviceClass="jp.co.epson.jpos182.ptr.U220D"/>
            <vendor name="SEIKO EPSON" url="http://www.epson.co.jp"/>
            <jpos category="POSPrinter" version="1.8"/>
        <product description="EPSON TM-U220D Printer Device Service"
            name="EPSON Services for JavaPOS(TM) Standard" url="http://www.epson.co.jp"/>
            <!-Other non JavaPOS required property (mostly vendor properties and bus specific properties i.e. RS232 )->
            <prop name="dataBits" type="String" value="8"/>
            <prop name="Parity" type="String" value="0"/>
            <prop name="portName" type="String" value="COM1"/>
            <prop name="U375Compatible" type="String" value="0"/>
            <prop name="deviceBus" type="String" value="RS232"/>
            <prop name="DataLen" type="String" value="1"/>
            <prop name="UsedJAI" type="String" value="0"/>
            <prop name="TimeoutTime" type="String" value="5000"/>
            <prop name="baudRate" type="String" value="9600"/>
            <prop name="TwoColor" type="String" value="0"/>
            <prop name="PortType" type="String" value="0"/>
            <prop name="UsedNVRAM" type="String" value="0"/>
            <prop name="StopBit" type="String" value="1"/>
            <prop name="RetryTime" type="String" value="100"/>
            <prop name="ErrorOption" type="String" value="1"/>
            <prop name="ReverseEject" type="String" value="0"/>
            <prop name="SerialPowerWaitTime" type="String" value="500"/>
            <prop name="InputWait" type="String" value="1"/>
            <prop name="AnalysisLevel" type="String" value="1"/>
            <prop name="BufferSize" type="String" value="2"/>
            <prop name="DeviceDesc" type="String" value="EPSON TM-U220D Printer"/>
            <prop name="OutputLength" type="String" value="10"/>
            <prop name="parity" type="String" value="None"/>
            <prop name="stopBits" type="String" value="1"/>
            <prop name="PortName" type="String" value="COM1"/> <!-- Windows -->
            <!-prop name="PortName" type="String" value="/dev/ttyS0"/> <!- Linux -->
            <prop name="ReceiveTimeout" type="String" value="10"/>
            <prop name="TwoByteCharacter" type="String" value="0"/>
            <prop name="Page254UseCode" type="String" value="0"/>
            <prop name="PhysicalDevice" type="String" value="TM-U220D"/>
            <prop name="PaperSize" type="String" value="80"/>
            <prop name="BaudRate" type="String" value="6"/>
            <prop name="Page255UseCode" type="String" value="0"/>
            <prop name="ServiceVersion" type="String" value="1.80"/>
            <prop name="flowControl" type="String" value="None"/>
            <prop name="FlowControl" type="String" value="1"/>
        </JposEntry>
  4. Install Java CommAPI 2.0, copy the comm.jar to j2se or j2re 's /lib/ext folder.
    and copy the javax.comm.properties to j2se or j2re's /lib folder;
    and copy the win32com.dll to /windows/system32.
  5. Modifiy the pos-containers.xml, which under /framework/base/config:
    to make the <property name="Receipt" value="TM-U220D" /> value same as you defined in jpos.xml file.

...

  1. First, replace the modules in back of the printer
  2. While the printer is unplugged from power, you must change the "reset" dip-switch (2-7) from off to on.
  3. Power on the printer, and plug it into the network.
  4. As per the "UB-E02 Technical Reference Guide." (get it, you'll need it) use the switch button on the Ethernet module to set the ROM back to factory defaults. This will also print a settings page afterward, and let you know the subnet / ip address that you'll need to know to configure the printer.
  5. Use the Epson TMNet WINconfig utility on a Windows box (sorry! there is NO linux utility!) Set the PC on the same subnet, and set your gateway as the default IP address of the printer.
  6. Change the settings of the printer (once connected) to suite your environment.
  7. Add the printer to Epson JavaPOS with SetupPOS.sh using the IP address and info that you set previously.
  8. Test with CheckHealth
  9. Add printer to pos-containers.
  10. start and test OFBIZ...You will receive the error at the bottom of the page. I think it's from something in the deviceloader that is able to check through serial and not though Ethernet! Nothing I wanted to fiddle with though, It works just fine and fast!
    FYI....DO NOT use a passthrough drawer on Ethernet printers, or customer displays. It mentioned this several times in all of the technical guides.

...

  1. ***IF YOU HAVE A CASH DRAWER CONFIGURED, AND UNPLUGGED WHILE TESTING, YOU WILL RECEIVE THE FOLLOWING ERROR*** (although it doesn't affect anything, and the application still starts)
    --- exception report

...

  1. ---------------------------------------------------------
    Exception: jpos.JposException
    Message: The power supply of the device is off.
    ---

...

  1. stack trace

...

  1. --------------------------------------------------------------
    jpos.JposException: The power supply of the device is off.
    jp.co.epson.upos.pntr.init.AbstractPrinterInitialization.getRealtimeStatus(Unknown Source)
    jp.co.epson.upos.pntr.init.AbstractPrinterInitialization.getPrinterStatus(Unknown Source)
    jp.co.epson.upos.pntr.init.AbstractPrinterInitialization.getPrinterStatus(Unknown Source)
    jp.co.epson.upos.pntr.init.AbstractPrinterInitialization.initializeCommon(Unknown Source)
    jp.co.epson.upos.pntr.init.AbstractPrinterInitialization.initialize(Unknown Source)
    jp.co.epson.upos.pntr.init.AbstractPrinterInitialization.initializeDevice(Unknown Source)
    jp.co.epson.upos.drw.CashDrawerPortControl.initializePrinterInstance(Unknown Source)
    jp.co.epson.upos.drw.CashDrawerPortControl.openPort(Unknown Source)
    jp.co.epson.upos.drw.CommonCashDrawerService.setDeviceEnabled(Unknown Source)
    jpos.BaseJposControl.setDeviceEnabled(Unknown Source)
    org.ofbiz.pos.device.GenericDevice.enable(GenericDevice.java:71)
    org.ofbiz.pos.device.GenericDevice.open(GenericDevice.java:46)
    org.ofbiz.pos.device.DeviceLoader.load(DeviceLoader.java:165)
    org.ofbiz.pos.container.JposDeviceContainer.start(JposDeviceContainer.java:50)
    org.ofbiz.base.container.ContainerLoader.start(ContainerLoader.java:101)
    org.ofbiz.base.start.Start.startStartLoaders(Start.java:263)
    org.ofbiz.base.start.Start.startServer(Start.java:312)
    org.ofbiz.base.start.Start.start(Start.java:316)
    org.ofbiz.base.start.Start.main(Start.java:399)
    --------------------------------------------------------------------------------
Epson JavaPOS ADK 1.82 support these product

...