SparkFun_LTE_Shield_Arduino_Library icon indicating copy to clipboard operation
SparkFun_LTE_Shield_Arduino_Library copied to clipboard

Many fixes to handling continuous/multiple socket connections.

Open MatthewMenze opened this issue 4 years ago • 0 comments

…FOR FULL FUNCTIONALITY. DEVICE CURRENTLY SHIPS WITH OBSOLETE FIRMWARE.

  • Added 2056 byte read and backlog buffers (can probably be made smaller)
  • Added a 1000uS window on read operations from module (can probably be made smaller)
  • Increased memory allocation to response/command variables in various functions to avoid out of bound memory writes.
  • Added bufferedPoll(), this replaces poll() functionality, but iterates over buffer and handles each event
  • Added some error handling to socketOpen()
  • Added some error handling to socketCloser()
  • Added error handling to socketWrite(), to not write in case of error.
  • Added delay before responding in socketWrite(), according to ublox specification
  • Added socketWriteUDP() function, to properly write UDP packets according to ublox spec.
  • Added error catching to socketRead()
  • Added socketGetLastError() function that requests last socket error from module, for debugging
  • Added expectedError parameter to waitForResponse() to allow function to exit without error without running entire timeout if it can
  • Added backlog buffering to waitForResponse()
  • Added backlog pruning to waitForResponse()
  • Improved error codes returned from waitForResponse()
  • Added backlog buffering and pruning to sendCommandWithResponse()
  • Added backlog buffering to sendCommand
  • Removed code that dumped read data in send command
  • Created function pruneBacklog() that parses backlog and prunes non-actionable events, reducing future processing time in poll, and reducing buffer size needs.
  • Added value to error enumeration to signify when module has returned an error from a command.

MatthewMenze avatar May 16 '20 16:05 MatthewMenze