AndreasFagschlunger / O2Xfs

Java API for accessing CEN/XFS API, EMV Level 2 Kernel
47 stars 28 forks source link

I have a throuble with CimService.fireItemsInserted. #67

Closed VitalyEG closed 6 years ago

VitalyEG commented 6 years ago

"On Item Insert" send 7.11 WFS_SRVE_CIM_ITEMSINSERTED event. O2XFS takes CimService.fireServiceEvent with "SRVE_ITEMSINSERTED" and it's call CimService.fireItemsInserted.

Optional<PositionInfo310> positionInfo = Optional.empty();
if (!Pointer.NULL.equals(p)) {
  **positionInfo = Optional.of(CimFactory.create(getXfsVersion(), p, PositionInfo310.class));**
}

Here ia s struct of WFSCIMPOSITIONINFO from official documentation at CIM device: values of WFSCIMPOSITIONINFO.wAdditionalBunches */

define WFS_CIM_ADDBUNCHNONE (1)

define WFS_CIM_ADDBUNCHONEMORE (2)

define WFS_CIM_ADDBUNCHUNKNOWN (3)

O2XFS has a throuble at positionInfo = Optional.of(CimFactory.create(getXfsVersion(), p, PositionInfo310.class)); line because "additionalBunches" has no code ZERO (0).

The documentation for the CIM device describes that the value of the field maybe zero. 7.11 WFS_SRVE_CIM_ITEMSINSERTED wAdditionalBunches This value will always be zero within this event. usBunchesRemaining This value will always be zero within this event.

HERE IS LOG: 2018-06-20 15:49:55,442 [Thread-2] DEBUG at.o2xfs.xfs.XfsAPI - wfsAsyncExecute(HSERVICE, DWORD, Type, DWORD, HWND): hService=1,dwCommand=1306,lpCmdData=null,dwTimeOut=0,hWnd=780A1D00 2018-06-20 15:49:55,445 [MessageHandler] DEBUG at.o2xfs.xfs.util.MessageHandler - callback(int, Buffer): msg=1032,lpWFSResult=at.o2xfs.win32.impl.Win32Buffer@2f843c[size=4,address=F0F2B905] 2018-06-20 15:49:55,446 [MessageHandler] DEBUG at.o2xfs.xfs.service.XfsServiceManager - callback(XFSMessage, WFSResult): msg=WFS_EXECUTE_COMPLETE,wfsResult=at.o2xfs.xfs.WFSResult@197b533[requestID=3,service=1,timestamp=at.o2xfs.win32.SYSTEMTIME@1483bbd[types=[2018, 6, 3, 20, 15, 49, 55, 0]],result=0,u=at.o2xfs.win32.Union@a35761[size=4,fields={commandCode=0,eventID=0}],buffer=Address: 8E234F00, Value: 00000000] 2018-06-20 15:49:55,446 [MessageHandler] DEBUG at.o2xfs.xfs.service.XfsServiceManager - callback(XFSMessage, WFSResult): wfsResult.getRequestID()=3 2018-06-20 15:49:55,446 [MessageHandler] DEBUG at.o2xfs.xfs.service.EventDispatcher - dispatch(XFSMessage, IXfsEventNotification, WFSResult): xfsMessage=WFS_EXECUTE_COMPLETE,eventNotification=at.o2xfs.xfs.service.cim.cmd.OpenShutterCommand@58e5e2,wfsResult=at.o2xfs.xfs.WFSResult@197b533[requestID=3,service=1,timestamp=at.o2xfs.win32.SYSTEMTIME@1483bbd[types=[2018, 6, 3, 20, 15, 49, 55, 0]],result=0,u=at.o2xfs.win32.Union@a35761[size=4,fields={commandCode=0,eventID=0}],buffer=Address: 8E234F00, Value: 00000000] 2018-06-20 15:49:55,447 [MessageHandler] DEBUG at.o2xfs.xfs.service.cmd.AbstractAsyncXfsCommand - fireOperationCompleteEvent(WFSResult): wfsResult=at.o2xfs.xfs.WFSResult@197b533[requestID=3,service=1,timestamp=at.o2xfs.win32.SYSTEMTIME@1483bbd[types=[2018, 6, 3, 20, 15, 49, 55, 0]],result=0,u=at.o2xfs.win32.Union@a35761[size=4,fields={commandCode=0,eventID=0}],buffer=Address: 8E234F00, Value: 00000000] 2018-06-20 15:49:55,447 [MessageHandler] DEBUG at.o2xfs.xfs.service.XfsServiceManager - free(WFSResult): wfsResult=at.o2xfs.xfs.WFSResult@197b533[requestID=3,service=1,timestamp=at.o2xfs.win32.SYSTEMTIME@1483bbd[types=[2018, 6, 3, 20, 15, 49, 55, 0]],result=0,u=at.o2xfs.win32.Union@a35761[size=4,fields={commandCode=0,eventID=0}],buffer=Address: 8E234F00, Value: 00000000] 2018-06-20 15:49:55,448 [MessageHandler] DEBUG at.o2xfs.xfs.XfsAPI - wfsFreeResult(WFSResult): wfsResult=at.o2xfs.xfs.WFSResult@197b533[requestID=3,service=1,timestamp=at.o2xfs.win32.SYSTEMTIME@1483bbd[types=[2018, 6, 3, 20, 15, 49, 55, 0]],result=0,u=at.o2xfs.win32.Union@a35761[size=4,fields={commandCode=0,eventID=0}],buffer=Address: 8E234F00, Value: 00000000] 2018-06-20 15:49:55,448 [MessageHandler] DEBUG at.o2xfs.xfs.util.MessageHandler - callback(int, Buffer): msg=1045,lpWFSResult=at.o2xfs.win32.impl.Win32Buffer@48fb34[size=4,address=F0F2B905] 2018-06-20 15:49:55,448 [MessageHandler] DEBUG at.o2xfs.xfs.service.XfsServiceManager - callback(XFSMessage, WFSResult): msg=WFS_SERVICE_EVENT,wfsResult=at.o2xfs.xfs.WFSResult@c8c4e2[requestID=0,service=1,timestamp=at.o2xfs.win32.SYSTEMTIME@1e9cea6[types=[2018, 6, 3, 20, 15, 49, 55, 0]],result=0,u=at.o2xfs.win32.Union@1eba9ba[size=4,fields={commandCode=1322,eventID=1322}],buffer=Address: D6234F00, Value: 1450C06B] 2018-06-20 15:49:55,449 [MessageHandler] DEBUG at.o2xfs.xfs.service.cim.CimService - fireServiceEvent(WFSResult): at.o2xfs.xfs.WFSResult@c8c4e2[requestID=0,service=1,timestamp=at.o2xfs.win32.SYSTEMTIME@1e9cea6[types=[2018, 6, 3, 20, 15, 49, 55, 0]],result=0,u=at.o2xfs.win32.Union@1eba9ba[size=4,fields={commandCode=1322,eventID=1322}],buffer=Address: D6234F00, Value: 1450C06B] 2018-06-20 15:49:55,454 [Thread-3] DEBUG at.o2xfs.xfs.XfsAPI - wfsAsyncExecute(HSERVICE, DWORD, Type, DWORD, HWND): hService=1,dwCommand=1301,lpCmdData=null,dwTimeOut=0,hWnd=780A1D00 2018-06-20 15:50:02,652 [MessageHandler] INFO at.o2xfs.xfs.service.cim.CimService - fireShutterStatusChanged(ShutterStatusChanged330): at.o2xfs.xfs.v3_30.cim.ShutterStatusChanged330@3171dd[position=INTOP,shutter=OPEN] 2018-06-20 15:50:02,652 [MessageHandler] DEBUG at.o2xfs.xfs.service.XfsServiceManager - free(WFSResult): wfsResult=at.o2xfs.xfs.WFSResult@c8c4e2[requestID=0,service=1,timestamp=at.o2xfs.win32.SYSTEMTIME@1e9cea6[types=[2018, 6, 3, 20, 15, 49, 55, 0]],result=0,u=at.o2xfs.win32.Union@1eba9ba[size=4,fields={commandCode=1322,eventID=1322}],buffer=Address: D6234F00, Value: 1450C06B] 2018-06-20 15:50:02,652 [MessageHandler] DEBUG at.o2xfs.xfs.XfsAPI - wfsFreeResult(WFSResult): wfsResult=at.o2xfs.xfs.WFSResult@c8c4e2[requestID=0,service=1,timestamp=at.o2xfs.win32.SYSTEMTIME@1e9cea6[types=[2018, 6, 3, 20, 15, 49, 55, 0]],result=0,u=at.o2xfs.win32.Union@1eba9ba[size=4,fields={commandCode=1322,eventID=1322}],buffer=Address: D6234F00, Value: 1450C06B] 2018-06-20 15:50:02,652 [MessageHandler] DEBUG at.o2xfs.xfs.util.MessageHandler - callback(int, Buffer): msg=1045,lpWFSResult=at.o2xfs.win32.impl.Win32Buffer@9c6040[size=4,address=F0F2B905] 2018-06-20 15:50:02,653 [MessageHandler] DEBUG at.o2xfs.xfs.service.XfsServiceManager - callback(XFSMessage, WFSResult): msg=WFS_SERVICE_EVENT,wfsResult=at.o2xfs.xfs.WFSResult@5e3364[requestID=0,service=1,timestamp=at.o2xfs.win32.SYSTEMTIME@dae10f[types=[2018, 6, 3, 20, 15, 49, 55, 0]],result=0,u=at.o2xfs.win32.Union@1618a8f[size=4,fields={commandCode=1311,eventID=1311}],buffer=Address: 1E244F00, Value: F45FC06B] 2018-06-20 15:50:02,653 [MessageHandler] DEBUG at.o2xfs.xfs.service.cim.CimService - fireServiceEvent(WFSResult): at.o2xfs.xfs.WFSResult@5e3364[requestID=0,service=1,timestamp=at.o2xfs.win32.SYSTEMTIME@dae10f[types=[2018, 6, 3, 20, 15, 49, 55, 0]],result=0,u=at.o2xfs.win32.Union@1618a8f[size=4,fields={commandCode=1311,eventID=1311}],buffer=Address: 1E244F00, Value: F45FC06B] 2018-06-20 15:50:16,227 [MessageHandler] DEBUG at.o2xfs.xfs.util.XfsConstants - valueOf(long, Class): Undefined at.o2xfs.xfs.cim.AdditionalBunches constant: 0 2018-06-20 15:50:24,974 [MessageHandler] DEBUG at.o2xfs.xfs.service.XfsServiceManager - free(WFSResult): wfsResult=at.o2xfs.xfs.WFSResult@5e3364[requestID=0,service=1,timestamp=at.o2xfs.win32.SYSTEMTIME@dae10f[types=[2018, 6, 3, 20, 15, 49, 55, 0]],result=0,u=at.o2xfs.win32.Union@1618a8f[size=4,fields={commandCode=1311,eventID=1311}],buffer=Address: 1E244F00, Value: F45FC06B] 2018-06-20 15:50:24,975 [MessageHandler] DEBUG at.o2xfs.xfs.XfsAPI - wfsFreeResult(WFSResult): wfsResult=at.o2xfs.xfs.WFSResult@5e3364[requestID=0,service=1,timestamp=at.o2xfs.win32.SYSTEMTIME@dae10f[types=[2018, 6, 3, 20, 15, 49, 55, 0]],result=0,u=at.o2xfs.win32.Union@1618a8f[size=4,fields={commandCode=1311,eventID=1311}],buffer=Address: 1E244F00, Value: F45FC06B] 2018-06-20 15:50:24,975 [MessageHandler] DEBUG at.o2xfs.xfs.util.MessageHandler - callback(int, Buffer): msg=1032,lpWFSResult=at.o2xfs.win32.impl.Win32Buffer@1f73fc[size=4,address=F0F2B905] 2018-06-20 15:50:24,975 [MessageHandler] DEBUG at.o2xfs.xfs.service.XfsServiceManager - callback(XFSMessage, WFSResult): msg=WFS_EXECUTE_COMPLETE,wfsResult=at.o2xfs.xfs.WFSResult@4b2a38[requestID=4,service=1,timestamp=at.o2xfs.win32.SYSTEMTIME@8ddacd[types=[2018, 6, 3, 20, 15, 49, 55, 0]],result=0,u=at.o2xfs.win32.Union@1fed813[size=4,fields={commandCode=0,eventID=0}],buffer=Address: 8E234F00, Value: 00000000] 2018-06-20 15:50:24,975 [MessageHandler] DEBUG at.o2xfs.xfs.service.XfsServiceManager - callback(XFSMessage, WFSResult): wfsResult.getRequestID()=4 2018-06-20 15:50:24,975 [MessageHandler] DEBUG at.o2xfs.xfs.service.EventDispatcher - dispatch(XFSMessage, IXfsEventNotification, WFSResult): xfsMessage=WFS_EXECUTE_COMPLETE,eventNotification=at.o2xfs.xfs.service.cim.cmd.CashInStartCommand@273796,wfsResult=at.o2xfs.xfs.WFSResult@4b2a38[requestID=4,service=1,timestamp=at.o2xfs.win32.SYSTEMTIME@8ddacd[types=[2018, 6, 3, 20, 15, 49, 55, 0]],result=0,u=at.o2xfs.win32.Union@1fed813[size=4,fields={commandCode=0,eventID=0}],buffer=Address: 8E234F00, Value: 00000000] 2018-06-20 15:50:24,976 [MessageHandler] DEBUG at.o2xfs.xfs.service.cmd.AbstractAsyncXfsCommand - fireOperationCompleteEvent(WFSResult): wfsResult=at.o2xfs.xfs.WFSResult@4b2a38[requestID=4,service=1,timestamp=at.o2xfs.win32.SYSTEMTIME@8ddacd[types=[2018, 6, 3, 20, 15, 49, 55, 0]],result=0,u=at.o2xfs.win32.Union@1fed813[size=4,fields={commandCode=0,eventID=0}],buffer=Address: 8E234F00, Value: 00000000] 2018-06-20 15:50:24,976 [MessageHandler] DEBUG at.o2xfs.xfs.service.XfsServiceManager - free(WFSResult): wfsResult=at.o2xfs.xfs.WFSResult@4b2a38[requestID=4,service=1,timestamp=at.o2xfs.win32.SYSTEMTIME@8ddacd[types=[2018, 6, 3, 20, 15, 49, 55, 0]],result=0,u=at.o2xfs.win32.Union@1fed813[size=4,fields={commandCode=0,eventID=0}],buffer=Address: 8E234F00, Value: 00000000] 2018-06-20 15:50:24,976 [MessageHandler] DEBUG at.o2xfs.xfs.XfsAPI - wfsFreeResult(WFSResult): wfsResult=at.o2xfs.xfs.WFSResult@4b2a38[requestID=4,service=1,timestamp=at.o2xfs.win32.SYSTEMTIME@8ddacd[types=[2018, 6, 3, 20, 15, 49, 55, 0]],result=0,u=at.o2xfs.win32.Union@1fed813[size=4,fields={commandCode=0,eventID=0}],buffer=Address: 8E234F00, Value: 00000000]

VitalyEG commented 6 years ago

additionalBunches.set(copy.getAdditionalBunches()); //There will be NullPointerException.