Function Blocks

LLHttpServer

Host a Http(s) Server on specified port.

Direction Name Type Description
In enable BOOL Spin up server
In bufferSize UDINT Size of send / receive buffers. Can not be modified after first call
In numClients UINT Max number of simultaneous clients. Can not be modified after first call
In ipAddress STRING Local IP (OPTIONAL)
In port UDINT Server local port (OPTIONAL). Defaults to 80 for HTTP and 443 for HTTPS
In https BOOL Enable HTTPS encryption
In sslIndex UINT SSL index for HTTPS
Out ident UDINT Ident of server for connecting FUBs
Out numConnectedClients UINT Number of clients currently connected
Out error BOOL An error has occurred
Out errorID UINT Error ID, refer to LLHttpErr_enum

LLHttpClient

Connects to a Http(s) Server.

Direction Name Type Description
In enable BOOL Spin up server
In bufferSize UDINT Size of send / receive buffers. Can not be modified after first call
In hostname STRING IP address or name of server
In port UDINT Server port
In localIPAddress STRING Local IP (OPTIONAL)
In localPort UDINT Client local port
In https BOOL Enable HTTPS encryption
In sslIndex UINT SSL index for HTTPS
Out ident UDINT Ident of server for connecting FUBs
Out connected bool Connected to server
Out error BOOL An error has occurred
Out errorID UINT Error ID, refer to LLHttpErr_enum

LLHttpRequest

Sends a HTTP request and parses the response.

Direction Name Type Description
In ident UDINT Client ident
In method [HttpMethod_enum] Request method, Get, Put…
In uri STRING URI to send request
In send BOOL Send request
In pUserHeader UDINT Pointer to an array of HttpHeaderLine_typ (OPTIONAL)
In numUserHeaders UDINT Number of elements in pUserHeader array (OPTIONAL)
In pContent UDINT Pointer to content of request (OPTIONAL)
In contentType STRING Content type (OPTIONAL)
In contentLength UDINT Length of provided content (OPTIONAL)
In pResponse UDINT Pointer to container for response body (OPTIONAL)
In responseSize UINT Size of container for response body (OPTIONAL)
Out header HttpHeader_typ Response header
Out responseLength bool Response body length
Out busy BOOL Request is being sent or awaiting response
Out done BOOL Response received
Out error BOOL An error has occurred
Out errorID UINT Error ID, refer to LLHttpErr_enum

LLHttpResponse

Listens for a HTTP request and sends response.

Direction Name Type Description
In ident BOOL Send request
In method [HttpMethod_enum] Method to listen for
In uri STRING URI to listen for. * is a single item wildcard, ** is match anything after
In enable BOOL Enable FUB and start listening
In send BOOL Send response message
In pUserHeader UDINT Pointer to an array of HttpHeaderLine_typ (OPTIONAL)
In numUserHeaders UDINT Number of elements in pUserHeader array (OPTIONAL)
In status UDINT Response status
In contentType STRING Content type (OPTIONAL)
In pContent UDINT Pointer to content of request (OPTIONAL)
In contentLength UDINT Length of provided content (OPTIONAL)
In pRequest UDINT Pointer to container for response body (OPTIONAL)
In requestSize UINT Size of container for response body (OPTIONAL)
Out header HttpHeader_typ Response header
Out responseLength bool Response body length
Out busy BOOL Request is being sent or awaiting response
Out done BOOL Response received
Out error BOOL An error has occurred
Out errorID UINT Error ID, refer to LLHttpErr_enum

LLHttpParse

Parse Http request or response message.

Direction Name Type Description
In data UDINT Pointer to message
In dataLength UDINT Length of data
Out header HttpHeader_typ Response header
Out partialPacket BOOL Partial message
Out partialContent BOOL Partial message body
Out contentPresent BOOL Message contains body and not partial
Out content UDINT Pointer to start of message body
Out error BOOL An error has occurred
Out errorID UINT Error ID, refer to LLHttpErr_enum

LLHttpHeaderContains

Searches header list and checks for key (value)

Direction Name Type Description
In headerlines UDINT Pointer to array of HttpHeaderLine_typ to be searched
In name UDINT Pointer key to be found
In value UDINT Pointer value to be found (OPTIONAL)
Return found BOOL Key (value) was found

LLHttpGetHeaderIndex

Gets index of header key (value)

Direction Name Type Description
In headerlines UDINT Pointer to array of HttpHeaderLine_typ to be searched
In name UDINT Pointer key to be found
In value UDINT Pointer value to be found (OPTIONAL)
Return index INT Key (value) index. -1 if not found

LLHttpAddHeaderField

Adds name, value to header lines array.

Direction Name Type Description
In headerlines UDINT Pointer to array of HttpHeaderLine_typ
In numLines UDINT Number of elements in header array
In name UDINT Pointer to a string containing key to be added
In value UDINT Pointer to a string containing value to be added (OPTIONAL)
Return match BOOL Returns true if selector matches URI

LLHttpUriMatch

Compares URI selector and URI. Selectors support wild cards: * & **. ‘*’ will match one path element while ‘**’ will match any remaining path elements.

Direction Name Type Description
In selector UDINT Pointer to URI selector
In uri UDINT Pointer to URI
Return match BOOL Returns true if selector matches URI

Example Selectors

Selector: "/file/*"

  • ✅ /file/index.html
  • ✅ /file/app.js
  • ✅ /file/
  • ❌ /file/subFolder/index.html

Selector: "/files/*/"

  • ❌ /files/
  • ❌ /files/test
  • ❌ /files/test.cpp
  • ✅ /files/deeper
  • ❌ /files/deeper/test.cpp

Selector: "/files/**"

  • ✅ /files/
  • ✅ /files/test
  • ✅ /files/test.cpp
  • ✅ /files/deeper/
  • ✅ /files/deeper/test.cpp
  • ❌ /other

Selector: "/files/test.cpp"

  • ❌ /files/
  • ❌ /files/test
  • ✅ /files/test.cpp

LLHttpMethodMatch

Compares 2 methods, if they are the same or either one is LLHTTP_METHOD_ANY then they match.

Direction Name Type Description
In a LLHttpMethod_enum Method
In b LLHttpMethod_enum Method
Return match BOOL Returns true if methods match

LLHttpBuildResponse

Direction Name Type Description
OUT data UDINT Pointer to buffer to be populated with response message
In response Pointer to [LLHttpServiceResponse_typ]
In dataSize UDINT Size of data buffer
OUT pLen UDINT Pointer to UDINT to be populated with length of data (OPTIONAL)
Return status DINT Returns status of response

LLHttpAddHandler

Adds handler to LLHttpServer ident. Handler will listen for requests.

Direction Name Type Description
In ident UDINT Server ident
In pHandler Pointer to LLHttpHandler_typ to be added
Return status BOOL Returns 0 if successful

LLHttpAddHandler

Removes handler to LLHttpServer ident.

Direction Name Type Description
In ident UDINT Server ident
In pHandler Pointer to LLHttpHandler_typ to be removed
Return status BOOL Returns 0 if successful

LLHttpStatus_isX

Checks status to see if it is X. X can any of the following: Error, ServerError, ClientError, Redirection, Successful, or Informational.

Direction Name Type Description
In code INT Status code LLHttpStatusCode_enum
Return is BOOL Returns true if status code is X

LLHttpStatus_getDescription

Gets string description of status code.

Direction Name Type Description
In code INT Status code LLHttpStatusCode_enum
In dest UDINT Pointer to destination where description should be copied. Must be at least 32 bytes
Return is BOOL Returns 0 if successful