Info | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
With The last released version with the POS available was R12.04.06. It's though still available in the R14.12 and 15.12 non released branches. It'll not be availble with the R16 release. All the documentation below is reliable and usable before revision 1754402 |
How to setup the Epson JavaPOS ?
To find the last available Epson JavaPOS ADK use www.epson-pos.com (we can't put it there here : restrictive licence)
...
- Install the JavaSE which version you like. I use jdk1.5.0_09;
- 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;
- NOTE:
- Epson JavaPOS program will also install the Jars in JavaHome/jre/lib/ext so if you get conficts look there and resolve the driver versions. like jpos111.jar and in the ofbiz like you might have jpos182.jar
- if you are running more than one instance of ofbiz then it is best to have the drivers just in Ofbiz, so remove the SetupPOS.properties as well
- NOTE:
- 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> - Install Java CommAPI 2.0: copy comm.jar and javax.comm.properties to j2se or j2re 's /lib folder. Copy the win32com.dll to /windows/system32 (see Attachments)
- 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.
Now launch with java -jar ofbiz.jar -pos, and enjoy it!
Successful TCP / Ethernet Epson printer implementation
- First, replace the modules in back of the printer
- While the printer is unplugged from power, you must change the "reset" dip-switch (2-7) from off to on.
- Power on the printer, and plug it into the network.
- 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.
- 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.
- Change the settings of the printer (once connected) to suite your environment.
- Add the printer to Epson JavaPOS with SetupPOS.sh using the IP address and info that you set previously.
- Test with CheckHealth
- Add printer to pos-containers.
- 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.
***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 ----------------------------------------------------------
Exception: jpos.JposException
Message: The power supply of the device is off.
---- stack trace ---------------------------------------------------------------
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
DM-D110 DM-D210 DM-D500 DM-Z460/DM-Z461
...
TM-L90 TM-P60 TM-T88II TM-T88III TM-T88IIR TM-T90
TM-U210A TM-U220 w/Black Mark Sensor TM-U220A TM-U220B TM-U220D TM-U230 TM-U950
Advice
Never load/mix 2 instances of ADK (eg 1.8x and 1.92) on the same machine