Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void sendCommand(String command){
- final TransferCallback callback = (Transfer transfer) -> {
- LibUsb.freeTransfer(transfer);
- };
- write(handle, command, callback);
- }
- public static void sendMultipleCommands(String COMMAND_ONE, String COMMAND_TWO, String COMMAND_THREE, String COMMAND_FOUR, String COMMAND_FIVE, String COMMAND_SIX){
- // This callback is called after all commands have been sent
- // The asynchronous transfer chain ends here.
- final TransferCallback seven = (Transfer transfer) -> {
- System.out.println("Cut complete.");
- LibUsb.freeTransfer(transfer);
- };
- // This callback is called after command 6 is sent
- final TransferCallback six = (Transfer transfer) -> {
- System.out.println("Sending command: 6");
- write(handle, COMMAND_SIX, seven);
- LibUsb.freeTransfer(transfer);
- };
- // This callback is called after command 5 is sent
- final TransferCallback five = (Transfer transfer) -> {
- System.out.println("Sending command: 5");
- write(handle, COMMAND_FIVE, six);
- LibUsb.freeTransfer(transfer);
- };
- // This callback is called after command 4 is sent
- final TransferCallback four = (Transfer transfer) -> {
- System.out.println("Sending command: 4");
- write(handle, COMMAND_FOUR, five);
- LibUsb.freeTransfer(transfer);
- };
- // This callback is called after command 3 is sent
- final TransferCallback three = (Transfer transfer) -> {
- System.out.println("Sending command: 3");
- write(handle, COMMAND_THREE, four);
- LibUsb.freeTransfer(transfer);
- };
- // This callback is called after command 2 is sent
- final TransferCallback two = (Transfer transfer) -> {
- System.out.println("Sending command: 2");
- write(handle, COMMAND_TWO, three);
- LibUsb.freeTransfer(transfer);
- };
- // Sending commands asynchronously.
- // The rest of the communication is handled by the callbacks defined above.
- System.out.println("nSending command: 1");
- write(handle, COMMAND_ONE, two);
- }
- /**
- * Asynchronously writes some data to the device.
- *
- * @param handle
- * The device handle.
- * @param data
- * The data to send to the device.
- * @param callback
- * The callback to execute when data has been transfered.
- */
- public static void write(DeviceHandle handle, String data, TransferCallback callback){
- ByteBuffer buffer = BufferUtils.allocateByteBuffer(data.getBytes().length);
- buffer.put(data.getBytes());
- Transfer transfer = LibUsb.allocTransfer();
- LibUsb.fillBulkTransfer(transfer, handle, OUT_ENDPOINT, buffer, callback, null, TIMEOUT);
- // System.out.println("Sending " + data.length + " bytes to devicen");
- result = LibUsb.submitTransfer(transfer);
- if (result != LibUsb.SUCCESS){
- throw new LibUsbException("Unable to submit transfern", result);
- }
- }
Add Comment
Please, Sign In to add comment