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 |