Method: HardsploitAPI_SPI#spi_Interact

Defined in:
lib/hardsploit-api/HardsploitAPI/Modules/SPI/HardsploitAPI_SPI.rb

#spi_Interact(payload:) ⇒ Object

SPI interact

  • payload

    Byte array want to send

  • Return SPI data received



79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/hardsploit-api/HardsploitAPI/Modules/SPI/HardsploitAPI_SPI.rb', line 79

def spi_Interact(payload:)
  if ( payload.size > 4000 ) then
    raise SPIWrongPayloadSize
  end

  packet = Array.new
  packet.push 0  #low byte of lenght of trame refresh automaticly before send by usb

  packet.push 0  #high byte of lenght of trame refresh automaticly before send by usb

  packet.push HardsploitAPI.lowByte(word:HardsploitAPI::USB_COMMAND::FPGA_COMMAND)
  packet.push HardsploitAPI.highByte(word:HardsploitAPI::USB_COMMAND::FPGA_COMMAND)

  packet.push 0x50 #Command RAW COMMUNICATION TO FPGA FIFO

  packet.push (( @pulse & 1 ) << 2 ) || ( @mode & 3 ) #Add mode and the value of pin pulse

  packet.push @speed #Add speed

  packet.concat payload #Add data

  #puts "Payload : #{payload}"


  #remove header (4 bytes   2 for size 2 for type of command)

  return HardsploitAPI.instance.sendAndReceiveDATA(packet, 1000).drop(4)
end