VP5300 with L100, using the Universal SDK
Our SDK is made up of many different class files. There are class files for the commands for each individual device (IDT_NEO2.cs has all the commands for a NEO2 device, IDT_L100.cs has all the commands for a L100 pinpad, IDT_VP3300.cs has all the commands for a VP3300, etc), in addition, we have one "master" class file that has the commands for ALL the devices, and that class is IDT_Device.cs.
Since the desire here is to talk to BOTH NEOII and L100 (which are two different class files), you need to use IDT_Device class instead. This means, for example, instead of IDT_NEO2.SharedController.cancelTransaction(), you would use IDT_Device.SharedController.cancelTransaction(). Using IDT_Device, you can then send both L100 commands and NEOII commands.
One important note: Every time the SDK starts, it ASSUMES the NEOII is NOT in L100 passthrough mode. Once you send the command to set NEOII in passthough mode, a flag is set in the SDK to now repackage data for the L100. This means that if you leave the NEOII in passthrough mode between SDKrestarts, the SDK will not know the NEO II is still in in passthough mode and commands won't execute. So be sure to take into consideration device state management by not leaving your NEO II in passthough mode if you are going to exit your application.
Recap:
1. Use IDT_Device.cs for calling all the function, not IDT_Neo2.cs.
2. When in normal (non-passthrough) mode, you can use any of the functions that are listed in IDT_NEO2.cs (but calling the same API methods from IDT_Device.cs)
3. When in L100 passthrough mode, you can use any of the function that are listed in IDT_L100.cs (but calling the same API methods from IDT_Device.cs)
4. To enter L100 passthrough mode, execute IDT_Device.SharedController.device_enableL100Passthrough(true)
5. To leave L100 passthrough mode, execute IDT_Device.SharedController.device_enableL100Passthrough(false)
6. Keep track of device state and remember that everytime the SDK starts, it assumes the NEO2 is NOT in passthough mode.
7. To make a USB connection to the NEO2 through IDT_Device.cs (instead of IDT_NEO2.cs)-
IDT_Device.setDeviceType(IDT_DEVICE_Types.IDT_DEVICE_NEO2, DEVICE_INTERFACE_Types.DEVICE_INTERFACE_USB, DEVICE_PROTOCOL_Types.DEVICE_PROTOCOL_IDG);
8. To make a RS-232 connection to the NEO2 through IDT_Device.cs (using COM1 as an example)-
bool isConnected = IDT_Device.useSerialPort(IDT_DEVICE_Types.IDT_DEVICE_NEO2, DEVICE_PROTOCOL_Types.DEVICE_PROTOCOL_IDG, 1);
if (isConnected)
IDT_Device.setDeviceType(IDT_DEVICE_Types.IDT_DEVICE_NEO2, DEVICE_INTERFACE_Types.DEVICE_INTERFACE_SERIAL, DEVICE_PROTOCOL_Types.DEVICE_PROTOCOL_IDG);
9. To set all the callbacks using IDT_Device instead of IDT_NEO2:
IDT_Device.setCallback(MessageCallback);
With the NEOII SDK, you should have the manual with all the API commands when talking to NEO II. I am attaching the L100 SDK manual so you can see what commands you can send when in L100 passthrough mode.
80141502-001_L100_Win.pdf (945 kB)