31 #include "WiconnectTypes.h"
34 #include "types/LogFunc.h"
35 #include "types/ReaderFunc.h"
36 #include "types/Callback.h"
37 #include "types/QueuedCommand.h"
38 #include "types/CommandQueue.h"
39 #include "types/TimeoutTimer.h"
40 #include "types/PeriodicTimer.h"
41 #include "types/Gpio.h"
42 #include "types/WiconnectSerial.h"
44 #include "NetworkInterface.h"
45 #include "SocketInterface.h"
46 #include "FileInterface.h"
49 #ifdef WICONNECT_ENABLE_MALLOC
50 #define WICONNECT_MALLOC_ARGS , void* (*malloc_)(size_t) = WICONNECT_DEFAULT_MALLOC, void (*free_)(void*) = WICONNECT_DEFAULT_FREE
53 #define WICONNECT_MALLOC_ARGS
245 int timeoutMs,
const ReaderFunc &reader,
void *user,
const char *cmd, va_list vaList);
263 void *user,
const char *cmd, va_list vaList);
282 void *user,
const char *cmd, ...);
658 #ifdef WICONNECT_ASYNC_TIMER_ENABLED
681 void setCommandProcessingPeriod(uint32_t periodMs);
697 #ifdef WICONNECT_ENABLE_MALLOC
698 void* (*_malloc)(size_t);
699 void (*_free)(
void *);
701 friend class WiconnectSerial;
708 wiconnect::WiconnectSerial serial;
709 wiconnect::Gpio resetGpio;
710 wiconnect::Gpio wakeGpio;
712 volatile bool commandExecuting;
718 char *internalBuffer;
719 int internalBufferSize;
720 bool internalBufferAlloc;
721 uint8_t internalProcessingState;
722 void *currentCommandId;
724 wiconnect::TimeoutTimer timeoutTimer;
725 int defaultTimeoutMs;
727 uint8_t commandHeaderBuffer[32];
729 uint8_t commandContext[96];
731 void prepare(
void *internalBuffer,
int internalBufferSize,
bool nonBlocking);
738 void debugLog(
const char *msg, ...);
740 #ifdef WICONNECT_ASYNC_TIMER_ENABLED
741 wiconnect::PeriodicTimer commandProcessorTimer;
742 uint32_t commandProcessingPeriod;
743 CommandQueue commandQueue;
746 void commandProcessingTimerHandler(
void);
747 void processNextQueuedCommand();
748 void checkQueuedCommandTimeout();
759 #include "sdkTypes.h"
static const char * getWiconnectResultStr(WiconnectResult wiconnectResult)
Converts a WiconnectResult to string representation.
void setAssertLogger(LogFunc assertLogFunc)
Sets callback used when Wiconnect Library hits and internal assertion.
const char * getLastCommandResponseCodeStr()
When the WiConnect WiFi module returns a response, it contains a response code in the header...
int8_t(* PinToGpioMapper)(Pin pin)
Function pointer for mapping from a host pin to a WiConnect Module GPIO.
The provides an interface for joining and/or creating a network. It provides other utilities such as ...
WiconnectResult
API Result code.
WiconnectResult reset()
Toggle the WiConnect WiFi module reset signal.
void flush(int delayMs=500)
Flush any received data in serial RX buffer and terminate any commands on WiConnect WiFi module...
Generic callback function.
WiconnectResult wakeup()
Toggle the WiConnect WiFi moduel wakeup signal.
Host<->Wiconnect Module serial configuration.
WiconnectResult sendCommand(const Callback &completeCallback, char *responseBuffer, int responseBufferLen, int timeoutMs, const ReaderFunc &reader, void *user, const char *cmd, va_list vaList)
Send command to WiConnect WiFi module.
void setDebugLogger(LogFunc logFunc)
Sets callback function used to debug WiConnect WiFi module RX/TX serial data.
static Wiconnect * getInstance()
Get instance of previously instantiated Wiconnect Library.
WiconnectResult checkCurrentCommand()
Check the status of the currently executing command.
WiConnect WiFi module file object.
WiconnectResult responseToUint32(uint32_t *uint32Ptr)
Helper method to convert previous response to uint32.
Generic data reading callback function.
void deinit()
De-initialize library.
char * getResponseBuffer()
Return pointer to internal response buffer.
void setCommandDefaultTimeout(int timeoutMs)
Sets the default maximum time an API method may execute before terminating and return a timeout error...
WiconnectResult setSetting(const char *settingStr, uint32_t value)
Set a module setting.
Class which contains command for asynchronous processing.
PinName Pin
Pin name on HOST.
WiconnectResult init(bool bringNetworkUp=false)
Initialize library and communication link with WiConnect WiFi module.
WiconnectResult getSetting(const char *settingStr, uint32_t *valuePtr)
Get a module setting.
void setPinToGpioMapper(PinToGpioMapper mapper)
Sets a mapping function used to convert from a host Pin to WiConnect WiFi module GPIO.
Logging callback function.
void stopCurrentCommand()
Stop the currently executing command.
WiconnectResult responseToInt32(int32_t *int32Ptr)
Helper method to convert previous response to int32.
Connection object to remote server.
Wiconnect(const SerialConfig &serialConfig, Pin reset=PIN_NC, Pin wake=PIN_NC, bool nonBlocking=WICONNECT_DEFAULT_NONBLOCKING WICONNECT_MALLOC_ARGS)
WiConnect class constructor.
uint16_t getLastCommandResponseLength()
Return the length in bytes of the previous response.
List of WiFi network scan results.
The provides an interface for creating TCP/UDP/TLS/HTTP client sockets. A client socket connects to a...
int getCommandDefaultTimeout()
Returns the current default maximum API execution time.
The root WiConnect library class. This class inheriets all WiConnect functionality.
The provides an interface for creating TCP/UDP/TLS/HTTP client sockets. A client socket connects to a...
#define WICONNECT_DEFAULT_NONBLOCKING
The default blocking mode of the Library.
#define delayMs(ms)
Function to stop processor for specified number of milliseconds.
#define WICONNECT_MAX_CMD_SIZE
The maximum command size that may be sent to the WiConnect WiFi module.
#define PIN_NC
Default value for a pin, Not connected.
WiconnectResult getVersion(char *versionBuffer=NULL, int versionBufferSize=0, const Callback &completeCallback=Callback())
Return current version of WiConnect WiFi module.
bool isInitialized()
Return TRUE if library is able to communicated with WiConnect WiFi module. FALSE else.
Contains single entry from WiFi scan results.
WiconnectResult updateFirmware(bool forced=false, const char *versionStr=NULL, const Callback &completeCallback=Callback())
Update the wifi module's internal firmware.